* inetconf.c: added. Not finished yet.
authorArt Cancro <ajc@citadel.org>
Tue, 13 Jul 2004 03:25:08 +0000 (03:25 +0000)
committerArt Cancro <ajc@citadel.org>
Tue, 13 Jul 2004 03:25:08 +0000 (03:25 +0000)
webcit/ChangeLog
webcit/Makefile.in
webcit/inetconf.c [new file with mode: 0644]
webcit/mainmenu.c
webcit/webcit.c
webcit/webcit.h

index 7dda9619a66af18a2dbd9a13a6daebdcfae87f47..3e00a2eb36c8f20fafc0aa12dd07a21233198fc7 100644 (file)
@@ -1,4 +1,7 @@
 $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.
@@ -1968,3 +1971,4 @@ Sun Dec  6 19:50:55 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
 
 1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
        * webserver.c: warning fix
+
index 7eca4f942f33d0fda130cda5da36e3d52a606cd8..029e3fa6bc7a777c95a84002d81804b0aadcf60f 100644 (file)
@@ -36,7 +36,7 @@ webserver: webserver.o context_loop.o tools.o ical_dezonify.o \
        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 \
@@ -44,7 +44,7 @@ webserver: webserver.o context_loop.o tools.o ical_dezonify.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:
diff --git a/webcit/inetconf.c b/webcit/inetconf.c
new file mode 100644 (file)
index 0000000..30125d3
--- /dev/null
@@ -0,0 +1,108 @@
+/* 
+ * 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();
+}
index 077d608d1dd049378eb54ac5150757736451940b..f93b90b0ac789c55c62a15343913f17865e69f3e 100644 (file)
@@ -249,7 +249,13 @@ void display_main_menu(void)
                        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");
        }
index 8ef2603537565cc4b77334cc44dfcace75636ca5..fa577a5be5e12ad0f0a17fb5ac17a34d9422aabd 100644 (file)
@@ -1268,6 +1268,10 @@ void session_loop(struct httprequest *req)
                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);
 
index 1a14a12ef842e88a595edb485e53f94f9e7228cd..b3e99e71ef722da4962fb38d6dcf4f2441380d10 100644 (file)
@@ -422,6 +422,8 @@ void CtdlEncodeBase64(char *dest, const char *source, size_t sourcelen);
 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