X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fcitadel.h;h=92c24fc6c8132ae66fb736226a4a1e02f3382cf5;hb=b2971ed49d2cfe5128190ec1d5d8c0fa239f0004;hp=44fa989abfd0ba65e0b69764f63815552af6c74a;hpb=6b11b1b74d1b60068d67bd1b0e38ea66d3823d07;p=citadel.git diff --git a/citadel/citadel.h b/citadel/citadel.h index 44fa989ab..92c24fc6c 100644 --- a/citadel/citadel.h +++ b/citadel/citadel.h @@ -1,14 +1,15 @@ /* * $Id$ * - * main Citadel header file - * see copyright.txt for copyright information + * Main Citadel header file + * See copyright.txt for copyright information. */ /* system customizations are in sysconfig.h */ #ifndef CITADEL_H #define CITADEL_H +/* #include uncomment if using dmalloc */ /* Build Citadel with the calendar service only if the header *and* * library for libical are both present. @@ -31,8 +32,10 @@ extern "C" { /* * Text description of this software + * (We used to define this ourselves, but why bother when + * the GNU build tools do it for us?) */ -#define CITADEL "Citadel 6.28" +#define CITADEL PACKAGE_STRING /* * REV_LEVEL is the current version number (multiplied by 100 to avoid having @@ -44,9 +47,9 @@ extern "C" { * usually more strict because you're not really supposed to dump/load and * upgrade at the same time. */ -#define REV_LEVEL 628 /* This version */ +#define REV_LEVEL 711 /* This version */ #define REV_MIN 591 /* Oldest compatible database */ -#define EXPORT_REV_MIN 626 /* Oldest compatible export files */ +#define EXPORT_REV_MIN 706 /* Oldest compatible export files */ #define SERVER_TYPE 0 /* zero for stock Citadel; other developers please obtain SERVER_TYPE codes for your implementations */ @@ -68,6 +71,11 @@ extern "C" { * Message expiration policy stuff */ struct ExpirePolicy { +/* +#include "datadefinitions.h" +#include "dtds/expirepolicy-defs.h" +#include "undef_data.h" +*/ int expire_mode; int expire_value; }; @@ -78,72 +86,17 @@ struct ExpirePolicy { #define EXPIRE_AGE 3 /* Expire messages after n days */ -/* - * 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 */ - char c_fqdn[64]; /* Fully Qualified Domain Name */ - char c_humannode[21]; /* Long name of system */ - char c_phonenum[16]; /* Dialup number of system */ - uid_t c_bbsuid; /* UID of the bbs-only user */ - char c_creataide; /* room creator = room aide flag */ - int c_sleeping; /* watchdog timer setting */ - char c_initax; /* initial access level */ - char c_regiscall; /* call number to register on */ - char c_twitdetect; /* twit detect flag */ - 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_niu_1; /* (not in use) */ - char c_bbs_city[32]; /* physical location of server */ - char c_sysadm[26]; /* name of system administrator */ - 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_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 */ - int c_userpurge; /* System default user purge (days) */ - 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) */ - 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_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 */ - int c_msa_port; /* SMTP MSA listener port (usu 587) */ -}; - /* * 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 { +/* +#include "datadefinitions.h" +#include "dtds/march-defs.h" +#include "undef_data.h" +*/ struct march *next; char march_name[ROOMNAMELEN]; unsigned int march_flags; @@ -157,7 +110,7 @@ struct march { #define FQDN config.c_fqdn #define HUMANNODE config.c_humannode #define PHONENUM config.c_phonenum -#define BBSUID config.c_bbsuid +#define CTDLUID config.c_ctdluid #define CREATAIDE config.c_creataide #define REGISCALL config.c_regiscall #define TWITDETECT config.c_twitdetect @@ -168,9 +121,14 @@ struct march { * User records. */ struct ctdluser { /* User record */ +/* +#include "datadefinitions.h" +#include "dtds/user-defs.h" +#include "undef_data.h" +*/ int version; /* Cit vers. which created this rec */ uid_t uid; /* Associate with a unix account? */ - char password[32]; /* password (for BBS-only users) */ + char password[32]; /* password (for Citadel-only users)*/ unsigned flags; /* See US_ flags below */ long timescalled; /* Total number of logins */ long posted; /* Number of messages posted (ever) */ @@ -184,17 +142,6 @@ struct ctdluser { /* User record */ }; -/* - * This is the control record for the message base... - */ -struct CitControl { - long MMhighest; /* highest message number in file */ - 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 * necessarily pertain to the message base -- it's just a good place to * store any global flags. @@ -205,21 +152,26 @@ struct CitControl { * Room records. */ 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 */ - long QRhighest; /* Highest message NUMBER in room */ - time_t 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 */ - struct ExpirePolicy QRep; /* Message expiration policy */ - 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 */ +/* +#include "datadefinitions.h" +#include "dtds/room-defs.h" +#include "undef_data.h" +*/ + 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 */ + time_t 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 */ + struct ExpirePolicy QRep; /* Message expiration policy */ + 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 @@ -246,6 +198,11 @@ struct ctdlroom { * Floor record. The floor number is implicit in its location in the file. */ struct floor { +/* +#include "datadefinitions.h" +#include "dtds/floor-defs.h" +#include "undef_data.h" +*/ unsigned short f_flags; /* flags */ char f_name[256]; /* name of floor */ int f_ref_count; /* reference count */ @@ -265,9 +222,9 @@ struct floor { #define READ_HEADER 2 #define READ_MSGBODY 3 -/* commands we can send to the sttybbs() routine */ -#define SB_NO_INTR 0 /* set to bbs mode, i/q disabled */ -#define SB_YES_INTR 1 /* set to bbs mode, i/q enabled */ +/* commands we can send to the stty_ctdl() routine */ +#define SB_NO_INTR 0 /* set to Citadel client mode, i/q disabled */ +#define SB_YES_INTR 1 /* set to Citadel client mode, i/q enabled */ #define SB_SAVE 2 /* save settings */ #define SB_RESTORE 3 /* restore settings */ #define SB_LAST 4 /* redo the last command sent */ @@ -305,6 +262,7 @@ enum { #define IGNETCFG "application/x-citadel-ignet-config" #define IGNETMAP "application/x-citadel-ignet-map" #define FILTERLIST "application/x-citadel-filter-list" +#define SIEVECONFIG "application/x-citadel-sieve-config" #define TRACE lprintf(CTDL_DEBUG, "Checkpoint: %s, %d\n", __FILE__, __LINE__) @@ -316,12 +274,15 @@ enum { /* * Views */ -#define VIEW_BBS 0 /* Traditional Citadel BBS view */ +#define VIEW_BBS 0 /* Bulletin board 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 */ #define VIEW_NOTES 5 /* Notes view */ +#define VIEW_WIKI 6 /* Wiki view */ +#define VIEW_CALBRIEF 7 /* Brief Calendar view */ +#define VIEW_SIEVE 8 /* Sieve manage rules store */ #ifdef __cplusplus }