From 8fa15271b5cdc6722aad2d0b4c9fe12e48472878 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Tue, 13 Jul 2004 03:25:08 +0000 Subject: [PATCH] * inetconf.c: added. Not finished yet. --- webcit/ChangeLog | 4 ++ webcit/Makefile.in | 4 +- webcit/inetconf.c | 108 +++++++++++++++++++++++++++++++++++++++++++++ webcit/mainmenu.c | 8 +++- webcit/webcit.c | 4 ++ webcit/webcit.h | 2 + 6 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 webcit/inetconf.c diff --git a/webcit/ChangeLog b/webcit/ChangeLog index 7dda9619a..3e00a2eb3 100644 --- a/webcit/ChangeLog +++ b/webcit/ChangeLog @@ -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 1998-12-03 Nathan Bryant * webserver.c: warning fix + diff --git a/webcit/Makefile.in b/webcit/Makefile.in index 7eca4f942..029e3fa6b 100644 --- a/webcit/Makefile.in +++ b/webcit/Makefile.in @@ -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 index 000000000..30125d39a --- /dev/null +++ b/webcit/inetconf.c @@ -0,0 +1,108 @@ +/* + * inetconf.c + * + * 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" + + + +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("
"); + wprintf("Internet configuration\n"); + wprintf("
\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("
\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(); +} diff --git a/webcit/mainmenu.c b/webcit/mainmenu.c index 077d608d1..f93b90b0a 100644 --- a/webcit/mainmenu.c +++ b/webcit/mainmenu.c @@ -249,7 +249,13 @@ void display_main_menu(void) wprintf("" "" "Configure networking with other systems" - "\n"); + "
\n"); + + wprintf("" + "" + "Internet configuration " + "" + "(domain names, etc.)
\n"); } do_template("endbox"); } diff --git a/webcit/webcit.c b/webcit/webcit.c index 8ef260353..fa577a5be 100644 --- a/webcit/webcit.c +++ b/webcit/webcit.c @@ -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); diff --git a/webcit/webcit.h b/webcit/webcit.h index 1a14a12ef..b3e99e71e 100644 --- a/webcit/webcit.h +++ b/webcit/webcit.h @@ -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 -- 2.30.2