4 * Administrative screen for site-wide configuration
15 #include <sys/types.h>
17 #include <sys/socket.h>
20 #include <netinet/in.h>
34 void display_siteconfig(void)
40 /* expire policy settings */
46 output_headers(1, 1, 2, 0, 0, 0, 0);
47 wprintf("<div id=\"banner\">\n"
48 "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
49 "<SPAN CLASS=\"titlebar\">Site configuration</SPAN>"
50 "</TD></TR></TABLE>\n"
51 "</div>\n<div id=\"content\">\n"
54 wprintf("<div id=\"fix_scrollbar_bug\">"
55 "<table border=0 width=100%% bgcolor=\"#ffffff\"><tr><td>");
57 whichmenu = bstr("whichmenu");
59 if (!strcmp(whichmenu, "")) {
60 wprintf("<TABLE border=0 cellspacing=0 cellpadding=3 width=100%%>\n");
62 wprintf("<TR BGCOLOR=\"#CCCCCC\"><TD>"
63 "<A HREF=\"/display_siteconfig?whichmenu=general\">"
64 "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
65 "SRC=\"/static/advanced-icon.gif\" ALT=\" \">"
67 "<A HREF=\"/display_siteconfig?whichmenu=general\">"
68 "<B>General</B><br />"
69 "General site configuration items"
74 "<A HREF=\"/display_siteconfig?whichmenu=access\">"
75 "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
76 "SRC=\"/static/advanced-icon.gif\" ALT=\" \">"
78 "<A HREF=\"/display_siteconfig?whichmenu=access\">"
80 "Access controls and site policy settings"
84 wprintf("<TR BGCOLOR=\"#CCCCCC\"><TD>"
85 "<A HREF=\"/display_siteconfig?whichmenu=network\">"
86 "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
87 "SRC=\"/static/advanced-icon.gif\" ALT=\" \">"
89 "<A HREF=\"/display_siteconfig?whichmenu=network\">"
90 "<B>Network</B><br />"
96 "<A HREF=\"/display_siteconfig?whichmenu=tuning\">"
97 "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
98 "SRC=\"/static/advanced-icon.gif\" ALT=\" \">"
100 "<A HREF=\"/display_siteconfig?whichmenu=tuning\">"
101 "<B>Tuning</B><br />"
102 "Advanced server fine-tuning controls"
106 wprintf("<TR BGCOLOR=\"#CCCCCC\"><TD>"
107 "<A HREF=\"/display_siteconfig?whichmenu=ldap\">"
108 "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
109 "SRC=\"/static/advanced-icon.gif\" ALT=\" \">"
111 "<A HREF=\"/display_siteconfig?whichmenu=ldap\">"
112 "<B>Directory</B><br />"
113 "Configure the LDAP connector for Citadel"
118 "<A HREF=\"/display_siteconfig?whichmenu=purger\">"
119 "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
120 "SRC=\"/static/advanced-icon.gif\" ALT=\" \">"
122 "<A HREF=\"/display_siteconfig?whichmenu=purger\">"
123 "<B>Auto-purger</B><br />"
124 "Configure automatic expiry of old messages"
129 wprintf("</td></tr></table></center>\n");
134 if (!strcasecmp(whichmenu, "general")) {
135 wprintf("<CENTER><H2>General site configuration items</H2></CENTER>\n");
138 if (!strcasecmp(whichmenu, "access")) {
139 wprintf("<CENTER><H2>Access controls and site policy settings</H2></CENTER>\n");
142 if (!strcasecmp(whichmenu, "network")) {
143 wprintf("<CENTER><H2>Network services</H2>"
144 "Changes made on this screen will not take effect until you restart the Citadel server."
148 if (!strcasecmp(whichmenu, "tuning")) {
149 wprintf("<CENTER><H2>Advanced server fine-tuning controls</H2></CENTER>\n");
152 if (!strcasecmp(whichmenu, "ldap")) {
153 wprintf("<CENTER><H2>Citadel LDAP connector configuration</H2>"
154 "Changes made on this screen will not take effect until you restart the Citadel server."
158 if (!strcasecmp(whichmenu, "purger")) {
159 wprintf("<CENTER><H2>Message auto-purger settings</H2>"
160 "These settings may be overridden on a per-floor or per-room basis."
164 serv_printf("CONF get");
167 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
168 wprintf("<SPAN CLASS=\"titlebar\">Error</SPAN>\n");
169 wprintf("</TD></TR></TABLE><br />\n");
170 wprintf("%s<br />\n", &buf[4]);
171 do_template("endbox");
176 wprintf("<FORM METHOD=\"POST\" ACTION=\"/siteconfig\">\n");
177 wprintf("<TABLE border=0>\n");
180 while (serv_gets(buf), strcmp(buf, "000")) {
183 if (!strcasecmp(whichmenu, "general")) {
184 wprintf("<TR><TD>Node name</TD><TD>");
185 wprintf("<INPUT TYPE=\"text\" NAME=\"c_nodename\" MAXLENGTH=\"15\" VALUE=\"%s\">", buf);
186 wprintf("</TD></TR>\n");
189 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_nodename\" VALUE=\"%s\">", buf);
193 if (!strcasecmp(whichmenu, "general")) {
194 wprintf("<TR><TD>Fully qualified domain name</TD><TD>");
195 wprintf("<INPUT TYPE=\"text\" NAME=\"c_fqdn\" MAXLENGTH=\"63\" VALUE=\"%s\">", buf);
196 wprintf("</TD></TR>\n");
199 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_fqdn\" VALUE=\"%s\">", buf);
203 if (!strcasecmp(whichmenu, "general")) {
204 wprintf("<TR><TD>Human-readable node name</TD><TD>");
205 wprintf("<INPUT TYPE=\"text\" NAME=\"c_humannode\" MAXLENGTH=\"20\" VALUE=\"%s\">", buf);
206 wprintf("</TD></TR>\n");
209 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_humannode\" VALUE=\"%s\">", buf);
213 if (!strcasecmp(whichmenu, "general")) {
214 wprintf("<TR><TD>Landline telephone number</TD><TD>");
215 wprintf("<INPUT TYPE=\"text\" NAME=\"c_phonenum\" MAXLENGTH=\"15\" VALUE=\"%s\">", buf);
216 wprintf("</TD></TR>\n");
219 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_phonenum\" VALUE=\"%s\">", buf);
223 if (!strcasecmp(whichmenu, "access")) {
224 wprintf("<TR><TD>Automatically grant room-aide status to users who create private rooms</TD><TD>");
225 wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_creataide\" VALUE=\"yes\" %s>", ((atoi(buf) != 0) ? "CHECKED" : ""));
226 wprintf("</TD></TR>\n");
229 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_creataide\" VALUE=\"%s\">", buf);
233 if (!strcasecmp(whichmenu, "tuning")) {
234 wprintf("<TR><TD>Server connection idle timeout (in seconds)</TD><TD>");
235 wprintf("<INPUT TYPE=\"text\" NAME=\"c_sleeping\" MAXLENGTH=\"15\" VALUE=\"%s\">", buf);
236 wprintf("</TD></TR>\n");
239 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_sleeping\" VALUE=\"%s\">", buf);
243 if (!strcasecmp(whichmenu, "access")) {
244 wprintf("<TR><TD>Initial access level for new users</TD><TD>");
245 wprintf("<SELECT NAME=\"c_initax\" SIZE=\"1\">\n");
246 for (j=0; j<=6; ++j) {
247 wprintf("<OPTION %s VALUE=\"%d\">%d - %s</OPTION>\n",
248 ((atoi(buf) == j) ? "SELECTED" : ""),
252 wprintf("</SELECT>");
253 wprintf("</TD></TR>\n");
256 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_initax\" VALUE=\"%s\">", buf);
260 if (!strcasecmp(whichmenu, "access")) {
261 wprintf("<TR><TD>Require registration for new users</TD><TD>");
262 wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_regiscall\" VALUE=\"yes\" %s>", ((atoi(buf) != 0) ? "CHECKED" : ""));
263 wprintf("</TD></TR>\n");
266 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_regiscall\" VALUE=\"%s\">", buf);
270 if (!strcasecmp(whichmenu, "access")) {
271 wprintf("<TR><TD>Quarantine messages from problem users</TD><TD>");
272 wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_twitdetect\" VALUE=\"yes\" %s>", ((atoi(buf) != 0) ? "CHECKED" : ""));
273 wprintf("</TD></TR>\n");
276 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_twitdetect\" VALUE=\"%s\">", buf);
280 if (!strcasecmp(whichmenu, "access")) {
281 wprintf("<TR><TD>Name of quarantine room</TD><TD>");
282 wprintf("<INPUT TYPE=\"text\" NAME=\"c_twitroom\" MAXLENGTH=\"63\" VALUE=\"%s\">", buf);
283 wprintf("</TD></TR>\n");
286 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_twitroom\" VALUE=\"%s\">", buf);
290 if (!strcasecmp(whichmenu, "general")) {
291 wprintf("<TR><TD>Paginator prompt (for text mode clients)</TD><TD>");
292 wprintf("<INPUT TYPE=\"text\" NAME=\"c_moreprompt\" MAXLENGTH=\"79\" VALUE=\"%s\">", buf);
293 wprintf("</TD></TR>\n");
296 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_moreprompt\" VALUE=\"%s\">", buf);
300 if (!strcasecmp(whichmenu, "access")) {
301 wprintf("<TR><TD>Restrict access to Internet mail</TD><TD>");
302 wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_restrict\" VALUE=\"yes\" %s>", ((atoi(buf) != 0) ? "CHECKED" : ""));
303 wprintf("</TD></TR>\n");
306 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_restrict\" VALUE=\"%s\">", buf);
310 if (!strcasecmp(whichmenu, "general")) {
311 wprintf("<TR><TD>Geographic location of this system</TD><TD>");
312 wprintf("<INPUT TYPE=\"text\" NAME=\"c_bbs_city\" MAXLENGTH=\"31\" VALUE=\"%s\">", buf);
313 wprintf("</TD></TR>\n");
316 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_bbs_city\" VALUE=\"%s\">", buf);
320 if (!strcasecmp(whichmenu, "general")) {
321 wprintf("<TR><TD>Name of system administrator</TD><TD>");
322 wprintf("<INPUT TYPE=\"text\" NAME=\"c_sysadm\" MAXLENGTH=\"25\" VALUE=\"%s\">", buf);
323 wprintf("</TD></TR>\n");
326 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_sysadm\" VALUE=\"%s\">", buf);
330 if (!strcasecmp(whichmenu, "tuning")) {
331 wprintf("<TR><TD>Maximum concurrent sessions (0 = no limit)</TD><TD>");
332 wprintf("<INPUT TYPE=\"text\" NAME=\"c_maxsessions\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
333 wprintf("</TD></TR>\n");
336 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_maxsessions\" VALUE=\"%s\">", buf);
340 if (!strcasecmp(whichmenu, "tuning")) {
341 wprintf("<TR><TD>Default user purge time (days)</TD><TD>");
342 wprintf("<INPUT TYPE=\"text\" NAME=\"c_userpurge\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
343 wprintf("</TD></TR>\n");
346 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_userpurge\" VALUE=\"%s\">", buf);
350 if (!strcasecmp(whichmenu, "tuning")) {
351 wprintf("<TR><TD>Default room purge time (days)</TD><TD>");
352 wprintf("<INPUT TYPE=\"text\" NAME=\"c_roompurge\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
353 wprintf("</TD></TR>\n");
356 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_roompurge\" VALUE=\"%s\">", buf);
360 if (!strcasecmp(whichmenu, "access")) {
361 wprintf("<TR><TD>Name of room to log pages</TD><TD>");
362 wprintf("<INPUT TYPE=\"text\" NAME=\"c_logpages\" MAXLENGTH=\"63\" VALUE=\"%s\">", buf);
363 wprintf("</TD></TR>\n");
366 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_logpages\" VALUE=\"%s\">", buf);
370 if (!strcasecmp(whichmenu, "access")) {
371 wprintf("<TR><TD>Access level required to create rooms</TD><TD>");
372 wprintf("<SELECT NAME=\"c_createax\" SIZE=\"1\">\n");
373 for (j=0; j<=6; ++j) {
374 wprintf("<OPTION %s VALUE=\"%d\">%d - %s</OPTION>\n",
375 ((atoi(buf) == j) ? "SELECTED" : ""),
379 wprintf("</SELECT>");
380 wprintf("</TD></TR>\n");
383 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_createax\" VALUE=\"%s\">", buf);
387 if (!strcasecmp(whichmenu, "tuning")) {
388 wprintf("<TR><TD>Maximum message length</TD><TD>");
389 wprintf("<INPUT TYPE=\"text\" NAME=\"c_maxmsglen\" MAXLENGTH=\"20\" VALUE=\"%s\">", buf);
390 wprintf("</TD></TR>\n");
393 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_maxmsglen\" VALUE=\"%s\">", buf);
397 if (!strcasecmp(whichmenu, "tuning")) {
398 wprintf("<TR><TD>Minimum number of worker threads</TD><TD>");
399 wprintf("<INPUT TYPE=\"text\" NAME=\"c_min_workers\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
400 wprintf("</TD></TR>\n");
403 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_min_workers\" VALUE=\"%s\">", buf);
407 if (!strcasecmp(whichmenu, "tuning")) {
408 wprintf("<TR><TD>Maximum number of worker threads</TD><TD>");
409 wprintf("<INPUT TYPE=\"text\" NAME=\"c_max_workers\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
410 wprintf("</TD></TR>\n");
413 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_max_workers\" VALUE=\"%s\">", buf);
417 if (!strcasecmp(whichmenu, "network")) {
418 wprintf("<TR><TD>POP3 listener port (-1 to disable)</TD><TD>");
419 wprintf("<INPUT TYPE=\"text\" NAME=\"c_pop3_port\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
420 wprintf("</TD></TR>\n");
423 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_pop3_port\" VALUE=\"%s\">", buf);
427 if (!strcasecmp(whichmenu, "network")) {
428 wprintf("<TR><TD>SMTP MTA port (-1 to disable)</TD><TD>");
429 wprintf("<INPUT TYPE=\"text\" NAME=\"c_smtp_port\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
430 wprintf("</TD></TR>\n");
433 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_smtp_port\" VALUE=\"%s\">", buf);
437 if (!strcasecmp(whichmenu, "access")) {
438 wprintf("<TR><TD>Allow aides to zap (forget) rooms</TD><TD>");
439 wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_aide_zap\" VALUE=\"yes\" %s>", ((atoi(buf) != 0) ? "CHECKED" : ""));
440 wprintf("</TD></TR>\n");
443 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_aide_zap\" VALUE=\"%s\">", buf);
447 if (!strcasecmp(whichmenu, "network")) {
448 wprintf("<TR><TD>IMAP listener port (-1 to disable)</TD><TD>");
449 wprintf("<INPUT TYPE=\"text\" NAME=\"c_imap_port\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
450 wprintf("</TD></TR>\n");
453 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_imap_port\" VALUE=\"%s\">", buf);
457 if (!strcasecmp(whichmenu, "network")) {
458 wprintf("<TR><TD>Network run frequency (in seconds)</TD><TD>");
459 wprintf("<INPUT TYPE=\"text\" NAME=\"c_net_freq\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
460 wprintf("</TD></TR>\n");
463 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_net_freq\" VALUE=\"%s\">", buf);
467 if (!strcasecmp(whichmenu, "access")) {
468 wprintf("<TR><TD>Disable self-service user account creation</TD><TD>");
469 wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_disable_newu\" VALUE=\"yes\" %s>", ((atoi(buf) != 0) ? "CHECKED" : ""));
470 wprintf("</TD></TR>\n");
473 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_disable_newu\" VALUE=\"%s\">", buf);
477 /* placeholder -- there is no option 31 */
480 if (!strcasecmp(whichmenu, "tuning")) {
481 wprintf("<TR><TD>Hour to run database auto-purge</TD><TD>");
482 wprintf("<SELECT NAME=\"c_purge_hour\" SIZE=\"1\">\n");
483 for (j=0; j<=23; ++j) {
484 wprintf("<OPTION %s VALUE=\"%d\">%d:00%s</OPTION>\n",
485 ((atoi(buf) == j) ? "SELECTED" : ""),
487 ((j == 0) ? 12 : ((j>12) ? j-12 : j)),
488 ((j >= 12) ? "pm" : "am")
491 wprintf("</SELECT>");
492 wprintf("</TD></TR>\n");
495 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_purge_hour\" VALUE=\"%s\">", buf);
499 if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) {
500 wprintf("<TR><TD>Host name of LDAP server (blank to disable)</TD><TD>");
501 wprintf("<INPUT TYPE=\"text\" NAME=\"c_ldap_host\" MAXLENGTH=\"127\" VALUE=\"%s\">", buf);
502 wprintf("</TD></TR>\n");
505 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_ldap_host\" VALUE=\"%s\">", buf);
509 if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) {
510 wprintf("<TR><TD>Port number of LDAP server (blank to disable)</TD><TD>");
511 wprintf("<INPUT TYPE=\"text\" NAME=\"c_ldap_port\" MAXLENGTH=\"127\" VALUE=\"%d\">", atoi(buf));
512 wprintf("</TD></TR>\n");
515 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_ldap_port\" VALUE=\"%d\">", atoi(buf));
519 if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) {
520 wprintf("<TR><TD>Base DN</TD><TD>");
521 wprintf("<INPUT TYPE=\"text\" NAME=\"c_ldap_base_dn\" MAXLENGTH=\"255\" VALUE=\"%s\">", buf);
522 wprintf("</TD></TR>\n");
525 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_ldap_base_dn\" VALUE=\"%s\">", buf);
529 if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) {
530 wprintf("<TR><TD>Bind DN</TD><TD>");
531 wprintf("<INPUT TYPE=\"text\" NAME=\"c_ldap_bind_dn\" MAXLENGTH=\"255\" VALUE=\"%s\">", buf);
532 wprintf("</TD></TR>\n");
535 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_ldap_bind_dn\" VALUE=\"%s\">", buf);
539 if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) {
540 wprintf("<TR><TD>Password for bind DN</TD><TD>");
541 wprintf("<INPUT TYPE=\"password\" NAME=\"c_ldap_bind_pw\" MAXLENGTH=\"255\" VALUE=\"%s\">", buf);
542 wprintf("</TD></TR>\n");
545 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_ldap_bind_pw\" VALUE=\"%s\">", buf);
549 if (!strcasecmp(whichmenu, "network")) {
550 wprintf("<TR><TD>Server IP address (0.0.0.0 for 'any')</TD><TD>");
551 wprintf("<INPUT TYPE=\"text\" NAME=\"c_ip_addr\" MAXLENGTH=\"15\" VALUE=\"%s\">", buf);
552 wprintf("</TD></TR>\n");
555 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_ip_addr\" VALUE=\"%s\">", buf);
559 if (!strcasecmp(whichmenu, "network")) {
560 wprintf("<TR><TD>SMTP MSA port (-1 to disable)</TD><TD>");
561 wprintf("<INPUT TYPE=\"text\" NAME=\"c_msa_port\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
562 wprintf("</TD></TR>\n");
565 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_msa_port\" VALUE=\"%s\">", buf);
569 if (!strcasecmp(whichmenu, "network")) {
570 wprintf("<TR><TD>IMAP over SSL port (-1 to disable)</TD><TD>");
571 wprintf("<INPUT TYPE=\"text\" NAME=\"c_imaps_port\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
572 wprintf("</TD></TR>\n");
575 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_imaps_port\" VALUE=\"%s\">", buf);
579 if (!strcasecmp(whichmenu, "network")) {
580 wprintf("<TR><TD>POP3 over SSL port (-1 to disable)</TD><TD>");
581 wprintf("<INPUT TYPE=\"text\" NAME=\"c_pop3s_port\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
582 wprintf("</TD></TR>\n");
585 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_pop3s_port\" VALUE=\"%s\">", buf);
589 if (!strcasecmp(whichmenu, "network")) {
590 wprintf("<TR><TD>SMTP over SSL port (-1 to disable)</TD><TD>");
591 wprintf("<INPUT TYPE=\"text\" NAME=\"c_smtps_port\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
592 wprintf("</TD></TR>\n");
595 wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_smtps_port\" VALUE=\"%s\">", buf);
601 serv_puts("GPEX site");
604 sitepolicy = extract_int(&buf[4], 0);
605 sitevalue = extract_int(&buf[4], 1);
608 serv_puts("GPEX mailboxes");
611 mboxpolicy = extract_int(&buf[4], 0);
612 mboxvalue = extract_int(&buf[4], 1);
615 if (!strcasecmp(whichmenu, "purger")) {
617 wprintf("<TR><TD COLSPAN=2><hr /></TD></TR>\n");
619 wprintf("<TR><TD>Default message expire policy for public rooms</TD><TD>");
620 wprintf("<INPUT TYPE=\"radio\" NAME=\"sitepolicy\" VALUE=\"1\" %s>",
621 ((sitepolicy == 1) ? "CHECKED" : "") );
622 wprintf("Never automatically expire messages<br />\n");
623 wprintf("<INPUT TYPE=\"radio\" NAME=\"sitepolicy\" VALUE=\"2\" %s>",
624 ((sitepolicy == 2) ? "CHECKED" : "") );
625 wprintf("Expire by message count<br />\n");
626 wprintf("<INPUT TYPE=\"radio\" NAME=\"sitepolicy\" VALUE=\"3\" %s>",
627 ((sitepolicy == 3) ? "CHECKED" : "") );
628 wprintf("Expire by message age<br />");
629 wprintf("Number of messages or days: ");
630 wprintf("<INPUT TYPE=\"text\" NAME=\"sitevalue\" MAXLENGTH=\"5\" VALUE=\"%d\">", sitevalue);
631 wprintf("</TD></TR>\n");
633 wprintf("<TR><TD COLSPAN=2><hr /></TD></TR>\n");
635 wprintf("<TR><TD>Default message expire policy for private mailboxes</TD><TD>");
636 wprintf("<INPUT TYPE=\"radio\" NAME=\"mboxpolicy\" VALUE=\"0\" %s>",
637 ((mboxpolicy == 0) ? "CHECKED" : "") );
638 wprintf("Same policy as public rooms<br />\n");
639 wprintf("<INPUT TYPE=\"radio\" NAME=\"mboxpolicy\" VALUE=\"1\" %s>",
640 ((mboxpolicy == 1) ? "CHECKED" : "") );
641 wprintf("Never automatically expire messages<br />\n");
642 wprintf("<INPUT TYPE=\"radio\" NAME=\"mboxpolicy\" VALUE=\"2\" %s>",
643 ((mboxpolicy == 2) ? "CHECKED" : "") );
644 wprintf("Expire by message count<br />\n");
645 wprintf("<INPUT TYPE=\"radio\" NAME=\"mboxpolicy\" VALUE=\"3\" %s>",
646 ((mboxpolicy == 3) ? "CHECKED" : "") );
647 wprintf("Expire by message age<br />");
648 wprintf("Number of messages or days: ");
649 wprintf("<INPUT TYPE=\"text\" NAME=\"mboxvalue\" MAXLENGTH=\"5\" VALUE=\"%d\">", mboxvalue);
650 wprintf("</TD></TR>\n");
652 wprintf("<TR><TD COLSPAN=2><hr /></TD></TR>\n");
656 wprintf("<INPUT TYPE=\"hidden\" NAME=\"sitepolicy\" VALUE=\"%d\">\n", sitepolicy);
657 wprintf("<INPUT TYPE=\"hidden\" NAME=\"sitevalue\" VALUE=\"%d\">\n", sitevalue);
658 wprintf("<INPUT TYPE=\"hidden\" NAME=\"mboxpolicy\" VALUE=\"%d\">\n", mboxpolicy);
659 wprintf("<INPUT TYPE=\"hidden\" NAME=\"mboxvalue\" VALUE=\"%d\">\n", mboxvalue);
662 wprintf("</TABLE><CENTER>");
663 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
665 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">\n");
666 wprintf("</CENTER></FORM>\n");
667 wprintf("</td></tr></table></div>\n");
672 void siteconfig(void)
676 if (strcasecmp(bstr("sc"), "OK")) {
677 display_siteconfig();
680 serv_printf("CONF set");
683 strcpy(WC->ImportantMessage, &buf[4]);
684 display_siteconfig();
687 serv_printf("%s", bstr("c_nodename"));
688 serv_printf("%s", bstr("c_fqdn"));
689 serv_printf("%s", bstr("c_humannode"));
690 serv_printf("%s", bstr("c_phonenum"));
691 serv_printf("%s", ((!strcasecmp(bstr("c_creataide"), "yes") ? "1" : "0")));
692 serv_printf("%s", bstr("c_sleeping"));
693 serv_printf("%s", bstr("c_initax"));
694 serv_printf("%s", ((!strcasecmp(bstr("c_regiscall"), "yes") ? "1" : "0")));
695 serv_printf("%s", ((!strcasecmp(bstr("c_twitdetect"), "yes") ? "1" : "0")));
696 serv_printf("%s", bstr("c_twitroom"));
697 serv_printf("%s", bstr("c_moreprompt"));
698 serv_printf("%s", ((!strcasecmp(bstr("c_restrict"), "yes") ? "1" : "0")));
699 serv_printf("%s", bstr("c_bbs_city"));
700 serv_printf("%s", bstr("c_sysadm"));
701 serv_printf("%s", bstr("c_maxsessions"));
702 serv_printf(""); /* networking password -- deprecated */
703 serv_printf("%s", bstr("c_userpurge"));
704 serv_printf("%s", bstr("c_roompurge"));
705 serv_printf("%s", bstr("c_logpages"));
706 serv_printf("%s", bstr("c_createax"));
707 serv_printf("%s", bstr("c_maxmsglen"));
708 serv_printf("%s", bstr("c_min_workers"));
709 serv_printf("%s", bstr("c_max_workers"));
710 serv_printf("%s", bstr("c_pop3_port"));
711 serv_printf("%s", bstr("c_smtp_port"));
712 serv_printf(""); /* moderation filter level -- not yet implemented */
713 serv_printf("%s", ((!strcasecmp(bstr("c_aide_zap"), "yes") ? "1" : "0")));
714 serv_printf("%s", bstr("c_imap_port"));
715 serv_printf("%s", bstr("c_net_freq"));
716 serv_printf("%s", ((!strcasecmp(bstr("c_disable_newu"), "yes") ? "1" : "0")));
717 serv_printf("1"); /* placeholder -- deprecated */
718 serv_printf("%s", bstr("c_purge_hour"));
719 serv_printf("%s", bstr("c_ldap_host"));
720 serv_printf("%s", bstr("c_ldap_port"));
721 serv_printf("%s", bstr("c_ldap_base_dn"));
722 serv_printf("%s", bstr("c_ldap_bind_dn"));
723 serv_printf("%s", bstr("c_ldap_bind_pw"));
724 serv_printf("%s", bstr("c_ip_addr"));
725 serv_printf("%s", bstr("c_msa_port"));
726 serv_printf("%s", bstr("c_imaps_port"));
727 serv_printf("%s", bstr("c_pop3s_port"));
728 serv_printf("%s", bstr("c_smtps_port"));
731 serv_printf("SPEX site|%d|%d", atoi(bstr("sitepolicy")), atoi(bstr("sitevalue")));
733 serv_printf("SPEX mailboxes|%d|%d", atoi(bstr("mboxpolicy")), atoi(bstr("mboxvalue")));
736 strcpy(WC->ImportantMessage, "System configuration has been updated.");
737 display_siteconfig();