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

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. /*
  22. $Id: struct.h,v 1.1 2000/01/15 01:45:24 edwardc Exp $
  23. */
  24. /* Note the protocol field is not inside an #ifdef FILES...
  25.    this is a waste but allows you to add/remove UL/DL support without
  26.    rebuilding the PASSWDS file (and it's only a lil ole int anyway).
  27. */
  28. struct userec {                  /* Structure used to hold information in */
  29.         char            userid[IDLEN+2];   /* PASSFILE */
  30.         time_t          firstlogin;
  31.         char            lasthost[16];
  32.         unsigned int    numlogins;
  33.         unsigned int    numposts;
  34.         char            flags[2];
  35. #ifdef ENCPASSLEN
  36.         char            passwd[ENCPASSLEN];
  37. #else
  38. char passwd[PASSLEN];
  39. #endif         
  40.         char            username[NAMELEN];
  41.         char            ident[NAMELEN];
  42.         char            termtype[16];
  43.         char            reginfo[STRLEN-16];
  44.         unsigned int    userlevel;
  45.         time_t          lastlogin;
  46.         time_t          stay;
  47.         char            realname[NAMELEN];
  48.         char            address[STRLEN];
  49.         char            email[STRLEN-12];
  50.         unsigned int    nummails;
  51.         time_t          lastjustify;
  52.         char            gender;
  53.         unsigned char   birthyear;
  54.         unsigned char   birthmonth;
  55.         unsigned char   birthday;
  56.         int             signature;
  57.         unsigned int    userdefine;
  58.         time_t          notedate;
  59.         int             noteline;
  60. };
  61.  
  62. struct user_info {               /* Structure used in UTMP file */
  63.         int     active;          /* When allocated this field is true */
  64.         int     uid;             /* Used to find user name in passwd file */
  65.         int     pid;             /* kill() to notify user of talk request */
  66.         int     invisible;       /* Used by cloaking function in Xyz menu */
  67.         int     sockactive;      /* Used to coordinate talk requests */
  68.         int     sockaddr;        /* ... */
  69.         int     destuid;         /* talk uses this to identify who called */
  70.         int     mode;            /* UL/DL, Talk Mode, Chat Mode, ... */
  71.         int     pager;           /* pager toggle, YEA, or NA */
  72.         int     in_chat;         /* for in_chat commands   */
  73.         int     fnum;            /* number of friends */
  74.         int     ext_idle;        /* has extended idle time, YEA or NA */
  75.         char    chatid[ 10 ];    /* chat id, if in chat mode */
  76.         char    from[ 60 ];      /* machine name the user called in from */
  77. #ifndef BBSD
  78.         char    tty[ 20 ];       /* tty port */
  79. #else
  80. time_t idle_time;  /* to keep idle time */
  81. #endif        
  82.         char    userid[ 20 ];
  83.         char    realname[ 20 ];
  84.         char    username[NAMELEN];
  85.         unsigned short  friend[MAXFRIENDS];
  86.         unsigned short  reject[MAXREJECTS];
  87. };
  88. struct override {
  89.         char id[13];
  90.         char exp[40];
  91. };
  92. #define BM_LEN 60
  93. struct boardheader {             /* This structure is used to hold data in */
  94.         char filename[STRLEN];   /* the BOARDS files */
  95.         char owner[STRLEN - BM_LEN];
  96.         char BM[ BM_LEN - 1];
  97.         char flag;
  98.         char title[STRLEN ];
  99.         unsigned level;
  100.         unsigned char accessed[ 12 ];
  101. };
  102. struct fileheader {             /* This structure is used to hold data in */
  103.         char filename[STRLEN];     /* the DIR files */
  104.         char owner[STRLEN];
  105.         char title[STRLEN];
  106.         unsigned level;
  107.         unsigned char accessed[ 12 ];   /* struct size = 256 bytes */
  108. } ;
  109. struct shortfile {               /* used for caching files and boards */
  110.         char filename[STRLEN];      /* also will do for mail directories */
  111.         char owner[STRLEN - BM_LEN];
  112.         char BM[ BM_LEN - 1];
  113.         char flag;
  114.         char title[STRLEN];
  115.         unsigned level;
  116.         unsigned char accessed;
  117. };
  118. struct one_key {                  /* Used to pass commands to the readmenu */
  119.         int key ;
  120.         int (*fptr)() ;
  121. } ;
  122. #define USHM_SIZE       (MAXACTIVE + 10)
  123. struct UTMPFILE {
  124.     struct user_info    uinfo[ USHM_SIZE ];
  125.     time_t              uptime;
  126.     unsigned short      usersum;
  127.     int                 max_login_num;
  128. };
  129. struct BCACHE {
  130.     struct shortfile    bcache[ MAXBOARD ];
  131.     int         number;
  132.     time_t      uptime;
  133.     time_t      pollvote;
  134.     time_t fresh_date;
  135.     char date[60];
  136.     time_t friendbook; /* friendbook mtime */
  137. };
  138. struct UCACHE {
  139.     char        userid[ MAXUSERS ][ IDLEN + 1 ];
  140.     int         number;
  141.     time_t      uptime;
  142. };
  143. struct postheader
  144. {
  145.         char title[STRLEN];
  146.         char ds[40];
  147.         int reply_mode;
  148.         char include_mode;
  149.         int chk_anony;
  150.         int postboard;
  151. };