4 * Functions which handle Internet domain configuration etc.
15 #include <sys/types.h>
17 #include <sys/socket.h>
20 #include <netinet/in.h>
32 void display_inetconf(void)
49 char *ic_spec[ic_max];
52 char *ic_keyword[] = {
61 char *ic_boxtitle[] = {
71 "(domains for which this host receives mail)",
72 "(domains whose subdomains match Citadel hosts)",
73 "(domains mapped with the Global Address Book)",
74 "(hosts running the SpamAssassin service)",
75 "(hosts running a Realtime Blackhole List)",
76 "(if present, forward all outbound mail to one of these hosts)"
79 for (i=0; i<ic_max; ++i) {
80 ic_spec[i] = strdup("");
85 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
86 wprintf("<SPAN CLASS=\"titlebar\">Internet configuration</SPAN>\n");
87 wprintf("</TD></TR></TABLE>\n");
89 serv_printf("CONF GETSYS|application/x-citadel-internet-config");
91 if (buf[0] == '1') while (serv_gets(buf), strcmp(buf, "000")) {
93 extract(ename, buf, 0);
94 extract(etype, buf, 1);
96 for (i=0; i<ic_max; ++i) {
97 if (!strcasecmp(etype, ic_keyword[i])) {
103 ic_spec[which] = realloc(ic_spec[which], strlen(ic_spec[which]) + strlen(ename) + 2);
104 if (strlen(ic_spec[which]) > 0) strcat(ic_spec[which], "\n");
105 strcat(ic_spec[which], ename);
108 ic_misc = realloc(ic_misc, strlen(ic_misc) + strlen(buf) + 2);
109 if (strlen(ic_misc) > 0) strcat(ic_misc, "\n");
110 strcat(ic_misc, buf);
115 wprintf("<TABLE border=0 width=100%%>\n");
116 for (which=0; which<ic_max; ++which) {
117 if (which % 2 == 0) {
121 svprintf("BOXTITLE", WCS_STRING, ic_boxtitle[which]);
122 do_template("beginbox");
123 wprintf("<span class=\"menudesc\">");
124 escputs(ic_desc[which]);
125 wprintf("</span><br>");
126 if (strlen(ic_spec[which]) > 0) {
127 for (i=0; i<num_tokens(ic_spec[which], '\n'); ++i) {
128 extract_token(buf, ic_spec[which], i, '\n');
133 wprintf("<div align=right>(add)</div>\n");
134 do_template("endbox");
136 if (which % 2 != 0) {
140 wprintf("</TABLE>\n");
144 for (i=0; i<ic_max; ++i) {
151 void save_inetconf(void) {
153 strcpy(WC->ImportantMessage, "FIXME did we do anything?");