wprintf("<LI><A HREF=\"/chat\">");
wprintf("Chat with other online users</A>\n");
+wprintf("<LI><A HREF=\"/display_generic\">\n");
+wprintf("<FONT SIZE=-2>Generic server command</FONT></A>\n");
+
wprintf("</UL>\n");
wprintf("</TD><TD>");
wprintf("</BODY></HTML>\n");
wDumpContent();
}
+
+
+/*
+ * Display the screen to enter a generic server command
+ */
+void display_generic(void) {
+ printf("HTTP/1.0 200 OK\n");
+ output_headers(1);
+
+ wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770077><TR><TD>");
+ wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
+ wprintf("<B>Enter a server command</B>\n");
+ wprintf("</FONT></TD></TR></TABLE>\n");
+
+ wprintf("<CENTER>");
+ wprintf("This screen allows you to enter Citadel server commands which are\n");
+ wprintf("not supported by WebCit. If you do not know what that means,\n");
+ wprintf("then this screen will not be of much use to you.<BR>\n");
+
+ wprintf("<FORM METHOD=\"POST\" ACTION=\"/do_generic\">\n");
+
+ wprintf("Enter command:<BR>\n");
+ wprintf("<INPUT TYPE=\"text\" NAME=\"g_cmd\" SIZE=80 MAXLENGTH=\"250\"><BR>\n");
+
+ wprintf("Command input (if requesting SEND_LISTING transfer mode):<BR>\n");
+ wprintf("<TEXTAREA NAME=\"g_input\" ROWS=10 COLS=80 WIDTH=80></TEXTAREA>\n");
+
+ wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Send command\">");
+ wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\"><BR>\n");
+
+ wprintf("</FORM></CENTER>\n");
+ wprintf("</BODY></HTML>\n");
+ wDumpContent();
+ }
+
+void do_generic(void) {
+ char buf[256];
+ char gcontent[256];
+ char *junk;
+ size_t len;
+
+ if (strcasecmp(bstr("sc"), "Send command")) {
+ display_main_menu();
+ return;
+ }
+
+ serv_printf("%s", bstr("g_cmd"));
+ serv_gets(buf);
+
+ printf("HTTP/1.0 200 OK\n");
+ output_headers(1);
+ wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770077><TR><TD>");
+ wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
+ wprintf("<B>Server command results</B>\n");
+ wprintf("</FONT></TD></TR></TABLE>\n");
+
+ wprintf("<TABLE border=0><TR><TD>Command:</TD><TD><TT>");
+ escputs(bstr("g_cmd"));
+ wprintf("</TT></TD></TR><TR><TD>Result:</TD><TD><TT>");
+ escputs(buf);
+ wprintf("</TT></TD></TR></TABLE><BR>\n");
+
+ if (buf[0]=='8') {
+ serv_printf("\n\n000");
+ }
+
+ if ( (buf[0]=='1') || (buf[0]=='8') ) {
+ while(serv_gets(gcontent), strcmp(gcontent, "000")) {
+ escputs(gcontent);
+ wprintf("<BR>\n");
+ }
+ wprintf("000");
+ }
+
+ if (buf[0]=='4') {
+ text_to_server(bstr("g_input"));
+ serv_puts("000");
+ }
+
+ if (buf[0]=='6') {
+ len = atol(&buf[4]);
+ junk = malloc(len);
+ serv_read(junk, len);
+ free(junk);
+ }
+
+ if (buf[0]=='7') {
+ len = atol(&buf[4]);
+ junk = malloc(len);
+ bzero(junk, len);
+ serv_write(junk, len);
+ free(junk);
+ }
+
+ wprintf("<HR>");
+ wprintf("<A HREF=\"/display_generic\">Enter another command</A><BR>\n");
+ wprintf("<A HREF=\"/display_advanced\">Return to menu</A>\n");
+ wprintf("</BODY></HTML>\n");
+ wDumpContent();
+ }
wprintf("</TD></TR>\n");
break;
case 5: wprintf("<TR><TD>Automatically grant room-aide status to users who create private rooms</TD><TD>");
- wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_creataide\" VALUE=\"%s\">", (atoi(buf) ? "yes" : "no"));
+ wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_creataide\" VALUE=\"yes\" %s>", ((atoi(buf)!=0) ? "CHECKED" : ""));
wprintf("</TD></TR>\n");
break;
case 6: wprintf("<TR><TD>Server connection idle timeout (in seconds)</TD><TD>");
wprintf("</TD></TR>\n");
break;
case 8: wprintf("<TR><TD>Require registration for new users</TD><TD>");
- wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_regiscall\" VALUE=\"%s\">", (atoi(buf) ? "yes" : "no"));
+ wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_regiscall\" VALUE=\"yes\" %s>", ((atoi(buf)!=0) ? "CHECKED" : ""));
wprintf("</TD></TR>\n");
break;
case 9: wprintf("<TR><TD>Move problem user messages to twitroom</TD><TD>");
- wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_twitdetect\" VALUE=\"%s\">", (atoi(buf) ? "yes" : "no"));
+ wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_twitdetect\" VALUE=\"yes\" %s>", ((atoi(buf)!=0) ? "CHECKED" : ""));
wprintf("</TD></TR>\n");
break;
case 10:wprintf("<TR><TD>Name of twitroom</TD><TD>");
wprintf("</TD></TR>\n");
break;
case 12:wprintf("<TR><TD>Restrict access to Internet mail</TD><TD>");
- wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_restrict\" VALUE=\"%s\">", (atoi(buf) ? "yes" : "no"));
+ wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_restrict\" VALUE=\"yes\" %s>", ((atoi(buf)!=0) ? "CHECKED" : ""));
wprintf("</TD></TR>\n");
break;
case 13:wprintf("<TR><TD>Geographic location of this system</TD><TD>");
wprintf("<INPUT TYPE=\"text\" NAME=\"c_maxsessions\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
wprintf("</TD></TR>\n");
break;
- case 16:wprintf("<TR><TD>Maximum concurrent sessions</TD><TD>");
+ case 16:wprintf("<TR><TD>Server-to-server networking password</TD><TD>");
wprintf("<INPUT TYPE=\"password\" NAME=\"c_net_password\" MAXLENGTH=\"19\" VALUE=\"%s\">", buf);
wprintf("</TD></TR>\n");
break;
return;
}
- serv_printf("SEXP ignatius t foobar|-");
+ serv_printf("CONF set");
serv_gets(buf);
if (buf[0]!='4') {
display_error(&buf[4]);
serv_printf("%s", bstr("c_fqdn"));
serv_printf("%s", bstr("c_humannode"));
serv_printf("%s", bstr("c_phonenum"));
- serv_printf("%s", ( (!strcasecmp(bstr("c_creataide"), "yes") ? 1 : 0)));
+ serv_printf("%s", ( (!strcasecmp(bstr("c_creataide"), "yes") ? "1" : "0")));
serv_printf("%s", bstr("c_sleeping"));
serv_printf("%s", bstr("c_initax"));
- serv_printf("%s", ( (!strcasecmp(bstr("c_regiscall"), "yes") ? 1 : 0)));
- serv_printf("%s", ( (!strcasecmp(bstr("c_twitdetect"), "yes") ? 1 : 0)));
+ serv_printf("%s", ( (!strcasecmp(bstr("c_regiscall"), "yes") ? "1" : "0")));
+ serv_printf("%s", ( (!strcasecmp(bstr("c_twitdetect"), "yes") ? "1" : "0")));
serv_printf("%s", bstr("c_twitroom"));
serv_printf("%s", bstr("c_moreprompt"));
- serv_printf("%s", ( (!strcasecmp(bstr("c_restrict"), "yes") ? 1 : 0)));
+ serv_printf("%s", ( (!strcasecmp(bstr("c_restrict"), "yes") ? "1" : "0")));
serv_printf("%s", bstr("c_bbs_city"));
serv_printf("%s", bstr("c_sysadm"));
serv_printf("%s", bstr("c_maxsessions"));
serv_printf("%s", bstr("c_roompurge"));
serv_printf("%s", bstr("c_logpages"));
serv_printf("000");
- display_main_menu();
-}
+ display_success("System configuration has been updated.");
+ }