* more work on sitewide config
authorWilfried Göesgens <willi@citadel.org>
Sun, 7 Sep 2008 20:43:26 +0000 (20:43 +0000)
committerWilfried Göesgens <willi@citadel.org>
Sun, 7 Sep 2008 20:43:26 +0000 (20:43 +0000)
24 files changed:
webcit/siteconfig.c
webcit/static/t/display_serverrestart.html
webcit/static/t/display_serverrestartpagedo.html
webcit/static/t/display_sitewide_config.html [new file with mode: 0644]
webcit/static/t/subject_access.html [new file with mode: 0644]
webcit/static/t/subject_autopurger.html [new file with mode: 0644]
webcit/static/t/subject_directory.html [new file with mode: 0644]
webcit/static/t/subject_general.html [new file with mode: 0644]
webcit/static/t/subject_indexing.html [new file with mode: 0644]
webcit/static/t/subject_network.html [new file with mode: 0644]
webcit/static/t/subject_pop3.html [new file with mode: 0644]
webcit/static/t/subject_pushmail.html [new file with mode: 0644]
webcit/static/t/subject_tuning.html [new file with mode: 0644]
webcit/static/t/tab_siteconfig_access.html [new file with mode: 0644]
webcit/static/t/tab_siteconfig_autopurger.html [new file with mode: 0644]
webcit/static/t/tab_siteconfig_directory.html [new file with mode: 0644]
webcit/static/t/tab_siteconfig_general.html [new file with mode: 0644]
webcit/static/t/tab_siteconfig_indexing.html [new file with mode: 0644]
webcit/static/t/tab_siteconfig_network.html [new file with mode: 0644]
webcit/static/t/tab_siteconfig_pop3.html [new file with mode: 0644]
webcit/static/t/tab_siteconfig_pushmail.html [new file with mode: 0644]
webcit/static/t/tab_siteconfig_tuning.html [new file with mode: 0644]
webcit/subst.c
webcit/webserver.c

index aa034ca83a49e790ebe4a7d57343718591bf7cf1..5e42ae5a268e884b4f6e82bbbc7bd89d379bd661 100644 (file)
@@ -896,6 +896,8 @@ void load_siteconfig(void)
        }
 
        serv_puts("GPEX site");
+       Buf = NewStrBuf();
+       Token = NULL;
        StrBuf_ServGetln(Buf);
        if (ChrPtr(Buf)[0] == '2') {
                StrBufCutLeft(Buf, 4);
index 5f9f240d9ff1e275907893dc5c06089a2ad027e6..9ee16012cf16b8579fae8e254e21a8c4eeb20b1b 100644 (file)
@@ -2,7 +2,7 @@
         "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<title><?CURRENT_USER> - <?SERV_HUMANNODE></title>
+<title><?CURRENT_USER> - <?SERV:HUMANNODE></title>
 <meta name="MSSmartTagsPreventParsing" content="TRUE" >
 <meta name="keywords" content="groupware messaging collaboration" >
 <link href="static/niftyCorners.css" rel="stylesheet" type="text/css">
index ac1bedd61f3aed72a728b24c7e0b540e4fab0429..015f88bf6d89c55f09cf2f804ab91471ac8fad97 100644 (file)
@@ -2,7 +2,7 @@
         "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<title><?CURRENT_USER> - <?SERV_HUMANNODE></title>
+<title><?CURRENT_USER> - <?SERV:HUMANNODE></title>
 <meta name="MSSmartTagsPreventParsing" content="TRUE" >
 <meta name="keywords" content="groupware messaging collaboration" >
 <link href="static/niftyCorners.css" rel="stylesheet" type="text/css">
diff --git a/webcit/static/t/display_sitewide_config.html b/webcit/static/t/display_sitewide_config.html
new file mode 100644 (file)
index 0000000..e2bf7a0
--- /dev/null
@@ -0,0 +1,23 @@
+<?=("head")>
+<?=("important_msg")>
+<?ICONBAR>
+<div id="banner">
+<h1><?_("Site configuration")></h1>
+</div>
+<div id="content" class="service fix_scrollbar_bug">
+<?!("COND:AIDE", 1)><?_("You need to be aide to view this.")><?!("X", 1)>
+<??("COND:AIDE", 2)>
+<form method="post" action="siteconfig">
+<input type="hidden" name="nonce" value= '<?NONCE>'>
+<?DOTABBED("subject_general", "tab_siteconfig_general",
+       "subject_access", "tab_siteconfig_access",
+       "subject_network", "tab_siteconfig_network",
+       "subject_tuning", "tab_siteconfig_tuning",
+       "subject_directory", "tab_siteconfig_directory",
+       "subject_autopurger", "tab_siteconfig_autopurger",
+       "subject_indexing", "tab_siteconfig_indexing",
+       "subject_pushmail", "tab_siteconfig_pushmail",
+       "subject_pop3", "tab_siteconfig_pop3")>
+<??("X", 2)>
+</div>
+<?=("trailing")>
diff --git a/webcit/static/t/subject_access.html b/webcit/static/t/subject_access.html
new file mode 100644 (file)
index 0000000..a998662
--- /dev/null
@@ -0,0 +1 @@
+<?_("Access")>
diff --git a/webcit/static/t/subject_autopurger.html b/webcit/static/t/subject_autopurger.html
new file mode 100644 (file)
index 0000000..781c5cc
--- /dev/null
@@ -0,0 +1 @@
+<?_("Auto-purger")>
diff --git a/webcit/static/t/subject_directory.html b/webcit/static/t/subject_directory.html
new file mode 100644 (file)
index 0000000..def1107
--- /dev/null
@@ -0,0 +1 @@
+<?_("Directory")>
diff --git a/webcit/static/t/subject_general.html b/webcit/static/t/subject_general.html
new file mode 100644 (file)
index 0000000..e59c2e8
--- /dev/null
@@ -0,0 +1 @@
+<?_("General")>
diff --git a/webcit/static/t/subject_indexing.html b/webcit/static/t/subject_indexing.html
new file mode 100644 (file)
index 0000000..1319d4e
--- /dev/null
@@ -0,0 +1 @@
+<?_("Indexing/Journaling")>
diff --git a/webcit/static/t/subject_network.html b/webcit/static/t/subject_network.html
new file mode 100644 (file)
index 0000000..e79a3f9
--- /dev/null
@@ -0,0 +1 @@
+<?_("Network")>
diff --git a/webcit/static/t/subject_pop3.html b/webcit/static/t/subject_pop3.html
new file mode 100644 (file)
index 0000000..499ae00
--- /dev/null
@@ -0,0 +1 @@
+<?_("Pop3")>
diff --git a/webcit/static/t/subject_pushmail.html b/webcit/static/t/subject_pushmail.html
new file mode 100644 (file)
index 0000000..394b5c4
--- /dev/null
@@ -0,0 +1 @@
+<?_("Push Email")>
diff --git a/webcit/static/t/subject_tuning.html b/webcit/static/t/subject_tuning.html
new file mode 100644 (file)
index 0000000..5bb01ae
--- /dev/null
@@ -0,0 +1 @@
+<?_("Tuning")>
diff --git a/webcit/static/t/tab_siteconfig_access.html b/webcit/static/t/tab_siteconfig_access.html
new file mode 100644 (file)
index 0000000..493c8bf
--- /dev/null
@@ -0,0 +1,85 @@
+<center><h1><?_("Access controls and site policy settings")></h1>
+<table border="0">
+
+<tr><td><?_("Automatically grant room-aide status to users who create private rooms")></td><td>
+<input type="checkbox" name="c_creataide" value="yes" '<?SERV:CFG("c_creataide")>'>
+
+</td></tr>
+
+<tr><td><?_("Initial access level for new users")></td><td>
+<select name="c_initax" size="1">
+<!--
+                       for (j=0; j<=6; ++j) {
+                               sprintf(&access[strlen(access)], "<option %s value="%d">%d - %s</option>",
+                                       ((atoi(buf) == j) ? "selected" : ""),
+                                       j, j, axdefs[j]
+                               );
+                       }
+-->
+</select>
+</td></tr>
+
+<tr><td><?_("Require registration for new users")></td><td>
+<input type="checkbox" name="c_regiscall" value="yes" '<?SERV:CFG("c_regiscall")>'>
+<!--                           ((atoi(buf) != 0) ? "checked" : ""));-->
+</td></tr>
+
+
+<tr><td><?_("Quarantine messages from problem users")></td><td>
+<input type="checkbox" name="c_twitdetect" value="yes" '<?SERV:CFG("c_twitdetect")>'>
+<!--                           ((atoi(buf) != 0) ? "checked" : ""));-->
+</td></tr>
+
+
+<tr><td><?_("Name of quarantine room")></td><td>
+<input type="text" name="c_twitroom" maxlength="63" value='<?SERV:CFG("c_twitroom")>'>
+</td></tr>
+
+<tr><td><?_("Restrict access to Internet mail")></td><td>
+<input type="checkbox" name="c_restrict" value="yes" %s>
+<!--                           ((atoi(buf) != 0) ? "checked" : ""));-->
+</td></tr>
+
+<tr><td><?_("Name of room to log pages")></td><td>
+<input type="text" name="c_logpages" maxlength="63" value='<?SERV:CFG("c_logpages")>'>
+</td></tr>
+
+
+<tr><td><?_("Access level required to create rooms")></td><td>
+<select name="c_createax" size="1">
+<!--
+                       for (j=0; j<=6; ++j) {
+                               sprintf(&access[strlen(access)], "<option %s value="%d">%d - %s</option>",
+                                       ((atoi(buf) == j) ? "selected" : ""),
+                                       j, j, axdefs[j]
+                               );
+                       }
+-->
+</select>
+</td></tr>
+
+<tr><td><?_("Allow aides to zap (forget) rooms")></td><td>
+<input type="checkbox" NAME="c_aide_zap" VALUE="yes" '<?SERV:CFG("c_aide_zap")>'>
+<!--                           ((atoi(buf) != 0) ? "CHECKED" : ""));-->
+</td></tr>
+
+<tr><td><?_("Disable self-service user account creation")></td><td>
+<input type="checkbox" NAME="c_disable_newu" VALUE="yes" '<?SERV:CFG("c_disable_newu")>'>
+<!--                           ((atoi(buf) != 0) ? "CHECKED" : ""));
+</td></tr>
+
+<tr><td><?_("Enable host based authentication mode")></td><td>
+<input type="hidden" NAME="c_auth_mode" VALUE='<?SERV:CFG("c_auth_mode")>'>
+<!--                           ((atoi(buf) != 0) ? "Yes" : "No"));-->
+</td></tr>
+
+<tr><td><?_("Master user name (blank to disable)")></td><td>
+<input type="text" NAME="c_master_user" MAXLENGTH="31" VALUE='<?SERV:CFG("c_master_user")>'>
+</td></tr>
+
+
+<tr><td><?_("Master user password")></td><td>
+<input type="password" NAME="c_master_pass" MAXLENGTH="31" VALUE='<?SERV:CFG("c_master_pass")>'>
+</td></tr>
+</table>
+               
diff --git a/webcit/static/t/tab_siteconfig_autopurger.html b/webcit/static/t/tab_siteconfig_autopurger.html
new file mode 100644 (file)
index 0000000..e86081d
--- /dev/null
@@ -0,0 +1,59 @@
+<center>
+<h1><?_("Configure automatic expiry of old messages")></h1>
+<h2><?_("These settings may be overridden on a per-floor or per-room basis.")></h2>
+<table border="0">
+
+<tr><td><_("Hour to run database auto-purge")></td><td>
+<select NAME="c_purge_hour" SIZE="1">
+<!--
+                       for (j=0; j<=23; ++j) {
+                               sprintf(&purger[strlen(purger)], "<OPTION %s VALUE="%d">%d:00%s</OPTION>\n",
+                                       ((atoi(buf) == j) ? "SELECTED" : ""),
+                                       j,
+                                       (get_time_format_cached() == WC_TIMEFORMAT_24) ? j : ((j == 0) ? 12 : ((j>12) ? j-12 : j)),
+                                       (get_time_format_cached() == WC_TIMEFORMAT_24) ? "" : ((j >= 12) ? "pm" : "am")
+                               );
+                       }
+-->
+</select>
+</td></tr>
+<tr><TD COLSPAN=2>
+<hr />
+</td></tr>
+<tr><td>
+<?_("Default message expire policy for public rooms")>
+</td><td>
+<input type="radio" NAME="sitepolicy" VALUE="1" %s>((sitepolicy == 1) ? "CHECKED" : ""
+<?_("Never automatically expire messages")>
+<br />
+<input type="radio" NAME="sitepolicy" VALUE="2" %s> ((sitepolicy == 2) ? "CHECKED" : "") );
+<?_("Expire by message count")><br />
+<input type="radio" NAME="sitepolicy" VALUE="3" %s>
+<!--           ((sitepolicy == 3) ? "CHECKED" : "") )-->
+<?_("Expire by message age")>
+<br />
+<?_("Number of messages or days: ")>
+<input type="text" NAME="sitevalue" MAXLENGTH="5" VALUE="%d">
+</td></tr>
+
+<tr><TD COLSPAN=2><hr /></td></tr>
+
+<tr><td><?_("Default message expire policy for private mailboxes")></td><td>
+<input type="radio" NAME="mboxpolicy" VALUE="0" %s><!-- ((mboxpolicy == 0) ? "CHECKED" : "") );-->
+<?_("Same policy as public rooms")>
+<br />
+<input type="radio" NAME="mboxpolicy" VALUE="1" %s><!--((mboxpolicy == 1) ? "CHECKED" : "") );-->
+<?_("Never automatically expire messages")>
+<br />
+<input type="radio" NAME="mboxpolicy" VALUE="2" %s><!--((mboxpolicy == 2) ? "CHECKED" : "") );-->
+<?_("Expire by message count")>
+<br />
+<input type="radio" NAME="mboxpolicy" VALUE="3" %s><!--((mboxpolicy == 3) ? "CHECKED" : "") );-->
+<?_("Expire by message age")>
+<br />
+<?_("Number of messages or days: ")>
+<input type="text" NAME="mboxvalue" MAXLENGTH="5" VALUE="%d"><!-- mboxvalue);
+</td></tr>
+
+<tr><TD COLSPAN=2><hr /></td></tr>
+
diff --git a/webcit/static/t/tab_siteconfig_directory.html b/webcit/static/t/tab_siteconfig_directory.html
new file mode 100644 (file)
index 0000000..1ff011e
--- /dev/null
@@ -0,0 +1,38 @@
+<center>
+<h1><?_("Configure the LDAP connector for Citadel")></h1>
+
+<??("COND:SUBST", 1, "SERV:LDAP_SUPP", "1")><h2><?_("Changes made on this screen will not take effect until you restart the Citadel server.")></h2><??("X", 1)>
+<?!("COND:SUBST", 2, "SERV:LDAP_SUPP", "1")><h2><?_("NOTE: This Citadel server has been built without LDAP support.  These options will have no effect.")></h2><??("X", 2)>
+
+<table border="0">
+
+<tr><td><?_("Host name of LDAP server (blank to disable)")></td><td>
+<input type="text" NAME="c_ldap_host" MAXLENGTH="127" VALUE='<?SERV:CFG("c_ldap_host")>'>
+</td></tr>
+
+
+<tr><td><?_("Port number of LDAP server (blank to disable)")></td><td>
+<input type="text" NAME="c_ldap_port" MAXLENGTH="127" VALUE='<?SERV:CFG("c_ldap_port")>'>
+</td></tr>
+
+
+<tr><td><?_("Base DN")></td><td>
+<input type="text" NAME="c_ldap_base_dn" MAXLENGTH="255" VALUE='<?SERV:CFG("c_ldap_base_dn")>'>
+</td></tr>
+
+
+<tr><td><?_("Bind DN")></td><td>
+<input type="text" NAME="c_ldap_bind_dn" MAXLENGTH="255" VALUE='<?SERV:CFG("c_ldap_bind_dn")>'>
+</td></tr>
+
+
+<tr><td><?_("Password for bind DN")></td><td>
+<input type="password" NAME="c_ldap_bind_pw" MAXLENGTH="255" VALUE='<?SERV:CFG("c_ldap_bind_pw")>'>
+
+</td></tr>
+
+
+</table>
+                       
+                       ?       
+                       :       
diff --git a/webcit/static/t/tab_siteconfig_general.html b/webcit/static/t/tab_siteconfig_general.html
new file mode 100644 (file)
index 0000000..5f73bde
--- /dev/null
@@ -0,0 +1,43 @@
+<center><h1><?_("General site configuration items")></h1>
+
+<table border="0">
+
+<tr><td><a href="display_edithello"> <?_("Change Login Logo")> </a></td>
+<td><a href="display_editgoodbuye"> <?_("Change Logout Logo")> </a></td></tr>
+
+<tr><td>
+<?_("Node name")>
+</td><td>
+<input type="text" name="c_nodename" maxlength="15" value='<?SERV:CFG("c_nodename")>'>
+</td></tr>
+
+<tr><td><?("Fully qualified domain name")></td><td>
+<input type="text" name="c_fqdn" maxlength="63" value='<?SERV:CFG("c_fqdn")>'>
+</td></tr>
+
+<tr><td><?("Human-readable node name")></td><td>
+<input type="text" name="c_humannode" maxlength="20" value='<?SERV:CFG("c_humannode")>'>
+</td></tr>
+
+<tr><td><?("Telephone number")></td><td>
+<input type="text" name="c_phonenum" maxlength="15" value='<?SERV:CFG("c_phonenum")>'>
+</td></tr>
+
+<tr><td><?("Paginator prompt (for text mode clients)")></td><td>
+<input type="text" name="c_moreprompt" maxlength="79" value='<?SERV:CFG("c_moreprompt")>'>
+</td></tr>
+
+<tr><td><?("Geographic location of this system")></td><td>
+<input type="text" name="c_bbs_city" maxlength="31" value='<?SERV:CFG("c_bbs_city")>'>
+</td></tr>
+
+<tr><td><?("Name of system administrator")></td><td>
+<input type="text" name="c_sysadm" MAXLENGTH="25" VALUE='<?SERV:CFG("c_sysadm")>'>
+</td></tr>
+
+<tr><td><?("Default timezone for unzoned calendar items")></td><td>
+<select name="c_default_cal_zone" size="1">
+<option %s value="%s">%s</option> "selected" : "")>
+</select>
+</td></tr>
+</table>
diff --git a/webcit/static/t/tab_siteconfig_indexing.html b/webcit/static/t/tab_siteconfig_indexing.html
new file mode 100644 (file)
index 0000000..6cca1ab
--- /dev/null
@@ -0,0 +1,40 @@
+<center>
+<h1><?_("Advanced server fine-tuning controls")></h1>
+<table border="0">
+
+<tr><td><?_("Server connection idle timeout (in seconds)")></td><td>
+<input type="text" name="c_sleeping" maxlength="15" value='<?SERV:CFG("c_sleeping")>'>
+</td></tr>
+
+<tr><td><?_("Maximum concurrent sessions (0 = no limit)")></td><td>
+<input type="text" name="c_maxsessions" maxlength="5" value='<?SERV:CFG("c_maxsessions")>'>
+</td></tr>
+
+
+<tr><td><?_("Default user purge time (days)")></td><td>
+<input type="text" name="c_userpurge" maxlength="5" value='<?SERV:CFG("c_userpurge")>'>
+</td></tr>
+
+
+<tr><td><?_("Default room purge time (days)")></td><td>
+<input type="text" name="c_roompurge" maxlength="5" value='<?SERV:CFG("c_roompurge")>'>
+</td></tr>
+
+<tr><td><?_("Maximum message length")></td><td>
+<input type="text" name="c_maxmsglen" maxlength="20" value='<?SERV:CFG("c_maxmsglen")>'>
+</td></tr>
+
+
+<tr><td><?_("Minimum number of worker threads")></td><td>
+<input type="text" name="c_min_workers" maxlength="5" value='<?SERV:CFG("c_min_workers")>'>
+</td></tr>
+
+
+<tr><td><?_("Maximum number of worker threads")></td><td>
+<input type="text" name="c_max_workers" maxlength="5" value='<?SERV:CFG("c_max_workers")>'>
+</td></tr>
+
+<tr><td><?_("Automatically delete committed database logs")></td><td>
+<input type="checkbox" NAME="c_auto_cull" VALUE="yes" '<?SERV:CFG("c_auto_cull")>'>
+</td></tr>
+</table>
diff --git a/webcit/static/t/tab_siteconfig_network.html b/webcit/static/t/tab_siteconfig_network.html
new file mode 100644 (file)
index 0000000..2924b56
--- /dev/null
@@ -0,0 +1,78 @@
+<center>
+<h1><?_("Network services")></h1>
+<h2><?_("Changes made on this screen will not take effect until you restart the Citadel server.")></h2>
+
+<table border="0">
+
+
+<tr><td><?_("SMTP MTA port (-1 to disable)"></td><td>
+<input type="text" NAME="c_smtp_port" MAXLENGTH="5" VALUE='<?SERV:CFG("c_smtp_port")>'>
+</td></tr>
+
+
+<tr><td><?_("Correct forged From: lines during authenticated SMTP")></td><td>
+<input type="checkbox" NAME="c_rfc822_strict_from" VALUE="yes" '<?SERV:CFG("c_rfc822_strict_from")>'>
+</td></tr>
+
+<tr><td><?_("IMAP listener port (-1 to disable)")></td><td>
+<input type="text" NAME="c_imap_port" MAXLENGTH="5" VALUE='<?SERV:CFG("c_imap_port")>'>
+</td></tr>
+
+
+<tr><td><?_("Network run frequency (in seconds)")></td><td>
+<input type="text" NAME="c_net_freq" MAXLENGTH="5" VALUE='<?SERV:CFG("c_net_freq")>'>
+</td></tr>
+
+<tr><td><?_("Server IP address (0.0.0.0 for 'any')")></td><td>
+<input type="text" NAME="c_ip_addr" MAXLENGTH="15" VALUE='<?SERV:CFG("c_ip_addr")>'>
+</td></tr>
+
+
+<tr><td><?_("SMTP MSA port (-1 to disable)")></td><td>
+<input type="text" NAME="c_msa_port" MAXLENGTH="5" VALUE='<?SERV:CFG("c_msa_port")>'>
+</td></tr>
+
+
+<tr><td><?_("IMAP over SSL port (-1 to disable)")></td><td>
+<input type="text" NAME="c_imaps_port" MAXLENGTH="5" VALUE='<?SERV:CFG("c_imaps_port")>'>
+</td></tr>
+
+<tr><td><?_("SMTP over SSL port (-1 to disable)")></td><td>
+<input type="text" NAME="c_smtps_port" MAXLENGTH="5" VALUE='<?SERV:CFG("c_smtps_port")>'>
+</td></tr>
+
+<tr><td><?_("Instantly expunge deleted messages in IMAP")></td><td>
+<input type="checkbox" NAME="c_instant_expunge" VALUE="yes" %s>
+</td></tr>
+
+<!-- TODO: allow random quotes in strings -->
+<tr><td><?_("Allow unauthenticated SMTP clients to spoof this sites domains")></td><td>
+<input type="checkbox" NAME="c_allow_spoofing" VALUE="yes" %s>
+</td></tr>
+
+<tr><td><a href="http://www.postfix.org/tcp_table.5.html"><?("Postfix TCP Dictionary Port")></a>(<?("-1 to disable")>)</td><td>
+<input type="text" NAME="c_pftcpdict_port" MAXLENGTH="5" VALUE='<?SERV:CFG("c_pftcpdict_port")>'>
+</td></tr>
+
+
+<tr><td><?_("ManageSieve Port (-1 to disable)")></td><td>
+<input type="text" NAME="c_mgesve_port" MAXLENGTH="5" VALUE='<?SERV:CFG("c_mgesve_port")>'>
+</td></tr>
+
+<tr><td><?_("Perform RBL checks upon connect instead of after RCPT")></td><td>
+<input type="checkbox" NAME="c_rbl_at_greeting" VALUE="yes" '<?SERV:CFG("c_rbl_at_greeting")>'>
+</td></tr>
+
+<tr><td><?_("Keep original from headers in IMAP")></td><td>
+<input type="checkbox" NAME="c_imap_keep_from" VALUE="yes" '<?SERV:CFG("c_imap_keep_from")>'>
+</td></tr>
+
+
+<tr><td><?_("XMPP (Jabber) client to server port (-1 to disable)")></td><td>
+<input type="text" name="c_xmpp_c2s_port" maxlength="5" value='<?SERV:CFG("c_xmpp_c2s_port")>'>
+</td></tr>
+
+
+<tr><td><?_("XMPP (Jabber) server to server port (-1 to disable)")></td><td>
+<input type="hidden" name="c_xmpp_s2s_port" value='<?SERV:CFG("c_xmpp_s2s_port")>'>
+</td></tr>
diff --git a/webcit/static/t/tab_siteconfig_pop3.html b/webcit/static/t/tab_siteconfig_pop3.html
new file mode 100644 (file)
index 0000000..d48178f
--- /dev/null
@@ -0,0 +1,21 @@
+<center>
+<h1><?_("POP3")></h1>
+<table border="0">
+
+<tr><td><?_("POP3 listener port (-1 to disable)")></td><td>
+<input type="text" name="c_pop3_port" maxlength="5" value='<?SERV:CFG("c_pop3_port")>'>
+</td></tr>
+
+<tr><td><?_("POP3 over SSL port (-1 to disable)")></td><td>
+<input type="text" NAME="c_pop3s_port" MAXLENGTH="5" VALUE='<?SERV:CFG("c_pop3s_port")>'>
+</td></tr>
+
+<tr><td><?_("POP3 fetch frequency in seconds")></td><td>
+<input type="text" name="c_pop3_fetch" MAXLENGTH="5" value='<?SERV:CFG("c_pop3_fetch")>'>
+</td></tr>
+
+
+<tr><td><?_("POP3 fastest fetch frequency in seconds")></td><td>
+<input type="text" name="c_pop3_fastest" MAXLENGTH="5" value='<?SERV:CFG("c_pop3_fastest")>'>
+</td></tr>
+</table>       
diff --git a/webcit/static/t/tab_siteconfig_pushmail.html b/webcit/static/t/tab_siteconfig_pushmail.html
new file mode 100644 (file)
index 0000000..3e46ff1
--- /dev/null
@@ -0,0 +1,27 @@
+<center>
+<h1><?_("Push Email")></h1>
+<table border="0">
+
+<tr><td><?_("Funambol server host (blank to disable)")></td><td>
+<input type="text" NAME="c_funambol_host" MAXLENGTH="255" VALUE='<?SERV:CFG("c_funambol_host")>'>
+</td></tr>
+
+
+<tr><td><?_("Funambol server port ")></td><td>
+<input type="text" NAME="c_funambol_port" MAXLENGTH="5" VALUE='<?SERV:CFG("c_funambol_port")>'>
+</td></tr>
+
+
+<tr><td><?_("Funambol sync source")></td><td>
+<input type="text" NAME="c_funambol_source" MAXLENGTH="255" VALUE='<?SERV:CFG("c_funambol_source")>'>
+</td></tr>
+
+
+<tr><td><?_("Funambol auth details (user:pass)")></td><td>
+<input type="text" NAME="c_funambol_auth" MAXLENGTH="255" VALUE='<?SERV:CFG("c_funambol_auth")>'>
+</td></tr>
+
+<tr><td><?_("External pager tool (blank to disable)")></td><td>
+<input type="text" NAME="c_pager_program" MAXLENGTH="255" VALUE='<?SERV:CFG("c_pager_program")>'>
+</td></tr>
+</table>
diff --git a/webcit/static/t/tab_siteconfig_tuning.html b/webcit/static/t/tab_siteconfig_tuning.html
new file mode 100644 (file)
index 0000000..fed29da
--- /dev/null
@@ -0,0 +1,40 @@
+<center><h1><?_("Advanced server fine-tuning controls")></h1>
+<table border="0">
+
+<tr><td><?_("Server connection idle timeout (in seconds)")></td><td>
+<input type="text" name="c_sleeping" maxlength="15" value='<?SERV:CFG("c_sleeping")>'>
+</td></tr>
+
+<tr><td><?_("Maximum concurrent sessions (0 = no limit)")></td><td>
+<input type="text" name="c_maxsessions" maxlength="5" value='<?SERV:CFG("c_maxsessions")>'>
+</td></tr>
+
+
+<tr><td><?_("Default user purge time (days)")></td><td>
+<input type="text" name="c_userpurge" maxlength="5" value='<?SERV:CFG("c_userpurge")>'>
+</td></tr>
+
+
+<tr><td><?_("Default room purge time (days)")></td><td>
+<input type="text" name="c_roompurge" maxlength="5" value='<?SERV:CFG("c_roompurge")>'>
+</td></tr>
+
+<tr><td><?_("Maximum message length")></td><td>
+<input type="text" name="c_maxmsglen" maxlength="20" value='<?SERV:CFG("c_maxmsglen")>'>
+</td></tr>
+
+
+<tr><td><?_("Minimum number of worker threads")></td><td>
+<input type="text" name="c_min_workers" maxlength="5" value='<?SERV:CFG("c_min_workers")>'>
+</td></tr>
+
+
+<tr><td><?_("Maximum number of worker threads")></td><td>
+<input type="text" name="c_max_workers" maxlength="5" value='<?SERV:CFG("c_max_workers")>'>
+</td></tr>
+
+<tr><td><?_("Automatically delete committed database logs")></td><td>
+<input type="checkbox" NAME="c_auto_cull" VALUE="yes" %s>
+
+</td></tr>
+</table>
index 36630a89ca6b0663657c5d064cb9ba48a465ff6d..f3bb28711c50203d2725abccbf3c3b6d58874e69 100644 (file)
@@ -746,7 +746,8 @@ void ProcessTemplate(WCTemplate *Tmpl, StrBuf *Target, void *Context)
        const char *pData, *pS;
        long len;
 
-       if (LoadTemplates != 0) {
+       if (LoadTemplates != 0) {                       
+               lprintf(1, "DBG: ----- loading:  [%s] ------ \n", ChrPtr(Tmpl->FileName));
                pTmpl = load_template(Tmpl->FileName, NULL, NULL);
        }
 
@@ -884,6 +885,14 @@ void *load_template(StrBuf *filename, StrBuf *Key, HashList *PutThere)
        return NewTemplate;
 }
 
+
+void PrintTemplate(void *vTemplate)
+{
+
+
+}
+
+
 /**
  * \brief Display a variable-substituted template
  * \param templatename template file to load
@@ -908,6 +917,7 @@ void DoTemplate(const char *templatename, long len, void *Context, StrBuf *Targe
        if (!GetHash(StaticLocal, templatename, len, &vTmpl) &&
            !GetHash(Static, templatename, len, &vTmpl)) {
                printf ("didn't find %s\n", templatename);
+               //print_hash(Static);
                return;
        }
        if (vTmpl == NULL) 
@@ -1186,13 +1196,14 @@ void
 InitModule_SUBST
 (void)
 {
-       RegisterNamespace("SERV_PID", 0, 0, tmplput_serv_ip);
-       RegisterNamespace("SERV_NODENAME", 0, 0, tmplput_serv_nodename);
-       RegisterNamespace("SERV_HUMANNODE", 0, 0, tmplput_serv_humannode);
-       RegisterNamespace("SERV_FQDN", 0, 0, tmplput_serv_fqdn);
-       RegisterNamespace("SERV_SOFTWARE", 0, 0, tmmplput_serv_software);
-       RegisterNamespace("SERV_REV_LEVEL", 0, 0, tmplput_serv_rev_level);
-       RegisterNamespace("SERV_BBS_CITY", 0, 0, tmmplput_serv_bbs_city);
+       RegisterNamespace("SERV:PID", 0, 0, tmplput_serv_ip);
+       RegisterNamespace("SERV:NODENAME", 0, 0, tmplput_serv_nodename);
+       RegisterNamespace("SERV:HUMANNODE", 0, 0, tmplput_serv_humannode);
+       RegisterNamespace("SERV:FQDN", 0, 0, tmplput_serv_fqdn);
+       RegisterNamespace("SERV:SOFTWARE", 0, 0, tmmplput_serv_software);
+       RegisterNamespace("SERV:REV_LEVEL", 0, 0, tmplput_serv_rev_level);
+       RegisterNamespace("SERV:BBS_CITY", 0, 0, tmmplput_serv_bbs_city);
+///    RegisterNamespace("SERV:LDAP_SUPP", 0, 0, tmmplput_serv_ldap_enabled);
        RegisterNamespace("CURRENT_USER", 0, 0, tmplput_current_user);
        RegisterNamespace("CURRENT_ROOM", 0, 0, tmplput_current_room);
        RegisterNamespace("ITERATE", 2, 4, tmpl_iterate_subtmpl);
index aa0a23199d000400f01ee6e78cffa0e714683750..ae20319e5c9277ac05b06b956679c42d4f5876ea 100644 (file)
@@ -307,6 +307,7 @@ long end_burst(void)
                                 ptr,
                                 count)) == -1) {
                         lprintf(2, "client_write: Socket write failed (%s)\n", strerror(errno));
+                       wc_backtrace();
                         return res;
                 }
                 count -= res;
@@ -338,6 +339,7 @@ long end_burst(void)
                                 ptr,
                                 count)) == -1) {
                         lprintf(2, "client_write: Socket write failed (%s)\n", strerror(errno));
+                       wc_backtrace();
                         return res;
                 }
                 count -= res;