");
+ if (WCC->Policy[which].loaded == 0) LoadExpirePolicy(which);
+
+ return WCC->Policy[which].expire_mode == CompareWith;
+}
- char *tabnames[] = {
- _("General"),
- _("Access"),
- _("Network"),
- _("Tuning"),
- _("Directory"),
- _("Auto-purger"),
- _("Indexing/Journaling")
- };
+void tmplput_ExpireValue(StrBuf *Target, WCTemplputParams *TP)
+{
+ GPEXWhichPolicy which;
+ wcsession *WCC = WC;
+
+ which = GetTemplateTokenNumber(Target, TP, 0, 0);
+ if (WCC->Policy[which].loaded == 0) LoadExpirePolicy(which);
+ StrBufAppendPrintf(Target, "%d", WCC->Policy[which].expire_value);
+}
- sprintf(general, "%s ",
- _("General site configuration items")
- );
- sprintf(access, "%s ",
- _("Access controls and site policy settings")
- );
+void tmplput_ExpireMode(StrBuf *Target, WCTemplputParams *TP)
+{
+ GPEXWhichPolicy which;
+ wcsession *WCC = WC;
+
+ which = GetTemplateTokenNumber(Target, TP, 2, 0);
+ if (WCC->Policy[which].loaded == 0) LoadExpirePolicy(which);
+ StrBufAppendPrintf(Target, "%d", WCC->Policy[which].expire_mode);
+}
- sprintf(network, "%s %s ",
- _("Network services"),
- _("Changes made on this screen will not take effect "
- "until you restart the Citadel server.")
- );
- sprintf(tuning, "%s ",
- _("Advanced server fine-tuning controls")
- );
- sprintf(directory, "%s %s ",
- _("Configure the LDAP connector for Citadel"),
- _("Changes made on this screen will not take effect "
- "until you restart the Citadel server.")
- );
+void LoadZoneFiles(void)
+{
+ icalarray *zones;
+ int z;
+ long len;
+ const char *this_zone;
+ StrBuf *ZName;
+
+ ZoneHash = NewHash(1, NULL);
+ ZName = NewStrBufPlain(HKEY("UTC"));
+ Put(ZoneHash, HKEY("UTC"), ZName, HFreeStrBuf);
+ zones = icaltimezone_get_builtin_timezones();
+ for (z = 0; z < zones->num_elements; ++z) {
+ /* syslog(9, "Location: %-40s tzid: %s\n",
+ icaltimezone_get_location(icalarray_element_at(zones, z)),
+ icaltimezone_get_tzid(icalarray_element_at(zones, z))
+ ); */
+ this_zone = icaltimezone_get_location(icalarray_element_at(zones, z));
+ len = strlen(this_zone);
+ ZName = NewStrBufPlain(this_zone, len);
+ Put(ZoneHash, this_zone, len, ZName, HFreeStrBuf);
+ }
+ SortByHashKey(ZoneHash, 0);
+}
- sprintf(purger, "%s %s ",
- _("Configure automatic expiry of old messages"),
- _("These settings may be overridden on a per-floor or per-room basis.")
- );
- sprintf(idxjnl, "%s %s ",
- _("Indexing and Journaling"),
- _("Warning: these facilities are resource intensive.")
- );
+typedef struct _CfgMapping {
+ int type;
+ const char *Key;
+ long len;
+}CfgMapping;
+
+#define CFG_STR 1
+#define CFG_YES 2
+#define CFG_NO 3
+
+CfgMapping ServerConfig[] = {
+ {CFG_STR, HKEY("c_nodename")},
+ {CFG_STR, HKEY("c_fqdn")},
+ {CFG_STR, HKEY("c_humannode")},
+ {CFG_STR, HKEY("c_phonenum")},
+ {CFG_YES, HKEY("c_creataide")},
+ {CFG_STR, HKEY("c_sleeping")},
+ {CFG_STR, HKEY("c_initax")},
+ {CFG_YES, HKEY("c_regiscall")},
+ {CFG_YES, HKEY("c_twitdetect")},
+ {CFG_STR, HKEY("c_twitroom")},
+ {CFG_STR, HKEY("c_moreprompt")},
+ {CFG_YES, HKEY("c_restrict")},
+ {CFG_STR, HKEY("c_bbs_city")},
+ {CFG_STR, HKEY("c_sysadm")},
+ {CFG_STR, HKEY("c_maxsessions")},
+ {CFG_STR, HKEY("reserved1")},
+ {CFG_STR, HKEY("c_userpurge")},
+ {CFG_STR, HKEY("c_roompurge")},
+ {CFG_STR, HKEY("c_logpages")},
+ {CFG_STR, HKEY("c_createax")},
+ {CFG_STR, HKEY("c_maxmsglen")},
+ {CFG_STR, HKEY("c_min_workers")},
+ {CFG_STR, HKEY("c_max_workers")},
+ {CFG_STR, HKEY("c_pop3_port")},
+ {CFG_STR, HKEY("c_smtp_port")},
+ {CFG_NO , HKEY("c_rfc822_strict_from")}, /* note: reverse bool */
+ {CFG_YES, HKEY("c_aide_zap")},
+ {CFG_STR, HKEY("c_imap_port")},
+ {CFG_STR, HKEY("c_net_freq")},
+ {CFG_YES, HKEY("c_disable_newu")},
+ {CFG_STR, HKEY("reserved2")},
+ {CFG_STR, HKEY("c_purge_hour")},
+ {CFG_STR, HKEY("c_ldap_host")},
+ {CFG_STR, HKEY("c_ldap_port")},
+ {CFG_STR, HKEY("c_ldap_base_dn")},
+ {CFG_STR, HKEY("c_ldap_bind_dn")},
+ {CFG_STR, HKEY("c_ldap_bind_pw")},
+ {CFG_STR, HKEY("c_ip_addr")},
+ {CFG_STR, HKEY("c_msa_port")},
+ {CFG_STR, HKEY("c_imaps_port")},
+ {CFG_STR, HKEY("c_pop3s_port")},
+ {CFG_STR, HKEY("c_smtps_port")},
+ {CFG_YES, HKEY("c_enable_fulltext")},
+ {CFG_YES, HKEY("c_auto_cull")},
+ {CFG_YES, HKEY("c_instant_expunge")},
+ {CFG_YES, HKEY("c_allow_spoofing")},
+ {CFG_YES, HKEY("c_journal_email")},
+ {CFG_YES, HKEY("c_journal_pubmsgs")},
+ {CFG_STR, HKEY("c_journal_dest")},
+ {CFG_STR, HKEY("c_default_cal_zone")},
+ {CFG_STR, HKEY("c_pftcpdict_port")},
+ {CFG_STR, HKEY("c_mgesve_port")},
+ {CFG_STR, HKEY("c_auth_mode")},
+ {CFG_STR, HKEY("c_funambol_host")},
+ {CFG_STR, HKEY("c_funambol_port")},
+ {CFG_STR, HKEY("c_funambol_source")},
+ {CFG_STR, HKEY("c_funambol_auth")},
+ {CFG_YES, HKEY("c_rbl_at_greeting")},
+ {CFG_STR, HKEY("c_master_user")},
+ {CFG_STR, HKEY("c_master_pass")},
+ {CFG_STR, HKEY("c_pager_program")},
+ {CFG_YES, HKEY("c_imap_keep_from")},
+ {CFG_STR, HKEY("c_xmpp_c2s_port")},
+ {CFG_STR, HKEY("c_xmpp_s2s_port")},
+ {CFG_STR, HKEY("c_pop3_fetch")},
+ {CFG_STR, HKEY("c_pop3_fastest")},
+ {CFG_YES , HKEY("c_spam_flag_only")},
+ {CFG_YES , HKEY("c_guest_logins")}
+};
- wprintf("
");
- sprintf(&access[strlen(access)], "
");
- sprintf(&network[strlen(network)], "
");
- sprintf(&tuning[strlen(tuning)], "
");
- sprintf(&directory[strlen(directory)], "
");
- sprintf(&purger[strlen(purger)], "
");
- sprintf(&idxjnl[strlen(idxjnl)], "
");
-
- tabbed_dialog(7, tabnames);
-
- begin_tab(0, 7); wprintf("%s", general); end_tab(0, 7);
- begin_tab(1, 7); wprintf("%s", access); end_tab(1, 7);
- begin_tab(2, 7); wprintf("%s", network); end_tab(2, 7);
- begin_tab(3, 7); wprintf("%s", tuning); end_tab(3, 7);
- begin_tab(4, 7); wprintf("%s", directory); end_tab(4, 7);
- begin_tab(5, 7); wprintf("%s", purger); end_tab(5, 7);
- begin_tab(6, 7); wprintf("%s", idxjnl); end_tab(6, 7);
-
- wprintf(" ");
- wprintf(" ", _("Save changes"));
- wprintf(" ");
- wprintf(" \n", _("Cancel"));
- wprintf("
\n");
- wprintf("