#include "sysdep.h"
#include "sysconfig.h"
#include "ipcdef.h"
-#define CITADEL "Citadel/UX DR19980806"
+#define CITADEL "Citadel/UX DR19980818"
#define REV_LEVEL 503
#define SERVER_TYPE 0 /* zero for stock Citadel/UX; other developers please
obtain SERVER_TYPE codes for your implementations */
*/
typedef unsigned char CIT_UBYTE;
+#define ROOMNAMELEN 128
+
struct config {
char c_nodename[16]; /* UUCP and Citadel nodename */
char c_fqdn[64]; /* Fully Qualified Domain Name */
char c_initax; /* initial access level */
char c_regiscall; /* call number to register on */
char c_twitdetect; /* twit detect flag */
- char c_twitroom[20]; /* twit detect msg move to room */
+ char c_twitroom[ROOMNAMELEN]; /* twit detect msg move to room */
int c_defent; /* command generated by <E> key */
char c_moreprompt[80]; /* paginator prompt */
char c_restrict; /* restrict Internet mail flag */
#define PHONENUM config.c_phonenum
#define BBSUID config.c_bbsuid
#define CREATAIDE config.c_creataide
-#define INITAX config.c_initax
#define REGISCALL config.c_regiscall
#define TWITDETECT config.c_twitdetect
#define TWITROOM config.c_twitroom
-#define MORE_PROMPT config.c_moreprompt
#define RESTRICT_INTERNET config.c_restrict
-#define MM_FILELEN config.c_msgbase
+
+/* Defines the relationship of a user to a particular room */
+struct visit {
+ char v_roomname[ROOMNAMELEN];
+ long v_generation;
+ long v_lastseen;
+ unsigned int v_flags;
+ };
+
+#define V_FORGET 1 /* User has zapped this room */
+#define V_LOCKOUT 2 /* User is locked out of this room */
+#define V_ACCESS 4 /* Access is granted to this room */
+
+#define UA_INUSE 1
+#define UA_KNOWN 2
+#define UA_GOTOALLOWED 4
+#define UA_HASNEWMSGS 8
+#define UA_ZAPPED 16
+
+/* Defines the actual user record */
struct usersupp { /* User record */
int USuid; /* userid (==BBSUID for bbs only) */
char password[20]; /* password (for BBS-only users) */
- long lastseen[MAXROOMS]; /* Last message seen in each room */
- char generation[MAXROOMS]; /* Generation # (for private rooms) */
- char forget[MAXROOMS]; /* Forgotten generation number */
unsigned flags; /* See US_ flags below */
int timescalled; /* Total number of logins */
int posted; /* Number of messages posted (ever) */
* Room records
*/
struct quickroom {
- char QRname[20]; /* Max. len is 19, plus null term */
+ char QRname[ROOMNAMELEN]; /* Name of room */
char QRpasswd[10]; /* Only valid if it's a private rm */
long QRroomaide; /* User number of room aide */
long QRhighest; /* Highest message NUMBER in room */
- char QRgen; /* Generation number of room */
+ long QRgen; /* Generation number of room */
unsigned QRflags; /* See flag values below */
char QRdirname[15]; /* Directory name, if applicable */
long QRinfo; /* Info file update relative to msgs*/
char QRfloor; /* Which floor this room is on */
+ time_t QRmtime; /* Date/time of last post */
};
#define MT_CITADEL 0 /* Citadel proprietary */
#define MT_RFC822 2 /* RFC822 */
#define MT_RAW 3 /* IGnet raw format */
+
+
+
+#define BASEROOM "Lobby"
+#define MAILROOM "Mail"
+#define AIDEROOM "Aide"
+