#include "sysdep.h"
#include "sysconfig.h"
#include "ipcdef.h"
-#define CITADEL "Citadel/UX 5.53"
-#define REV_LEVEL 553
+#define CITADEL "Citadel/UX 5.70"
+#define REV_LEVEL 560
#define SERVER_TYPE 0 /* zero for stock Citadel/UX; other developers please
obtain SERVER_TYPE codes for your implementations */
/*
- * System configuration
+ * Global system configuration
*/
struct config {
- char c_nodename[16]; /* UUCP and Citadel nodename */
+ char c_nodename[16]; /* Unqualified "short" nodename */
char c_fqdn[64]; /* Fully Qualified Domain Name */
char c_humannode[21]; /* Long name of system */
char c_phonenum[16]; /* Dialup number of system */
int c_roompurge; /* System default room purge (days) */
char c_logpages[ROOMNAMELEN]; /* Room to log pages to (or not) */
char c_createax; /* Axlevel required to create rooms */
- };
+ long c_maxmsglen; /* Maximum message length */
+ int c_min_workers; /* Lower limit on number of threads */
+ int c_max_workers; /* Upper limit on number of threads */
+ int c_pop3_port; /* POP3 listener port (usually 110) */
+ int c_smtp_port; /* SMTP listener port (usually 25) */
+};
#define NODENAME config.c_nodename
#define FQDN config.c_fqdn
#define RESTRICT_INTERNET config.c_restrict
/* Defines the actual user record */
+
struct usersupp { /* User record */
- int USuid; /* userid (==BBSUID for bbs only) */
- char password[20]; /* password (for BBS-only users) */
+ int version; /* Cit vers. which created this rec */
+ uid_t uid; /* Associate with a unix account? */
+ char password[32]; /* password (for BBS-only users) */
unsigned flags; /* See US_ flags below */
- int timescalled; /* Total number of logins */
- int posted; /* Number of messages posted (ever) */
- char fullname[26]; /* Name for Citadel messages & mail */
- char axlevel; /* Access level */
- CIT_UBYTE USscreenwidth; /* Screen width (for textmode users)*/
- CIT_UBYTE USscreenheight; /* Screen height(for textmode users)*/
+ long timescalled; /* Total number of logins */
+ long posted; /* Number of messages posted (ever) */
+ CIT_UBYTE axlevel; /* Access level */
long usernum; /* User number (never recycled) */
time_t lastcall; /* Last time the user called */
- char USname[30]; /* Real name (i.e. not a handle) */
- char USaddr[25]; /* Street address */
- char UScity[15]; /* Municipality */
- char USstate[3]; /* State or province */
- char USzip[10]; /* ZIP code */
- char USphone[11]; /* Voice telephone number */
- char USemail[32]; /* E-mail address (elsewhere) */
int USuserpurge; /* Purge time (in days) for user */
+ char fullname[64]; /* Name for Citadel messages & mail */
+ CIT_UBYTE USscreenwidth; /* Screen width (for textmode users)*/
+ CIT_UBYTE USscreenheight; /* Screen height(for textmode users)*/
};
unsigned MMflags; /* Global system flags */
long MMnextuser; /* highest user number on system */
long MMnextroom; /* highest room number on system */
+ int version; /* Server-hosted upgrade level */
};
/* Bits which may appear in CitControl.MMflags. Note that these don't
};
-/* Private rooms are always flagged with QR_PRIVATE. If neither QR_PASSWORDED
- * or QR_GUESSNAME is set, then it is invitation-only. Passworded rooms are
+/* Private rooms are always flagged with QR_PRIVATE. If neither QR_PASSWORDED
+ * or QR_GUESSNAME is set, then it is invitation-only. Passworded rooms are
* flagged with both QR_PRIVATE and QR_PASSWORDED while guess-name rooms are
- * flagged with both QR_PRIVATE and QR_GUESSNAME. DO NOT set all three flags.
- *
- ****************************************************************************/
+ * flagged with both QR_PRIVATE and QR_GUESSNAME. NEVER set all three flags.
+ */
/*
* Events which might show up in the Citadel Log
#define MES_ANON 66 /* "****" header */
#define MES_AN2 67 /* "Anonymous" header */
-#define M_ERROR (-1) /* Can't send message due to bad address */
-#define M_LOCAL 0 /* Local message, do no network processing */
-#define M_INTERNET 1 /* Convert msg and send as Internet mail */
-#define M_BINARY 2 /* Process recipient and send via C/UX net */
+#define MES_ERROR (-1) /* Can't send message due to bad address */
+#define MES_LOCAL 0 /* Local message, do no network processing */
+#define MES_INTERNET 1 /* Convert msg and send as Internet mail */
+#define MES_BINARY 2 /* Process recipient and send via Cit net */
/****************************************************************************/
#define GF_SKIP 1 /* <;S>kip floor mode */
#define GF_ZAP 2 /* <;Z>ap floor mode */
-
-#define BASEROOM "Lobby"
-#define MAILROOM "Mail"
-#define AIDEROOM "Aide"
-
+/*
+ * MIME types used in Citadel for configuration stuff
+ */
+#define SPOOLMIME "application/x-citadel-delivery-list"
+#define INTERNETCFG "application/x-citadel-internet-config"
/*
* This structure is used to hold all of the fields of a message
char S[512];
long T;
char U[512];
+ char Z[512];
char nexthop[512];
};
+#define TRACE lprintf(9, "Checkpoint: %s, %d\n", __FILE__, __LINE__)