+ if (!strcasecmp(whichmenu, "purger")) {
+ wprintf("<TR><TD>Hour to run database auto-purge</TD><TD>");
+ wprintf("<SELECT NAME=\"c_purge_hour\" SIZE=\"1\">\n");
+ for (j=0; j<=23; ++j) {
+ wprintf("<OPTION %s VALUE=\"%d\">%d:00%s</OPTION>\n",
+ ((atoi(buf) == j) ? "SELECTED" : ""),
+ j,
+ ((j == 0) ? 12 : ((j>12) ? j-12 : j)),
+ ((j >= 12) ? "pm" : "am")
+ );
+ }
+ wprintf("</SELECT>");
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_purge_hour\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 33:
+ if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) {
+ wprintf("<TR><TD>Host name of LDAP server (blank to disable)</TD><TD>");
+ wprintf("<INPUT TYPE=\"text\" NAME=\"c_ldap_host\" MAXLENGTH=\"127\" VALUE=\"%s\">", buf);
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_ldap_host\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 34:
+ if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) {
+ wprintf("<TR><TD>Port number of LDAP server (blank to disable)</TD><TD>");
+ wprintf("<INPUT TYPE=\"text\" NAME=\"c_ldap_port\" MAXLENGTH=\"127\" VALUE=\"%d\">", atoi(buf));
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_ldap_port\" VALUE=\"%d\">", atoi(buf));
+ }
+ break;
+ case 35:
+ if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) {
+ wprintf("<TR><TD>Base DN</TD><TD>");
+ wprintf("<INPUT TYPE=\"text\" NAME=\"c_ldap_base_dn\" MAXLENGTH=\"255\" VALUE=\"%s\">", buf);
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_ldap_base_dn\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 36:
+ if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) {
+ wprintf("<TR><TD>Bind DN</TD><TD>");
+ wprintf("<INPUT TYPE=\"text\" NAME=\"c_ldap_bind_dn\" MAXLENGTH=\"255\" VALUE=\"%s\">", buf);
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_ldap_bind_dn\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 37:
+ if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) {
+ wprintf("<TR><TD>Password for bind DN</TD><TD>");
+ wprintf("<INPUT TYPE=\"password\" NAME=\"c_ldap_bind_pw\" MAXLENGTH=\"255\" VALUE=\"%s\">", buf);
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_ldap_bind_pw\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 38:
+ if (!strcasecmp(whichmenu, "network")) {
+ wprintf("<TR><TD>Server IP address (0.0.0.0 for 'any')</TD><TD>");
+ wprintf("<INPUT TYPE=\"text\" NAME=\"c_ip_addr\" MAXLENGTH=\"15\" VALUE=\"%s\">", buf);
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_ip_addr\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 39:
+ if (!strcasecmp(whichmenu, "network")) {
+ wprintf("<TR><TD>SMTP MSA port (-1 to disable)</TD><TD>");
+ wprintf("<INPUT TYPE=\"text\" NAME=\"c_msa_port\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_msa_port\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 40:
+ if (!strcasecmp(whichmenu, "network")) {
+ wprintf("<TR><TD>IMAP over SSL port (-1 to disable)</TD><TD>");
+ wprintf("<INPUT TYPE=\"text\" NAME=\"c_imaps_port\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_imaps_port\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 41:
+ if (!strcasecmp(whichmenu, "network")) {
+ wprintf("<TR><TD>POP3 over SSL port (-1 to disable)</TD><TD>");
+ wprintf("<INPUT TYPE=\"text\" NAME=\"c_pop3s_port\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_pop3s_port\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 42:
+ if (!strcasecmp(whichmenu, "network")) {
+ wprintf("<TR><TD>SMTP over SSL port (-1 to disable)</TD><TD>");
+ wprintf("<INPUT TYPE=\"text\" NAME=\"c_smtps_port\" MAXLENGTH=\"5\" VALUE=\"%s\">", buf);
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_smtps_port\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 43:
+ if (!strcasecmp(whichmenu, "general")) {
+ wprintf("<TR><TD>Enable full text index (warning: resource intensive)</TD><TD>");
+ wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_enable_fulltext\" VALUE=\"yes\" %s>", ((atoi(buf) != 0) ? "CHECKED" : ""));
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_enable_fulltext\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 44:
+ if (!strcasecmp(whichmenu, "tuning")) {
+ wprintf("<TR><TD>Automatically delete committed database logs</TD><TD>");
+ wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_auto_cull\" VALUE=\"yes\" %s>", ((atoi(buf) != 0) ? "CHECKED" : ""));
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_auto_cull\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 45:
+ if (!strcasecmp(whichmenu, "network")) {
+ wprintf("<TR><TD>Instantly expunge deleted messages in IMAP</TD><TD>");
+ wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_instant_expunge\" VALUE=\"yes\" %s>", ((atoi(buf) != 0) ? "CHECKED" : ""));
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_instant_expunge\" VALUE=\"%s\">", buf);
+ }
+ break;
+ case 46:
+ if (!strcasecmp(whichmenu, "network")) {
+ wprintf("<TR><TD>Allow unauthenticated SMTP clients to spoof my domains</TD><TD>");
+ wprintf("<INPUT TYPE=\"checkbox\" NAME=\"c_allow_spoofing\" VALUE=\"yes\" %s>", ((atoi(buf) != 0) ? "CHECKED" : ""));
+ wprintf("</TD></TR>\n");
+ }
+ else {
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"c_allow_spoofing\" VALUE=\"%s\">", buf);
+ }