- char node[SIZ];
- char cnode[SIZ];
- char csecret[SIZ];
- char chost[SIZ];
- char cport[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 ");
- escputs(node);
- wprintf("</B>\n");
- wprintf("</FONT></TD></TR></TABLE>\n");
-
- 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);
- extract(csecret, buf, 1);
- extract(chost, buf, 2);
- extract(cport, buf, 3);
-
- if (!strcasecmp(node, cnode)) {
- 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("<TR><TD>Shared secret</TD>");
- wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"8\" 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("<TR><TD>Port</TD>");
- wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cport);
- wprintf("</TABLE><BR>");
- wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
- wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
- wprintf("</CENTER></FORM>\n");
+ StrBuf *Buf;
+ HashPos *where;
+ void *vNode;
+ NodeConf *Node;
+ const char *Key;
+ long KeyLen;
+
+ serv_puts("CONF putsys|application/x-citadel-ignet-config");
+ serv_getln(buf, sizeof buf);
+ if (buf[0] == '4') {
+ if ((Nodelist != NULL) && (GetCount(Nodelist) > 0)) {
+ where = GetNewHashPos(Nodelist, 0);
+ Buf = NewStrBuf();
+ while (GetNextHashPos(Nodelist, where, &KeyLen, &Key, &vNode)) {
+ Node = (NodeConf*) vNode;
+ if (Node->DeleteMe==0) {
+ SerializeNode(Node, Buf);
+ serv_putbuf(Buf);
+ }