$Log$
+Revision 522.13 2004/07/13 03:25:08 ajc
+* inetconf.c: added. Not finished yet.
+
Revision 522.12 2004/07/10 03:10:19 ajc
* Completed web screens for THE DREADED AUTO-PURGER by adding room and
floor level configurations.
1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
* webserver.c: warning fix
+
vcard.o vcard_edit.o preferences.o html2html.o listsub.o \
mime_parser.o graphics.o netconf.o siteconfig.o subst.o \
calendar.o calendar_tools.o calendar_view.o event.o \
- availability.o iconbar.o crypto.o \
+ availability.o iconbar.o crypto.o inetconf.o \
$(LIBOBJS)
$(CC) webserver.o context_loop.o tools.o cookie_conversion.o \
webcit.o auth.o tcp_sockets.o mainmenu.o serv_func.o who.o listsub.o \
locate_host.o siteconfig.o subst.o vcard.o vcard_edit.o floors.o \
mime_parser.o graphics.o netconf.o preferences.o html2html.o \
summary.o calendar.o calendar_tools.o calendar_view.o event.o \
- availability.o ical_dezonify.o iconbar.o crypto.o \
+ availability.o ical_dezonify.o iconbar.o crypto.o inetconf.o \
$(LIBOBJS) $(LIBS) $(LDFLAGS) -o webserver
.c.o:
--- /dev/null
+/*
+ * inetconf.c
+ *
+ * Functions which handle Internet domain configuration etc.
+ *
+ * $Id$
+ */
+
+#include <ctype.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <sys/socket.h>
+#include <sys/time.h>
+#include <limits.h>
+#include <netinet/in.h>
+#include <netdb.h>
+#include <string.h>
+#include <pwd.h>
+#include <errno.h>
+#include <stdarg.h>
+#include <pthread.h>
+#include <signal.h>
+#include "webcit.h"
+
+
+
+void display_inetconf(void)
+{
+ char buf[SIZ];
+ char ename[SIZ];
+ char etype[SIZ];
+
+ char *ic_localhost;
+ char *ic_gwdom;
+ char *ic_directory;
+ char *ic_spamass;
+ char *ic_rbl;
+ char *ic_smarthost;
+ char *ic_misc;
+
+ char *which = NULL;
+
+ ic_localhost = strdup("");
+ ic_gwdom = strdup("");
+ ic_directory = strdup("");
+ ic_spamass = strdup("");
+ ic_rbl = strdup("");
+ ic_smarthost = strdup("");
+ ic_misc = strdup("");
+
+ output_headers(3);
+ wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
+ wprintf("<SPAN CLASS=\"titlebar\">Internet configuration</SPAN>\n");
+ wprintf("</TD></TR></TABLE>\n");
+
+ serv_printf("CONF GETSYS|application/x-citadel-internet-config");
+ serv_gets(buf);
+ if (buf[0] == '1') while (serv_gets(buf), strcmp(buf, "000")) {
+
+ extract(ename, buf, 0);
+ extract(etype, buf, 0);
+ which = NULL;
+ if (!strcasecmp(etype, "localhost")) which = ic_localhost;
+ else if (!strcasecmp(etype, "gatewaydomain")) which = ic_gwdom;
+ else if (!strcasecmp(etype, "directory")) which = ic_directory;
+ else if (!strcasecmp(etype, "spamassassin")) which = ic_directory;
+ else if (!strcasecmp(etype, "rbl")) which = ic_rbl;
+ else if (!strcasecmp(etype, "smarthost")) which = ic_smarthost;
+
+ if (which != NULL) {
+ which = realloc(which, strlen(which) + strlen(ename) + 2);
+ if (strlen(which) > 0) strcat(which, "\n");
+ strcat(which, ename);
+ }
+ else {
+ ic_misc = realloc(ic_misc, strlen(ic_misc) + strlen(buf) + 2);
+ if (strlen(ic_misc) > 0) strcat(ic_misc, "\n");
+ strcat(which, buf);
+ }
+
+ /* FIXME finish this */
+ escputs(buf);
+ wprintf("<BR>\n");
+ }
+
+ wDumpContent(1);
+
+ free(ic_localhost);
+ free(ic_gwdom);
+ free(ic_directory);
+ free(ic_spamass);
+ free(ic_rbl);
+ free(ic_smarthost);
+ free(ic_misc);
+}
+
+
+void save_inetconf(void) {
+
+ strcpy(WC->ImportantMessage, "FIXME did we do anything?");
+
+ display_inetconf();
+}
wprintf("<A HREF=\"/display_netconf\">"
"<span class=\"mainmenu\">"
"Configure networking with other systems"
- "</span></A>\n");
+ "</span></A><BR>\n");
+
+ wprintf("<A HREF=\"/display_inetconf\">"
+ "<span class=\"mainmenu\">"
+ "Internet configuration "
+ "</span><span class=\"menudesc\">"
+ "(domain names, etc.)</span></A><BR>\n");
}
do_template("endbox");
}
commit_iconbar();
} else if (!strcasecmp(action, "set_room_policy")) {
set_room_policy();
+ } else if (!strcasecmp(action, "display_inetconf")) {
+ display_inetconf();
+ } else if (!strcasecmp(action, "save_inetconf")) {
+ save_inetconf();
} else if (!strcasecmp(action, "diagnostics")) {
output_headers(1);
int CtdlDecodeBase64(char *dest, const char *source, size_t length);
void free_attachments(struct wcsession *sess);
void set_room_policy(void);
+void display_inetconf(void);
+void save_inetconf(void);
#ifdef WEBCIT_WITH_CALENDAR_SERVICE