-
-
+/*
+ * netconf.c
+ *
+ * Functions which handle network and sharing configuration.
+ *
+ * $Id$
+ */
#include <ctype.h>
#include <stdlib.h>
-
-
-
-struct sharelist {
- struct sharelist *next;
- char shname[SIZ];
-};
-
-
void edit_node(void) {
-
- if (strcmp(bstr("sc"), "OK")) {
- /* FIXME do something */
+ char buf[SIZ];
+ char node[SIZ];
+ char cnode[SIZ];
+ FILE *fp;
+
+ if (!strcmp(bstr("sc"), "OK")) {
+ strcpy(node, bstr("node") );
+ fp = tmpfile();
+ if (fp != NULL) {
+ serv_puts("CONF getsys|application/x-citadel-ignet-config");
+ serv_gets(buf);
+ if (buf[0] == '1') {
+ while (serv_gets(buf), strcmp(buf, "000")) {
+ extract(cnode, buf, 0);
+ if (strcasecmp(node, cnode)) {
+ fprintf(fp, "%s\n", buf);
+ }
+ }
+ fprintf(fp, "%s|%s|%s|%s\n",
+ bstr("node"),
+ bstr("secret"),
+ bstr("host"),
+ bstr("port") );
+ }
+ rewind(fp);
+
+ serv_puts("CONF putsys|application/x-citadel-ignet-config");
+ serv_gets(buf);
+ if (buf[0] == '4') {
+ while (fgets(buf, sizeof buf, fp) != NULL) {
+ buf[strlen(buf)-1] = 0;
+ serv_puts(buf);
+ }
+ serv_puts("000");
+ }
+ fclose(fp);
+ }
}
display_netconf();
+void display_add_node(void)
+{
+ 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\">Add new node</SPAN>");
+ wprintf("</TD></TR></TABLE>\n");
+ wprintf("</div>\n<div id=\"text\">\n");
+
+ wprintf("<FORM METHOD=\"POST\" ACTION=\"/edit_node\">\n");
+ wprintf("<CENTER><TABLE border=0>\n");
+ wprintf("<TR><TD>Node name</TD>");
+ wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"16\"></TD></TR>\n");
+ wprintf("<TR><TD>Shared secret</TD>");
+ wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"16\"></TD></TR>\n");
+ wprintf("<TR><TD>Host or IP</TD>");
+ wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"64\"></TD></TR>\n");
+ wprintf("<TR><TD>Port</TD>");
+ wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\"></TD></TR>\n");
+ wprintf("</TABLE><br />");
+ wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
+ wprintf(" ");
+ wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
+ wprintf("</CENTER></FORM>\n");
+
+ wDumpContent(1);
+}
+
void display_edit_node(void)
{
char buf[SIZ];
strcpy(node, bstr("node"));
- output_headers(1);
- wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>");
- wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
- wprintf("<B>Edit node configuration for ");
+ 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\">Edit node configuration for ");
escputs(node);
- wprintf("</B>\n");
- wprintf("</FONT></TD></TR></TABLE>\n");
+ wprintf("</SPAN>\n");
+ wprintf("</TD></TR></TABLE>\n");
+ wprintf("</div>\n<div id=\"text\">\n");
serv_puts("CONF getsys|application/x-citadel-ignet-config");
serv_gets(buf);
wprintf("<FORM METHOD=\"POST\" ACTION=\"/edit_node\">\n");
wprintf("<CENTER><TABLE border=0>\n");
wprintf("<TR><TD>Node name</TD>");
- wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cnode);
+ wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"16\" VALUE=\"%s\"></TD></TR>\n", cnode);
wprintf("<TR><TD>Shared secret</TD>");
- wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", csecret);
+ wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"16\" VALUE=\"%s\"></TD></TR>\n", csecret);
wprintf("<TR><TD>Host or IP</TD>");
- wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"32\" VALUE=\"%s\"></TD></TR>\n", chost);
+ wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"64\" VALUE=\"%s\"></TD></TR>\n", chost);
wprintf("<TR><TD>Port</TD>");
wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cport);
- wprintf("</TABLE><BR>");
+ wprintf("</TABLE><br />");
wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
+ wprintf(" ");
wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
wprintf("</CENTER></FORM>\n");
}
}
else { /* command error getting configuration */
- wprintf("%s<BR>\n", &buf[4]);
+ wprintf("%s<br />\n", &buf[4]);
}
wDumpContent(1);
char buf[SIZ];
char node[SIZ];
- output_headers(1);
- wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=770000><TR><TD>");
- wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
- wprintf("<B>Network configuration</B>\n");
- wprintf("</FONT></TD></TR></TABLE>\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\">Network configuration</SPAN>\n");
+ wprintf("</TD></TR></TABLE>\n");
+ wprintf("</div>\n<div id=\"text\">\n");
wprintf("<CENTER>");
wprintf("<A HREF=\"/display_add_node\">");
- wprintf("Add a new node</A><BR>\n");
+ wprintf("Add a new node</A><br />\n");
wprintf("</CENTER>");
- wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>");
- wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
- wprintf("<B>Currently configured nodes</B>\n");
- wprintf("</FONT></TD></TR></TABLE>\n");
+ wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
+ wprintf("<SPAN CLASS=\"titlebar\">Currently configured nodes</SPAN>\n");
+ wprintf("</TD></TR></TABLE>\n");
serv_puts("CONF getsys|application/x-citadel-ignet-config");
serv_gets(buf);
if (buf[0] == '1') {
{
char node[SIZ];
- output_headers(1);
- wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=770000><TR><TD>");
- wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
- wprintf("<B>Confirm delete</B>\n");
- wprintf("</FONT></TD></TR></TABLE>\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\">Confirm delete</SPAN>\n");
+ wprintf("</TD></TR></TABLE>\n");
+ wprintf("</div>\n<div id=\"text\">\n");
strcpy(node, bstr("node"));
wprintf("<CENTER>Are you sure you want to delete <FONT SIZE=+1>");
escputs(node);
- wprintf("</FONT>?<BR>\n");
+ wprintf("</FONT>?<br />\n");
wprintf("<A HREF=\"/delete_node&node=");
urlescputs(node);
wprintf("\">Yes</A> ");
- wprintf("<A HREF=\"/display_netconf\">No</A><BR>\n");
+ wprintf("<A HREF=\"/display_netconf\">No</A><br />\n");
wDumpContent(1);
}
void delete_node(void)
{
- char node[SIZ];
char buf[SIZ];
+ char node[SIZ];
+ char cnode[SIZ];
+ FILE *fp;
- strcpy(node, bstr("node"));
- sprintf(buf, "NSET deletenode|%s", node);
- serv_puts(buf);
- serv_gets(buf);
- if (buf[0] == '1') {
- output_headers(1);
- server_to_text();
- wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
- wDumpContent(1);
- } else {
- display_error(&buf[4]);
- }
-}
-
-
-void display_add_node(void)
-{
-
- output_headers(1);
- wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=007700><TR><TD>");
- wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
- wprintf("<B>Add a new node</B>\n");
- wprintf("</FONT></TD></TR></TABLE>\n");
-
- wprintf("<CENTER>");
- wprintf("<FORM METHOD=\"POST\" ACTION=\"/add_node\">\n");
-
- wprintf("Enter name of new node: ");
- wprintf("<INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"64\"><BR>\n");
+ strcpy(node, bstr("node") );
+ fp = tmpfile();
+ if (fp != NULL) {
+ serv_puts("CONF getsys|application/x-citadel-ignet-config");
+ serv_gets(buf);
+ if (buf[0] == '1') {
+ while (serv_gets(buf), strcmp(buf, "000")) {
+ extract(cnode, buf, 0);
+ if (strcasecmp(node, cnode)) {
+ fprintf(fp, "%s\n", buf);
+ }
+ }
+ }
+ rewind(fp);
- wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Add\">");
- wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
+ serv_puts("CONF putsys|application/x-citadel-ignet-config");
+ serv_gets(buf);
+ if (buf[0] == '4') {
+ while (fgets(buf, sizeof buf, fp) != NULL) {
+ buf[strlen(buf)-1] = 0;
+ serv_puts(buf);
+ }
+ serv_puts("000");
+ }
+ fclose(fp);
+ }
- wprintf("</FORM></CENTER>\n");
- wDumpContent(1);
+ display_netconf();
}
-
void add_node(void)
{
char node[SIZ];
serv_puts(buf);
serv_gets(buf);
if (buf[0] == '1') {
- output_headers(1);
+ output_headers(1, 1, 0, 0, 0, 0, 0);
server_to_text();
wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
wDumpContent(1);
} else {
- display_error(&buf[4]);
+ strcpy(WC->ImportantMessage, &buf[4]);
+ display_netconf();
}
}
}