]> code.citadel.org Git - citadel.git/blobdiff - citadel/citadel.h
* Replaced all "Citadel/UX" references with "Citadel"
[citadel.git] / citadel / citadel.h
index 40df051384d2feb19ba0e43a78a39cb5666099c8..0559ba334d4d36a8128290318d42af0e66cf1e49 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * $Id$
  *
- * main Citadel/UX header file
+ * main Citadel header file
  * see copyright.txt for copyright information
  */
 
@@ -32,44 +32,37 @@ extern "C" {
 /*
  * Text description of this software
  */
-#define CITADEL        "Citadel/UX 6.06"
+#define CITADEL        "Citadel 6.23"
 
 /*
  * REV_LEVEL is the current version number (multiplied by 100 to avoid having
  * to fiddle with the decimal).  REV_MIN is the oldest version of Citadel
  * whose data files are compatible with the current version.  If the data files
  * are older than REV_MIN, none of the programs will work until the setup
- * program is run again to bring things up to date.
+ * program is run again to bring things up to date.  EXPORT_REV_MIN is the
+ * oldest version of Citadel whose export files we can read.  The latter is
+ * usually more strict because you're not really supposed to dump/load and
+ * upgrade at the same time.
  */
-#define REV_LEVEL      606             /* This version */
-#define REV_MIN                591             /* Oldest compatible version */
+#define REV_LEVEL      623             /* This version */
+#define REV_MIN                591             /* Oldest compatible database */
+#define EXPORT_REV_MIN 623             /* Oldest compatible export files */
 
-#define SERVER_TYPE 0  /* zero for stock Citadel/UX; other developers please
+#define SERVER_TYPE 0  /* zero for stock Citadel; other developers please
                           obtain SERVER_TYPE codes for your implementations */
 
-/*
- * This is a better implementation of tolower() than that found on some
- * systems (there are operating systems out there on which tolower() will
- * screw up if you give it a character that is already lower case).
- */
-#ifdef  tolower
-#undef tolower
-#endif
-#define tolower(x)     ( ((x>='A')&&(x<='Z')) ? (x+'a'-'A') : x )
-#define NEW_CONFIG
-
 /* 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 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  64              /* The size of a username string */
-#define MAX_EDITORS    5               /* # of external editors supported */
-                                       /* MUST be at least 1 */
+#define USERNAME_SIZE  64      /* The size of a username string */
+#define MAX_EDITORS    5       /* # of external editors supported */
+                               /* MUST be at least 1 */
 
 /*
  * Message expiration policy stuff
@@ -86,7 +79,13 @@ struct ExpirePolicy {
 
 
 /* 
- * Global system configuration 
+ * Global system configuration.
+ * 
+ * Developers: please do NOT remove the fields labelled "not in use".  We
+ * can't simply remove them from the struct, because this gets written to
+ * disk, and if you change it then you'll break all existing systems.
+ * However, if you'd like to reclaim some of that space for another use, feel
+ * free to do so, as long as the sizes are kept identical.
  */
 struct config {
        char c_nodename[16];            /* Unqualified "short" nodename     */
@@ -102,13 +101,13 @@ struct config {
        char c_twitroom[ROOMNAMELEN];   /* twit detect msg move to room     */
        char c_moreprompt[80];          /* paginator prompt                 */
        char c_restrict;                /* restrict Internet mail flag      */
-       long c_msgbase;                 /* size of message base (obsolete)  */
+       long c_niu_1;                   /* (not in use)                     */
        char c_bbs_city[32];            /* physical location of server      */
        char c_sysadm[26];              /* name of system administrator     */
-       char c_bucket_dir[15];          /* bit bucket for files...          */
+       char c_niu_2[15];               /* (not in use)                     */
        int c_setup_level;              /* what rev level we've setup to    */
        int c_maxsessions;              /* maximum concurrent sessions      */
-       char c_net_password[20];        /* system net password (obsolete)   */
+       char c_ip_addr[20];             /* IP address to listen on          */
        int c_port_number;              /* Cit listener port (usually 504)  */
        int c_ipgm_secret;              /* Internal program authentication  */
        struct ExpirePolicy c_ep;       /* System default msg expire policy */
@@ -121,16 +120,28 @@ 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_unused_1;                 /* Nothin' here anymore...          */
+       int c_rfc822_strict_from;       /* 1 = don't correct From: forgeries*/
        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_niu_4;                   /* (not in use)                     */
        char c_baseroom[ROOMNAMELEN];   /* Name of baseroom (Lobby)         */
        char c_aideroom[ROOMNAMELEN];   /* Name of aideroom (Aide)          */
+       int c_purge_hour;               /* Hour during which db purges run  */
+       struct ExpirePolicy c_mbxep;    /* Expire policy for mailbox rooms  */
+       char c_ldap_host[128];          /* Host where LDAP service lives    */
+       int c_ldap_port;                /* Port on host where LDAP lives    */
+       char c_ldap_base_dn[256];       /* LDAP base DN                     */
+       char c_ldap_bind_dn[256];       /* LDAP bind DN                     */
+       char c_ldap_bind_pw[256];       /* LDAP bind password               */
 };
 
+/*
+ * This struct stores a list of rooms with new messages which the client
+ * fetches from the server.  This allows the client to "march" through
+ * relevant rooms without having to ask the server each time where to go next.
+ */
 struct march {
        struct march *next;
        char march_name[ROOMNAMELEN];
@@ -152,9 +163,10 @@ struct march {
 #define TWITROOM               config.c_twitroom
 #define RESTRICT_INTERNET      config.c_restrict
 
-/* Defines the actual user record */
-struct usersupp {                      /* User record                      */
+/*
+ * User records.
+ */
+struct ctdluser {                      /* User record                      */
        int version;                    /* Cit vers. which created this rec */
        uid_t uid;                      /* Associate with a unix account?   */
        char password[32];              /* password (for BBS-only users)    */
@@ -189,9 +201,9 @@ struct CitControl {
 #define MM_VALID       4               /* New users need validating        */
 
 /*
- * Room records
+ * Room records.
  */
-struct quickroom {
+struct ctdlroom {
        char QRname[ROOMNAMELEN];       /* Name of room                     */
        char QRpasswd[10];              /* Only valid if it's a private rm  */
        long QRroomaide;                /* User number of room aide         */
@@ -216,19 +228,8 @@ struct quickroom {
  */
 
 /*
- * Events which might show up in the Citadel Log
+ * Miscellaneous
  */
-#define CL_CONNECT     8               /* Connect to server                */
-#define CL_LOGIN       16              /* CLfullname logged in             */
-#define CL_NEWUSER     32              /* CLfullname is a new user         */
-#define CL_BADPW       64              /* Bad attempt at CLfullname's pw   */
-#define CL_TERMINATE   128             /* Logout - proper termination      */
-#define CL_DROPCARR    256             /* Logout - dropped carrier         */
-#define CL_SLEEPING    512             /* Logout - sleeping                */
-#define CL_PWCHANGE    1024            /* CLfullname changed passwords     */
-
-/* Miscellaneous                                                            */
-
 #define MES_NORMAL     65              /* Normal message                   */
 #define MES_ANONONLY   66              /* "****" header                    */
 #define MES_ANONOPT    67              /* "Anonymous" header               */
@@ -248,7 +249,7 @@ struct floor {
        char f_name[256];               /* name of floor */
        int f_ref_count;                /* reference count */
        struct ExpirePolicy f_ep;       /* default expiration policy */
-       };
+};
 
 #define F_INUSE                1               /* floor is in use */
 
@@ -303,9 +304,8 @@ enum {
 #define IGNETCFG       "application/x-citadel-ignet-config"
 #define IGNETMAP       "application/x-citadel-ignet-map"
 #define FILTERLIST     "application/x-citadel-filter-list"
-#define SPAMSTRINGS    "application/x-citadel-spam-strings"
 
-#define TRACE  lprintf(9, "Checkpoint: %s, %d\n", __FILE__, __LINE__)
+#define TRACE  lprintf(CTDL_DEBUG, "Checkpoint: %s, %d\n", __FILE__, __LINE__)
 
 #ifndef LONG_MAX
 #define LONG_MAX 2147483647L
@@ -318,19 +318,11 @@ enum {
 #define        VIEW_BBS                0       /* Traditional Citadel BBS view */
 #define VIEW_MAILBOX           1       /* Mailbox summary */
 #define VIEW_ADDRESSBOOK       2       /* Address book view */
+#define VIEW_CALENDAR          3       /* Calendar view */
+#define VIEW_TASKS             4       /* Tasks 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 */