Remove managesieve framework because we are removing sieve
[citadel.git] / citadel / config.h
1 /*
2  * Copyright (c) 1987-2016 by the citadel.org team
3  *
4  * This program is open source software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 3.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  */
12
13 #include "serv_extensions.h"
14 #include "citadel_dirs.h"
15
16
17
18 /*
19  * This is the format of the legacy config file.  Do not attempt to do anything with it other
20  * than migrate it into the new format.    DO NOT EDIT -- EVER.
21  */
22 struct legacy_config {
23         char c_nodename[16];            /* short name of this node on a Citadel network */
24         char c_fqdn[64];                /* this site's fully qualified domain name */
25         char c_humannode[21];           /* human-readable site name */
26         char c_niu_7[16];
27         uid_t c_niu_6;
28         char c_creataide;               /* 1 = creating a room auto-grants room aide privileges */
29         int c_sleeping;                 /* watchdog timer (seconds) */
30         char c_initax;                  /* initial access level for new users */
31         char c_regiscall;               /* after c_regiscall logins user will be asked to register */
32         char c_twitdetect;              /* automatically move messages from problem users to trashcan */
33         char c_twitroom[ROOMNAMELEN];   /* name of trashcan */
34         char c_moreprompt[80];          /* paginator prompt */
35         char c_restrict;                /* require per-user permission to send Internet mail */
36         long c_niu_1;
37         char c_site_location[32];       /* geographic location of this Citadel site */
38         char c_sysadm[26];              /* name of system administrator */
39         char c_niu_2[15];
40         int c_niu_3;
41         int c_maxsessions;              /* maximum number of concurrent sessions allowed */
42         char c_ip_addr[20];             /* bind address for listening sockets */
43         int c_port_number;              /* port number for Citadel protocol (usually 504) */
44         int c_niu_4;
45         struct ExpirePolicy c_ep;       /* default expire policy for the entire site */
46         int c_userpurge;                /* user purge time (in days) */
47         int c_roompurge;                /* room purge time (in days) */
48         char c_logpages[ROOMNAMELEN];
49         char c_createax;
50         long c_maxmsglen;
51         int c_min_workers;
52         int c_max_workers;
53         int c_pop3_port;
54         int c_smtp_port;
55         int c_rfc822_strict_from;
56         int c_aide_zap;
57         int c_imap_port;
58         time_t c_net_freq;
59         char c_disable_newu;
60         char c_enable_fulltext;
61         char c_baseroom[ROOMNAMELEN];
62         char c_aideroom[ROOMNAMELEN];
63         int c_purge_hour;
64         struct ExpirePolicy c_mbxep;
65         char c_ldap_host[128];
66         int c_ldap_port;
67         char c_ldap_base_dn[256];
68         char c_ldap_bind_dn[256];
69         char c_ldap_bind_pw[256];
70         int c_msa_port;
71         int c_imaps_port;
72         int c_pop3s_port;
73         int c_smtps_port;
74         char c_auto_cull;
75         char c_niu_5;
76         char c_allow_spoofing;
77         char c_journal_email;
78         char c_journal_pubmsgs;
79         char c_journal_dest[128];
80         char c_default_cal_zone[128];
81         int c_pftcpdict_port;
82         int c_managesieve_port;
83         int c_auth_mode;
84         char c_niu_8[256];
85         int c_niu_9;
86         char c_niu_10[256];
87         char c_niu_11[256];
88         char c_rbl_at_greeting;
89         char c_master_user[32];
90         char c_master_pass[32];
91         char c_pager_program[256];
92         char c_imap_keep_from;
93         int c_xmpp_c2s_port;
94         int c_xmpp_s2s_port;
95         time_t c_pop3_fetch;
96         time_t c_pop3_fastest;
97         int c_spam_flag_only;
98         int c_guest_logins;
99         int c_nntp_port;
100         int c_nntps_port;
101 };
102
103
104
105
106 void initialize_config_system(void);
107 void shutdown_config_system(void);
108 void put_config(void);
109 void CtdlSetConfigStr(char *, char *);
110 char *CtdlGetConfigStr(char *);
111 int CtdlGetConfigInt(char *);
112 long CtdlGetConfigLong(char *);
113 void CtdlSetConfigInt(char *key, int value);
114 void CtdlSetConfigLong(char *key, long value);
115 void CtdlDelConfig(char *key);
116
117 char *CtdlGetSysConfig(char *sysconfname);
118 void CtdlPutSysConfig(char *sysconfname, char *sysconfdata);
119 void validate_config(void);
120 void netcfg_keyname(char *, long);