* Replaced serv_gets() with serv_getln() - which now requires the caller
[citadel.git] / webcit / inetconf.c
index 9e5a4b0f9ac63f7d9f26d1a54b3bb724a53f6d72..3da1719a6dccac92b9ad1e205722a046d1650ee6 100644 (file)
@@ -1,9 +1,8 @@
 /* 
- * inetconf.c
+ * $Id$
  *
  * Functions which handle Internet domain configuration etc.
  *
- * $Id$
  */
 
 #include <ctype.h>
@@ -81,19 +80,12 @@ void display_inetconf(void)
        }
        ic_misc = strdup("");
 
-       output_headers(1, 1, 2, 0, 0, 0, 0);
-       wprintf("<div id=\"banner\">\n");
-       wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
-       wprintf("<SPAN CLASS=\"titlebar\">Internet configuration</SPAN>\n");
-       wprintf("</TD></TR></TABLE>\n");
-       wprintf("</div>\n<div id=\"text\">\n");
-
        serv_printf("CONF GETSYS|application/x-citadel-internet-config");
-       serv_gets(buf);
-       if (buf[0] == '1') while (serv_gets(buf), strcmp(buf, "000")) {
+       serv_getln(buf, sizeof buf);
+       if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
 
-               extract(ename, buf, 0);
-               extract(etype, buf, 1);
+               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])) {
@@ -114,7 +106,15 @@ void display_inetconf(void)
 
        }
 
-       wprintf("<TABLE border=0 width=100%%><TR><TD VALIGN=TOP>\n");
+       output_headers(1, 1, 2, 0, 0, 0, 0);
+       wprintf("<div id=\"banner\">\n");
+       wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
+       wprintf("<SPAN CLASS=\"titlebar\">Internet configuration</SPAN>\n");
+       wprintf("</TD></TR></TABLE>\n");
+       wprintf("</div>\n<div id=\"content\">\n");
+
+       wprintf("<div id=\"fix_scrollbar_bug\">"
+               "<table border=0 width=100%%><tr><td valign=top>\n");
        for (which=0; which<ic_max; ++which) {
                if (which == (ic_max / 2)) {
                        wprintf("</TD><TD VALIGN=TOP>");
@@ -128,7 +128,7 @@ void display_inetconf(void)
                if (strlen(ic_spec[which]) > 0) {
                        for (i=0; i<num_tokens(ic_spec[which], '\n'); ++i) {
                                wprintf("<TR><TD ALIGN=LEFT>");
-                               extract_token(buf, ic_spec[which], i, '\n');
+                               extract_token(buf, ic_spec[which], i, '\n', sizeof buf);
                                escputs(buf);
                                wprintf("</TD><TD ALIGN=RIGHT>"
                                        "<A HREF=\"/save_inetconf?oper=delete&ename=");
@@ -149,8 +149,7 @@ void display_inetconf(void)
                        "</TD></TR></TABLE></FORM>\n");
                do_template("endbox");
        }
-       wprintf("</TD></TR></TABLE>\n");
-
+       wprintf("</td></tr></table></div>\n");
        wDumpContent(1);
 
        for (i=0; i<ic_max; ++i) {
@@ -161,17 +160,22 @@ void display_inetconf(void)
 
 
 void save_inetconf(void) {
-       char buf[SIZ];
-       char ename[SIZ];
-       char etype[SIZ];
-       char newconfig[65536];
+       char *buf;
+       char *ename;
+       char *etype;
+       char *newconfig;
+
+       buf = malloc(SIZ);
+       ename = malloc(SIZ);
+       etype = malloc(SIZ);
+       newconfig = malloc(65536);
 
        strcpy(newconfig, "");
        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, 1);
+       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);
                if (strlen(buf) == 0) {
                        /* skip blank lines */
                }
@@ -188,7 +192,7 @@ void save_inetconf(void) {
        }
 
        serv_printf("CONF PUTSYS|application/x-citadel-internet-config");
-       serv_gets(buf);
+       serv_getln(buf, sizeof buf);
        if (buf[0] == '4') {
                serv_puts(newconfig);
                if (!strcasecmp(bstr("oper"), "add")) {
@@ -199,4 +203,9 @@ void save_inetconf(void) {
        }
        
        display_inetconf();
+
+       free(buf);
+       free(ename);
+       free(etype);
+       free(newconfig);
 }