struct.2.62M.h
上传用户:minyiyu
上传日期:2018-12-24
资源大小:864k
文件大小:5k
源码类别:

Telnet服务器

开发平台:

Unix_Linux

  1. /*
  2.     Pirate Bulletin Board System
  3.     Copyright (C) 1990, Edward Luke, lush@Athena.EE.MsState.EDU
  4.     Eagles Bulletin Board System
  5.     Copyright (C) 1992, Raymond Rocker, rocker@rock.b11.ingr.com
  6.                         Guy Vega, gtvega@seabass.st.usm.edu
  7.                         Dominic Tynes, dbtynes@seabass.st.usm.edu
  8.     Firebird Bulletin Board System
  9.     Copyright (C) 1996, Hsien-Tsung Chang, Smallpig.bbs@bbs.cs.ccu.edu.tw
  10.                         Peng Piaw Foong, ppfoong@csie.ncu.edu.tw
  11.     
  12.     This program is free software; you can redistribute it and/or modify
  13.     it under the terms of the GNU General Public License as published by
  14.     the Free Software Foundation; either version 1, or (at your option)
  15.     any later version.
  16.     This program is distributed in the hope that it will be useful,
  17.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19.     GNU General Public License for more details.
  20. */
  21. /* Note the protocol field is not inside an #ifdef FILES...
  22.    this is a waste but allows you to add/remove UL/DL support without
  23.    rebuilding the PASSWDS file (and it's only a lil ole int anyway).
  24. */
  25. #define _262M
  26. struct userec {                  /* Structure used to hold information in */
  27.         char            userid[IDLEN+2];   /* PASSFILE */
  28.         char            fill[30];
  29.         time_t          firstlogin;
  30.         char            lasthost[16];
  31.         unsigned int    numlogins;
  32.         unsigned int    numposts;
  33.         char            flags[2];
  34.         char            passwd[PASSLEN];
  35.         char            username[NAMELEN];
  36.         char            ident[NAMELEN];
  37.         char            termtype[STRLEN];
  38.         unsigned        userlevel;
  39.         time_t          lastlogin;
  40.         time_t          stay;
  41.         char            realname[NAMELEN];
  42.         char            address[STRLEN];
  43.         char            email[STRLEN];
  44.         int             signature;
  45.         unsigned int    userdefine;
  46.         time_t          notedate;
  47.         int             noteline;
  48.         int             notemode;
  49.         int             unuse1;/* no use*/
  50.         int             unuse2;/* no use*/
  51. };
  52. struct user_info {              /* Structure used in UTMP file */
  53.         int     active;         /* When allocated this field is true */
  54.         int     uid;            /* Used to find user name in passwd file */
  55.         int     pid;            /* kill() to notify user of talk request */
  56.         int     invisible;      /* Used by cloaking function in Xyz menu */
  57.         int     sockactive;     /* Used to coordinate talk requests */
  58.         int     sockaddr;       /* ... */
  59.         int     destuid;        /* talk uses this to identify who called */
  60.         int     mode;           /* UL/DL, Talk Mode, Chat Mode, ... */
  61.         int     pager;          /* pager toggle, YEA, or NA */
  62.         int     in_chat;        /* for in_chat commands   */
  63.         char    chatid[ 16 ];   /* chat id, if in chat mode */
  64.         char    from[ 60 ];     /* machine name the user called in from */
  65.         char    tty[ 20 ];      /* tty port */
  66.         char    userid[ 20 ];
  67.         char    realname[ 20 ];
  68.         char    username[ 40 ];
  69.         char    stuff[ 40 ];
  70. };
  71. struct friend {
  72.         char id[13];
  73.         char exp[15];
  74. };
  75. #define BM_LEN 60
  76. struct boardheader {             /* This structure is used to hold data in */
  77.         char filename[STRLEN];   /* the BOARDS files */
  78.         char owner[STRLEN - BM_LEN];
  79.         char BM[ BM_LEN - 1];
  80.         char flag;
  81.         char title[STRLEN ];
  82.         unsigned level;
  83.         unsigned char accessed[ 12 ];
  84. };
  85. struct fileheader {             /* This structure is used to hold data in */
  86.         char filename[STRLEN];     /* the DIR files */
  87.         char owner[STRLEN];
  88.         char title[STRLEN];
  89.         unsigned level;
  90.         unsigned char accessed[ 12 ];   /* struct size = 256 bytes */
  91. } ;
  92. struct shortfile {               /* used for caching files and boards */
  93.         char filename[STRLEN];      /* also will do for mail directories */
  94.         char owner[STRLEN - BM_LEN];
  95.         char BM[ BM_LEN - 1];
  96.         char flag;
  97.         char title[STRLEN];
  98.         unsigned level;
  99.         unsigned char accessed;
  100. };
  101. struct one_key {                  /* Used to pass commands to the readmenu */
  102.         int key ;
  103.         int (*fptr)() ;
  104. } ;
  105. #define USHM_SIZE       (MAXACTIVE + 10)
  106. struct UTMPFILE {
  107.     struct user_info    uinfo[ USHM_SIZE ];
  108.     time_t              uptime;
  109.     unsigned long       usernum;
  110.     int                 cloaknum;
  111.     char                date[60];
  112. };
  113. struct BCACHE {
  114.     struct shortfile    bcache[ MAXBOARD ];
  115.     int         number;
  116.     time_t      uptime;
  117.     time_t      pollvote;
  118. };
  119. struct UCACHE {
  120.     char        userid[ MAXUSERS ][ IDLEN + 1 ];
  121.     int         number;
  122.     time_t      uptime;
  123. };
  124. struct postheader
  125. {
  126.         char title[STRLEN];
  127.         char ds[40];
  128.         int reply_mode;
  129.         char include_mode;
  130.         int chk_anony;
  131.         int postboard;
  132. };