}
serv_puts("GPEX site");
+ Buf = NewStrBuf();
+ Token = NULL;
StrBuf_ServGetln(Buf);
if (ChrPtr(Buf)[0] == '2') {
StrBufCutLeft(Buf, 4);
"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">
"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">
--- /dev/null
+<?=("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")>
--- /dev/null
+<?_("Access")>
--- /dev/null
+<?_("Auto-purger")>
--- /dev/null
+<?_("Directory")>
--- /dev/null
+<?_("General")>
--- /dev/null
+<?_("Indexing/Journaling")>
--- /dev/null
+<?_("Network")>
--- /dev/null
+<?_("Pop3")>
--- /dev/null
+<?_("Push Email")>
--- /dev/null
+<?_("Tuning")>
--- /dev/null
+<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>
+
--- /dev/null
+<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>
+
--- /dev/null
+<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>
+
+ ?
+ :
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<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>
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);
}
return NewTemplate;
}
+
+void PrintTemplate(void *vTemplate)
+{
+
+
+}
+
+
/**
* \brief Display a variable-substituted template
* \param templatename template file to load
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)
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);
ptr,
count)) == -1) {
lprintf(2, "client_write: Socket write failed (%s)\n", strerror(errno));
+ wc_backtrace();
return res;
}
count -= res;
ptr,
count)) == -1) {
lprintf(2, "client_write: Socket write failed (%s)\n", strerror(errno));
+ wc_backtrace();
return res;
}
count -= res;