X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fconfig.h;h=9fc59f48050ae6aeebda4f49d110eadfe49ab9f4;hb=fdd5004e632b955274b9fdeb9a63223cba7536a8;hp=90d8bf60430e454de4da909c8aa5f3f8adc79273;hpb=81f05d1bc08d9050b5abe1309c9ae6d2ba71c885;p=citadel.git diff --git a/citadel/config.h b/citadel/config.h index 90d8bf604..9fc59f480 100644 --- a/citadel/config.h +++ b/citadel/config.h @@ -1,95 +1,120 @@ /* - * $Id$ + * Copyright (c) 1987-2016 by the citadel.org team * + * This program is open source software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. */ #include "serv_extensions.h" #include "citadel_dirs.h" -/* - * 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 { -#include "datadefinitions.h" -#include "dtds/config-defs.h" -#include "undef_data.h" -/// 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_enable_fulltext; /* enable full text indexing */ -/// 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)*/ -/// char c_auto_cull; /* Cull db logs automatically? */ -/// char c_instant_expunge; /* IMAP instant expunge deleted msgs*/ -/// char c_allow_spoofing; /* SMTP allow spoofing of my domains*/ -/// char c_journal_email; /* Perform journaling of email */ -/// char c_journal_pubmsgs; /* Perform journaling of non-email */ -/// char c_journal_dest[128]; /* Where to send journalized msgs */ -/// char c_default_cal_zone[128]; /* Default calendar time zone */ -/// int c_pftcpdict_port; /* postfix tcptable support, see http://www.postfix.org/tcp_table.5.html */ -/// int c_managesieve_port; /* managesieve port. */ -/// int c_auth_mode; /* 0 = built-in Citadel auth; 1 = underlying host system auth */ -/// char c_funambol_host[256]; /* Funambol host. Blank to disable */ -/// int c_funambol_port; /* Funambol port */ -/// char c_funambol_source[256]; /* Funambol sync source */ -/// char c_funambol_auth[256]; /* Funambol auth details */ -/// char c_rbl_at_greeting; /* Check RBL's at connect instead of after RCPT */ -/// + + +/* + * This is the format of the legacy config file. Do not attempt to do anything with it other + * than migrate it into the new format. DO NOT EDIT -- EVER. + */ +struct legacy_config { + char c_nodename[16]; /* short name of this node on a Citadel network */ + char c_fqdn[64]; /* this site's fully qualified domain name */ + char c_humannode[21]; /* human-readable site name */ + char c_niu_7[16]; + uid_t c_niu_6; + char c_creataide; /* 1 = creating a room auto-grants room aide privileges */ + int c_sleeping; /* watchdog timer (seconds) */ + char c_initax; /* initial access level for new users */ + char c_regiscall; /* after c_regiscall logins user will be asked to register */ + char c_twitdetect; /* automatically move messages from problem users to trashcan */ + char c_twitroom[ROOMNAMELEN]; /* name of trashcan */ + char c_moreprompt[80]; /* paginator prompt */ + char c_restrict; /* require per-user permission to send Internet mail */ + long c_niu_1; + char c_site_location[32]; /* geographic location of this Citadel site */ + char c_sysadm[26]; /* name of system administrator */ + char c_niu_2[15]; + int c_niu_3; + int c_maxsessions; /* maximum number of concurrent sessions allowed */ + char c_ip_addr[20]; /* bind address for listening sockets */ + int c_port_number; /* port number for Citadel protocol (usually 504) */ + int c_niu_4; + struct ExpirePolicy c_ep; /* default expire policy for the entire site */ + int c_userpurge; /* user purge time (in days) */ + int c_roompurge; /* room purge time (in days) */ + char c_logpages[ROOMNAMELEN]; + char c_createax; + long c_maxmsglen; + int c_min_workers; + int c_max_workers; + int c_pop3_port; + int c_smtp_port; + int c_rfc822_strict_from; + int c_aide_zap; + int c_imap_port; + time_t c_net_freq; + char c_disable_newu; + char c_enable_fulltext; + char c_baseroom[ROOMNAMELEN]; + char c_aideroom[ROOMNAMELEN]; + int c_purge_hour; + struct ExpirePolicy c_mbxep; + char c_ldap_host[128]; + int c_ldap_port; + char c_ldap_base_dn[256]; + char c_ldap_bind_dn[256]; + char c_ldap_bind_pw[256]; + int c_msa_port; + int c_imaps_port; + int c_pop3s_port; + int c_smtps_port; + char c_auto_cull; + char c_niu_5; + char c_allow_spoofing; + char c_journal_email; + char c_journal_pubmsgs; + char c_journal_dest[128]; + char c_default_cal_zone[128]; + int c_pftcpdict_port; + int c_managesieve_port; + int c_auth_mode; + char c_niu_8[256]; + int c_niu_9; + char c_niu_10[256]; + char c_niu_11[256]; + char c_rbl_at_greeting; + char c_master_user[32]; + char c_master_pass[32]; + char c_pager_program[256]; + char c_imap_keep_from; + int c_xmpp_c2s_port; + int c_xmpp_s2s_port; + time_t c_pop3_fetch; + time_t c_pop3_fastest; + int c_spam_flag_only; + int c_guest_logins; + int c_nntp_port; + int c_nntps_port; }; -void get_config(void); + + +void initialize_config_system(void); +void shutdown_config_system(void); void put_config(void); -extern struct config config; +void CtdlSetConfigStr(char *, char *); +char *CtdlGetConfigStr(char *); +int CtdlGetConfigInt(char *); +long CtdlGetConfigLong(char *); +void CtdlSetConfigInt(char *key, int value); +void CtdlSetConfigLong(char *key, long value); +void CtdlDelConfig(char *key); +char *CtdlGetSysConfig(char *sysconfname); +void CtdlPutSysConfig(char *sysconfname, char *sysconfdata); +void validate_config(void); +void netcfg_keyname(char *, long);