]> code.citadel.org Git - citadel.git/blobdiff - citadel/config.h
misc cleanup
[citadel.git] / citadel / config.h
index 967818c54a54c47b8750742284c002504e2a093d..23f144a482ba4eb4c147a998070e35ce5a71e43f 100644 (file)
-/*
- * $Id$
- *
- * Copyright (c) 1987-2009 by the citadel.org team
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 3 of the License, or
- *  (at your option) any later version.
- *
- *  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.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
+// 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"
 
+// 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.  Seriously -- DO NOT CHANGE IT.  The only purpose of this
+// struct is to represent the OLD configuration format.
+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_niu_9;
+       int c_auth_mode;
+       char c_niu_8[256];
+       int c_niu_10;
+       char c_niu_11[256];
+       char c_niu_12[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);
+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);