X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fcitadel.h;h=92c24fc6c8132ae66fb736226a4a1e02f3382cf5;hb=b2971ed49d2cfe5128190ec1d5d8c0fa239f0004;hp=677ac0ad91dbc143b78035bbd58fc8f074ade7de;hpb=ca0714f168ab7cb7af8177e10941aa5c1fa3b09f;p=citadel.git diff --git a/citadel/citadel.h b/citadel/citadel.h index 677ac0ad9..92c24fc6c 100644 --- a/citadel/citadel.h +++ b/citadel/citadel.h @@ -1,8 +1,8 @@ /* * $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 */ @@ -32,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.45" +#define CITADEL PACKAGE_STRING /* * REV_LEVEL is the current version number (multiplied by 100 to avoid having @@ -45,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 645 /* 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 */ @@ -69,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; }; @@ -79,75 +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_ctdluid; /* UID under which we run Citadel */ - 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_site_location[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) */ - int c_imaps_port; /* IMAPS listener port (usually 993)*/ - int c_pop3s_port; /* POP3S listener port (usually 995)*/ - int c_smtps_port; /* SMTPS listener port (usually 465)*/ -}; - /* * 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; @@ -172,6 +121,11 @@ 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 Citadel-only users)*/ @@ -188,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. @@ -209,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 @@ -250,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 */ @@ -309,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__) @@ -326,6 +280,9 @@ enum { #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 }