7c7cb254f5a10a111bd06cc8077337198f8c16ad
[citadel.git] / citadel / config.h
1 /*
2  * $Id$
3  *
4  */
5
6 #include "serv_extensions.h"
7
8 /* 
9  * Global system configuration.
10  * 
11  * Developers: please do NOT remove the fields labelled "not in use".  We
12  * can't simply remove them from the struct, because this gets written to
13  * disk, and if you change it then you'll break all existing systems.
14  * However, if you'd like to reclaim some of that space for another use, feel
15  * free to do so, as long as the sizes are kept identical.
16  */
17 struct config {
18         char c_nodename[16];            /* Unqualified "short" nodename     */
19         char c_fqdn[64];                /* Fully Qualified Domain Name      */
20         char c_humannode[21];           /* Long name of system              */
21         char c_phonenum[16];            /* Dialup number of system          */
22         uid_t c_ctdluid;                /* UID under which we run Citadel   */
23         char c_creataide;               /* room creator = room aide  flag   */
24         int c_sleeping;                 /* watchdog timer setting           */
25         char c_initax;                  /* initial access level             */
26         char c_regiscall;               /* call number to register on       */
27         char c_twitdetect;              /* twit detect flag                 */
28         char c_twitroom[ROOMNAMELEN];   /* twit detect msg move to room     */
29         char c_moreprompt[80];          /* paginator prompt                 */
30         char c_restrict;                /* restrict Internet mail flag      */
31         long c_niu_1;                   /* (not in use)                     */
32         char c_site_location[32];       /* physical location of server      */
33         char c_sysadm[26];              /* name of system administrator     */
34         char c_niu_2[15];               /* (not in use)                     */
35         int c_setup_level;              /* what rev level we've setup to    */
36         int c_maxsessions;              /* maximum concurrent sessions      */
37         char c_ip_addr[20];             /* IP address to listen on          */
38         int c_port_number;              /* Cit listener port (usually 504)  */
39         int c_ipgm_secret;              /* Internal program authentication  */
40         struct ExpirePolicy c_ep;       /* System default msg expire policy */
41         int c_userpurge;                /* System default user purge (days) */
42         int c_roompurge;                /* System default room purge (days) */
43         char c_logpages[ROOMNAMELEN];   /* Room to log pages to (or not)    */
44         char c_createax;                /* Axlevel required to create rooms */
45         long c_maxmsglen;               /* Maximum message length           */
46         int c_min_workers;              /* Lower limit on number of threads */
47         int c_max_workers;              /* Upper limit on number of threads */
48         int c_pop3_port;                /* POP3 listener port (usually 110) */
49         int c_smtp_port;                /* SMTP listener port (usually 25)  */
50         int c_rfc822_strict_from;       /* 1 = don't correct From: forgeries*/
51         int c_aide_zap;                 /* Are Aides allowed to zap rooms?  */
52         int c_imap_port;                /* IMAP listener port (usually 143) */
53         time_t c_net_freq;              /* how often to run the networker   */
54         char c_disable_newu;            /* disable NEWU command             */
55         char c_enable_fulltext;         /* enable full text indexing        */
56         char c_baseroom[ROOMNAMELEN];   /* Name of baseroom (Lobby)         */
57         char c_aideroom[ROOMNAMELEN];   /* Name of aideroom (Aide)          */
58         int c_purge_hour;               /* Hour during which db purges run  */
59         struct ExpirePolicy c_mbxep;    /* Expire policy for mailbox rooms  */
60         char c_ldap_host[128];          /* Host where LDAP service lives    */
61         int c_ldap_port;                /* Port on host where LDAP lives    */
62         char c_ldap_base_dn[256];       /* LDAP base DN                     */
63         char c_ldap_bind_dn[256];       /* LDAP bind DN                     */
64         char c_ldap_bind_pw[256];       /* LDAP bind password               */
65         int c_msa_port;                 /* SMTP MSA listener port (usu 587) */
66         int c_imaps_port;               /* IMAPS listener port (usually 993)*/
67         int c_pop3s_port;               /* POP3S listener port (usually 995)*/
68         int c_smtps_port;               /* SMTPS listener port (usually 465)*/
69         char c_auto_cull;               /* Cull db logs automatically?      */
70         char c_instant_expunge;         /* IMAP instant expunge deleted msgs*/
71         char c_allow_spoofing;          /* SMTP allow spoofing of my domains*/
72 };
73
74
75 void get_config(void);
76 void put_config(void);
77 extern struct config config;
78 extern char ctdl_home_directory[PATH_MAX];
79 extern int home_specified;