X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Finetconf.c;h=ad27d97b595513639b3d4a44c33694e6754f4031;hb=76f23da782e9e80dad0a8ae1336230da5a6fa124;hp=8858d5af2e8c322845e9acb3b8ab4c64201f9db4;hpb=4779eb63e4d412e772e494f843c1485b0718aaa4;p=citadel.git diff --git a/webcit/inetconf.c b/webcit/inetconf.c index 8858d5af2..ad27d97b5 100644 --- a/webcit/inetconf.c +++ b/webcit/inetconf.c @@ -1,34 +1,14 @@ /* - * inetconf.c + * $Id$ * * Functions which handle Internet domain configuration etc. - * - * $Id$ */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include "webcit.h" - - +/* + * display the inet config dialog + */ void display_inetconf(void) { char buf[SIZ]; @@ -36,62 +16,58 @@ void display_inetconf(void) char etype[SIZ]; int i; int which; + int bg = 0; enum { ic_localhost, - ic_gwdom, ic_directory, - ic_spamass, - ic_rbl, ic_smarthost, + ic_rbl, + ic_spamass, + ic_masq, ic_max }; + char *ic_spec[ic_max]; char *ic_misc; - - char *ic_keyword[] = { - "localhost", - "gatewaydomain", - "directory", - "spamassassin", - "rbl", - "smarthost" - }; - - char *ic_boxtitle[] = { - "Local host aliases", - "Gateway domains", - "Directory domains", - "SpamAssassin hosts", - "RBL hosts", - "Smart hosts" - }; - - char *ic_desc[] = { - "(domains for which this host receives mail)", - "(domains whose subdomains match Citadel hosts)", - "(domains mapped with the Global Address Book)", - "(hosts running the SpamAssassin service)", - "(hosts running a Realtime Blackhole List)", - "(if present, forward all outbound mail to one of these hosts)" - }; + char *ic_keyword[ic_max]; + char *ic_boxtitle[ic_max]; + char *ic_desc[ic_max]; + + /* These are server config keywords; do not localize! */ + ic_keyword[0] = "localhost"; + ic_keyword[1] = "directory"; + ic_keyword[2] = "smarthost"; + ic_keyword[3] = "rbl"; + ic_keyword[4] = "spamassassin"; + ic_keyword[5] = "masqdomain"; + + ic_boxtitle[0] = _("Local host aliases"); + ic_boxtitle[1] = _("Directory domains"); + ic_boxtitle[2] = _("Smart hosts"); + ic_boxtitle[3] = _("RBL hosts"); + ic_boxtitle[4] = _("SpamAssassin hosts"); + ic_boxtitle[5] = _("Masqueradable domains"); + + ic_desc[0] = _("(domains for which this host receives mail)"); + ic_desc[1] = _("(domains mapped with the Global Address Book)"); + ic_desc[2] = _("(if present, forward all outbound mail to one of these hosts)"); + ic_desc[3] = _("(hosts running a Realtime Blackhole List)"); + ic_desc[4] = _("(hosts running the SpamAssassin service)"); + ic_desc[5] = _("(Domains as which users are allowed to masquerade)"); for (i=0; i"); - wprintf("Internet configuration\n"); - wprintf("\n"); + ic_misc = strdup(""); serv_printf("CONF GETSYS|application/x-citadel-internet-config"); - serv_gets(buf); - if (buf[0] == '1') while (serv_gets(buf), strcmp(buf, "000")) { + serv_getln(buf, sizeof buf); + if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { - extract(ename, buf, 0); - extract(etype, buf, 1); + extract_token(ename, buf, 0, '|', sizeof ename); + extract_token(etype, buf, 1, '|', sizeof etype); which = (-1); for (i=0; i= 0) { ic_spec[which] = realloc(ic_spec[which], strlen(ic_spec[which]) + strlen(ename) + 2); - if (strlen(ic_spec[which]) > 0) strcat(ic_spec[which], "\n"); + if (!IsEmptyStr(ic_spec[which])) strcat(ic_spec[which], "\n"); strcat(ic_spec[which], ename); } else { ic_misc = realloc(ic_misc, strlen(ic_misc) + strlen(buf) + 2); - if (strlen(ic_misc) > 0) strcat(ic_misc, "\n"); + if (!IsEmptyStr(ic_misc)) strcat(ic_misc, "\n"); strcat(ic_misc, buf); } } - wprintf("\n"); + output_headers(1, 1, 2, 0, 0, 0); + wprintf("
\n"); + wprintf("

"); + wprintf(_("Internet configuration")); + wprintf("

"); + wprintf("
\n"); + + wprintf("
\n"); + + wprintf("
" + "
" + "
\n"); for (which=0; which"); + if (which == (ic_max / 2)) { + wprintf(""); } - wprintf(""); - svprintf("BOXTITLE", WCS_STRING, ic_boxtitle[which]); + svput("BOXTITLE", WCS_STRING, ic_boxtitle[which]); do_template("beginbox"); wprintf(""); escputs(ic_desc[which]); - wprintf("
"); - wprintf("\n"); - if (strlen(ic_spec[which]) > 0) { + wprintf("
"); + wprintf("
\n"); + bg = 0; + if (!IsEmptyStr(ic_spec[which])) { for (i=0; i", + (bg ? "even" : "odd") + ); + wprintf("\n"); + wprintf("onClick=\"return confirm('%s');\">", + _("Delete this entry?")); + wprintf(_("Delete")); + wprintf("\n"); } + } - wprintf("\n" - "
"); - extract_token(buf, ic_spec[which], i, '\n'); + bg = 1 - bg; + wprintf("
"); + extract_token(buf, ic_spec[which], i, '\n', sizeof buf); escputs(buf); - wprintf("" - "" + "" + ""); - wprintf("(Delete)
" - "" - "", ic_keyword[which]); - wprintf("" - "" - "
\n"); + wprintf("
\n"); + wprintf("\n", WC->nonce); + wprintf("
" + "" + "", ic_keyword[which]); + wprintf("" + "" + "
\n"); do_template("endbox"); - wprintf(""); - if (which % 2 != 0) { - wprintf(""); - } + wprintf("
"); } - wprintf("\n"); - + wprintf("\n"); wDumpContent(1); for (i=0; iImportantMessage, "%s deleted.", ename); + sprintf(WC->ImportantMessage, _("%s has been deleted."), ename); } else { - if (strlen(newconfig) > 0) strcat(newconfig, "\n"); + if (!IsEmptyStr(newconfig)) strcat(newconfig, "\n"); strcat(newconfig, buf); } } serv_printf("CONF PUTSYS|application/x-citadel-internet-config"); - serv_gets(buf); + serv_getln(buf, SIZ); if (buf[0] == '4') { serv_puts(newconfig); if (!strcasecmp(bstr("oper"), "add")) { @@ -202,4 +201,17 @@ void save_inetconf(void) { } display_inetconf(); + + free(buf); + free(ename); + free(etype); + free(newconfig); +} + +void +InitModule_INETCONF +(void) +{ + WebcitAddUrlHandler(HKEY("display_inetconf"), display_inetconf, 0); + WebcitAddUrlHandler(HKEY("save_inetconf"), save_inetconf, AJAX); }