struct.2.66M.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 _266M
  26. struct userec {                  /* Structure used to hold information in */
  27.         char            userid[IDLEN+2];   /* PASSFILE */
  28.         time_t          firstlogin;
  29.         char            lasthost[16];
  30.         unsigned int    numlogins;
  31.         unsigned int    numposts;
  32.         char            flags[2];
  33.         char            passwd[PASSLEN];
  34.         char            username[NAMELEN];
  35.         char            ident[NAMELEN];
  36.         char            termtype[STRLEN];
  37.         unsigned int    userlevel;
  38.         time_t          lastlogin;
  39.         time_t          stay;
  40.         char            realname[NAMELEN];
  41.         char            address[STRLEN];
  42.         char            email[STRLEN];
  43.         int             signature;
  44.         unsigned int    userdefine;
  45.         time_t          notedate;
  46.         int             noteline;
  47. };
  48.  
  49. struct user_info {               /* Structure used in UTMP file */
  50.         int     active;          /* When allocated this field is true */
  51.         int     uid;             /* Used to find user name in passwd file */
  52.         int     pid;             /* kill() to notify user of talk request */
  53.         int     invisible;       /* Used by cloaking function in Xyz menu */
  54.         int     sockactive;      /* Used to coordinate talk requests */
  55.         int     sockaddr;        /* ... */
  56.         int     destuid;         /* talk uses this to identify who called */
  57.         int     mode;            /* UL/DL, Talk Mode, Chat Mode, ... */
  58.         int     pager;           /* pager toggle, YEA, or NA */
  59.         int     in_chat;         /* for in_chat commands   */
  60.         int     fnum;            /* number of friends */
  61.         int     ext_idle;        /* has extended idle time, YEA or NA */
  62.         char    chatid[ 10 ];    /* chat id, if in chat mode */
  63.         char    from[ 60 ];      /* machine name the user called in from */
  64.         char    tty[ 20 ];       /* tty port */
  65.         char    userid[ 20 ];
  66.         char    realname[ 20 ];
  67.         char    username[NAMELEN];
  68.         unsigned short  friend[MAXFRIENDS];
  69.         unsigned short  reject[MAXREJECTS];
  70. };
  71. struct override {
  72.         char id[13];
  73.         char exp[40];
  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 short      usersum;
  110.     int                 max_login_num;
  111. };
  112. struct BCACHE {
  113.     struct shortfile    bcache[ MAXBOARD ];
  114.     int         number;
  115.     time_t      uptime;
  116.     time_t      pollvote;
  117. };
  118. struct UCACHE {
  119.     char        userid[ MAXUSERS ][ IDLEN + 1 ];
  120.     int         number;
  121.     time_t      uptime;
  122. };
  123. struct postheader
  124. {
  125.         char title[STRLEN];
  126.         char ds[40];
  127.         int reply_mode;
  128.         char include_mode;
  129.         int chk_anony;
  130.         int postboard;
  131. };