10 #include <sys/types.h>
12 #include <sys/socket.h>
15 #include <netinet/in.h>
31 struct sharelist *next;
36 void edit_node(void) {
42 if (!strcmp(bstr("sc"), "OK")) {
43 strcpy(node, bstr("node") );
46 serv_puts("CONF getsys|application/x-citadel-ignet-config");
49 while (serv_gets(buf), strcmp(buf, "000")) {
50 extract(cnode, buf, 0);
51 if (strcasecmp(node, cnode)) {
52 fprintf(fp, "%s\n", buf);
55 fprintf(fp, "%s|%s|%s|%s\n",
63 serv_puts("CONF putsys|application/x-citadel-ignet-config");
66 while (fgets(buf, sizeof buf, fp) != NULL) {
67 buf[strlen(buf)-1] = 0;
81 void display_add_node(void)
84 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>");
85 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
86 wprintf("<B>Add new node</B>");
87 wprintf("</FONT></TD></TR></TABLE>\n");
89 wprintf("<FORM METHOD=\"POST\" ACTION=\"/edit_node\">\n");
90 wprintf("<CENTER><TABLE border=0>\n");
91 wprintf("<TR><TD>Node name</TD>");
92 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"8\"></TD></TR>\n");
93 wprintf("<TR><TD>Shared secret</TD>");
94 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"8\"></TD></TR>\n");
95 wprintf("<TR><TD>Host or IP</TD>");
96 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"32\"></TD></TR>\n");
97 wprintf("<TR><TD>Port</TD>");
98 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\"></TD></TR>\n");
99 wprintf("</TABLE><BR>");
100 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
101 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
102 wprintf("</CENTER></FORM>\n");
107 void display_edit_node(void)
116 strcpy(node, bstr("node"));
119 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>");
120 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
121 wprintf("<B>Edit node configuration for ");
124 wprintf("</FONT></TD></TR></TABLE>\n");
126 serv_puts("CONF getsys|application/x-citadel-ignet-config");
129 while (serv_gets(buf), strcmp(buf, "000")) {
130 extract(cnode, buf, 0);
131 extract(csecret, buf, 1);
132 extract(chost, buf, 2);
133 extract(cport, buf, 3);
135 if (!strcasecmp(node, cnode)) {
136 wprintf("<FORM METHOD=\"POST\" ACTION=\"/edit_node\">\n");
137 wprintf("<CENTER><TABLE border=0>\n");
138 wprintf("<TR><TD>Node name</TD>");
139 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cnode);
140 wprintf("<TR><TD>Shared secret</TD>");
141 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", csecret);
142 wprintf("<TR><TD>Host or IP</TD>");
143 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"32\" VALUE=\"%s\"></TD></TR>\n", chost);
144 wprintf("<TR><TD>Port</TD>");
145 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cport);
146 wprintf("</TABLE><BR>");
147 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
148 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
149 wprintf("</CENTER></FORM>\n");
155 else { /* command error getting configuration */
156 wprintf("%s<BR>\n", &buf[4]);
164 void display_netconf(void)
170 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=770000><TR><TD>");
171 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
172 wprintf("<B>Network configuration</B>\n");
173 wprintf("</FONT></TD></TR></TABLE>\n");
176 wprintf("<A HREF=\"/display_add_node\">");
177 wprintf("Add a new node</A><BR>\n");
178 wprintf("</CENTER>");
180 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>");
181 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
182 wprintf("<B>Currently configured nodes</B>\n");
183 wprintf("</FONT></TD></TR></TABLE>\n");
184 serv_puts("CONF getsys|application/x-citadel-ignet-config");
187 wprintf("<CENTER><TABLE border=0>\n");
188 while (serv_gets(buf), strcmp(buf, "000")) {
189 extract(node, buf, 0);
190 wprintf("<TR><TD><FONT SIZE=+1>");
192 wprintf("</FONT></TD>");
193 wprintf("<TD><A HREF=\"/display_edit_node&node=");
195 wprintf("\">(Edit)</A></TD>");
196 wprintf("<TD><A HREF=\"/display_confirm_delete_node&node=");
198 wprintf("\">(Delete)</A></TD>");
201 wprintf("</TABLE></CENTER>\n");
207 void display_confirm_delete_node(void)
212 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=770000><TR><TD>");
213 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
214 wprintf("<B>Confirm delete</B>\n");
215 wprintf("</FONT></TD></TR></TABLE>\n");
217 strcpy(node, bstr("node"));
218 wprintf("<CENTER>Are you sure you want to delete <FONT SIZE=+1>");
220 wprintf("</FONT>?<BR>\n");
221 wprintf("<A HREF=\"/delete_node&node=");
223 wprintf("\">Yes</A> ");
224 wprintf("<A HREF=\"/display_netconf\">No</A><BR>\n");
229 void delete_node(void)
236 strcpy(node, bstr("node") );
239 serv_puts("CONF getsys|application/x-citadel-ignet-config");
242 while (serv_gets(buf), strcmp(buf, "000")) {
243 extract(cnode, buf, 0);
244 if (strcasecmp(node, cnode)) {
245 fprintf(fp, "%s\n", buf);
251 serv_puts("CONF putsys|application/x-citadel-ignet-config");
254 while (fgets(buf, sizeof buf, fp) != NULL) {
255 buf[strlen(buf)-1] = 0;
273 strcpy(node, bstr("node"));
274 strcpy(sc, bstr("sc"));
276 if (!strcmp(sc, "Add")) {
277 sprintf(buf, "NSET addnode|%s", node);
283 wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
286 display_error(&buf[4]);