- char buf[SIZ];
- char ename[SIZ];
- char etype[SIZ];
- int i;
- int which;
- int bg = 0;
-
- enum {
- ic_localhost,
- ic_directory,
- ic_smarthost,
- ic_rbl,
- ic_spamass,
- ic_masq,
- ic_max
- };
-
- char *ic_spec[ic_max];
- char *ic_misc;
- 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<ic_max; ++i) {
- ic_spec[i] = strdup("");
- }
-
- ic_misc = strdup("");
-
- serv_printf("CONF GETSYS|application/x-citadel-internet-config");
- serv_getln(buf, sizeof buf);
- if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
-
- extract_token(ename, buf, 0, '|', sizeof ename);
- extract_token(etype, buf, 1, '|', sizeof etype);
- which = (-1);
- for (i=0; i<ic_max; ++i) {
- if (!strcasecmp(etype, ic_keyword[i])) {
- which = i;
- }
- }
-
- if (which >= 0) {
- ic_spec[which] = realloc(ic_spec[which], strlen(ic_spec[which]) + strlen(ename) + 2);
- 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 (!IsEmptyStr(ic_misc)) strcat(ic_misc, "\n");
- strcat(ic_misc, buf);
- }