]> code.citadel.org Git - citadel.git/blobdiff - citadel/citadel.h
* Bug fixes: Fix numerous char array size mismatches, signed/unsigned
[citadel.git] / citadel / citadel.h
index 8b1e0860247f04e2dae7bfd53ad330fc2cd579b1..693d1cf472a8415435dd86fee2d1c39814711e8f 100644 (file)
 #include "sysdep.h"
 #include <limits.h>
 #include "sysconfig.h"
+#include "typesize.h"
 #include "ipcdef.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /*
  * Text description of this software
  */
-#define CITADEL        "Citadel/UX 5.90"
+#define CITADEL        "Citadel/UX 6.01"
 
 /*
  * REV_LEVEL is the current version number (multiplied by 100 to avoid having
@@ -27,8 +32,8 @@
  * are older than REV_MIN, none of the programs will work until the setup
  * program is run again to bring things up to date.
  */
-#define REV_LEVEL      590             /* This version */
-#define REV_MIN                570             /* Oldest compatible version */
+#define REV_LEVEL      601             /* This version */
+#define REV_MIN                591             /* Oldest compatible version */
 
 #define SERVER_TYPE 0  /* zero for stock Citadel/UX; other developers please
                           obtain SERVER_TYPE codes for your implementations */
 #define tolower(x)     ( ((x>='A')&&(x<='Z')) ? (x+'a'-'A') : x )
 #define NEW_CONFIG
 
-/* 
- * The only typedef we do is an 8-bit unsigned, for screen dimensions.
- * All other defs are done using standard C types.  The code assumes that
- * 'int' 'unsigned' and 'short' are at least 16 bits, and that 'long' is at
- * least 32 bits.  There are no endian dependencies in any of the Citadel
- * programs.
- */
-typedef unsigned char CIT_UBYTE;
-
 /* Various length constants */
 
+#define UGLISTLEN   100   /* you get a ungoto list of this size */
 #define ROOMNAMELEN    128             /* The size of a roomname string */
 #define NONCE_SIZE     128             /* Added by <bc> to allow for APOP auth 
                                         * it is BIG becuase there is a hostname
                                         * in the nonce, as per the APOP RFC.
                                         */
                                         
-#define USERNAME_SIZE  32              /* The size of a username string */
+#define USERNAME_SIZE  64              /* The size of a username string */
 
 /*
  * Message expiration policy stuff
@@ -113,10 +110,22 @@ struct config {
        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)  */
-       int c_default_filter;           /* Default moderation filter level  */
+       int c_unused_1;                 /* Nothin' here anymore...          */
        int c_aide_zap;                 /* Are Aides allowed to zap rooms?  */
        int c_imap_port;                /* IMAP listener port (usually 143) */
        time_t c_net_freq;              /* how often to run the networker   */
+       char c_disable_newu;            /* disable NEWU command             */
+       char c_aide_mailboxes;          /* give Aides access to mailboxes   */
+       char c_baseroom[ROOMNAMELEN];   /* Name of baseroom (Lobby)         */
+       char c_aideroom[ROOMNAMELEN];   /* Name of aideroom (Aide)          */
+};
+
+struct march {
+       struct march *next;
+       char march_name[ROOMNAMELEN];
+       unsigned int march_flags;
+       char march_floor;
+       char march_order;
 };
 
 #define NODENAME               config.c_nodename
@@ -139,14 +148,13 @@ struct usersupp {                 /* User record                      */
        unsigned flags;                 /* See US_ flags below              */
        long timescalled;               /* Total number of logins           */
        long posted;                    /* Number of messages posted (ever) */
-       CIT_UBYTE axlevel;              /* Access level                     */
+       cit_uint8_t axlevel;            /* Access level                     */
        long usernum;                   /* User number (never recycled)     */
        time_t lastcall;                /* Last time the user called        */
        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)*/
-       char moderation_filter;         /* Moderation filter level          */
+       cit_uint8_t USscreenwidth;      /* Screen width (for textmode users)*/
+       cit_uint8_t USscreenheight;     /* Screen height(for textmode users)*/
 };
 
 
@@ -185,6 +193,7 @@ struct quickroom {
        long QRnumber;                  /* Globally unique room number      */
        char QRorder;                   /* Sort key for room listing order  */
        unsigned QRflags2;              /* Additional flags                 */
+       int QRdefaultview;              /* How to display the contents      */
 };
 
 /* Private rooms are always flagged with QR_PRIVATE.  If neither QR_PASSWORDED
@@ -208,8 +217,8 @@ struct quickroom {
 /* Miscellaneous                                                            */
 
 #define MES_NORMAL     65              /* Normal message                   */
-#define MES_ANON       66              /* "****" header                    */
-#define MES_AN2                67              /* "Anonymous" header               */
+#define MES_ANONONLY   66              /* "****" header                    */
+#define MES_ANONOPT    67              /* "Anonymous" header               */
 
 #define MES_ERROR      (-1)    /* Can't send message due to bad address   */
 #define MES_LOCAL      0       /* Local message, do no network processing */
@@ -262,8 +271,11 @@ struct floor {
 #define RC_DEFAULT     2               /* setting depends on user config */
 
 /* keepalives */
-#define KA_NO          0               /* no keepalives */
-#define KA_YES         1               /* full keepalives */
+enum {
+       KA_NO,                          /* no keepalives */
+       KA_YES,                         /* full keepalives */
+       KA_HALF                         /* half keepalives */
+};
 
 /* for <;G>oto and <;S>kip commands */
 #define GF_GOTO                0               /* <;G>oto floor mode */
@@ -277,7 +289,8 @@ struct floor {
 #define        INTERNETCFG     "application/x-citadel-internet-config"
 #define IGNETCFG       "application/x-citadel-ignet-config"
 #define IGNETMAP       "application/x-citadel-ignet-map"
-#define USETABLE       "application/x-citadel-usetable"
+#define FILTERLIST     "application/x-citadel-filter-list"
+#define SPAMSTRINGS    "application/x-citadel-spam-strings"
 
 #define TRACE  lprintf(9, "Checkpoint: %s, %d\n", __FILE__, __LINE__)
 
@@ -285,4 +298,26 @@ struct floor {
 #define LONG_MAX 2147483647L
 #endif
 
+
+/*
+ * Views
+ */
+#define        VIEW_BBS                0       /* Traditional Citadel BBS view */
+#define VIEW_MAILBOX           1       /* Mailbox summary */
+#define VIEW_ADDRESSBOOK       2       /* Address book view */
+
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef tmpnam
+#undef tmpnam
+#endif
+#define tmpnam(x)      CtdlTempFileName(__FILE__, __LINE__)
+
+#ifdef tmpfile
+#undef tmpfile
+#endif
+#define tmpfile()      CtdlTempFile()
+
 #endif /* CITADEL_H */