10 #include <sys/types.h>
12 #include <sys/socket.h>
15 #include <netinet/in.h>
31 void edit_node(void) {
37 if (!strcmp(bstr("sc"), "OK")) {
38 strcpy(node, bstr("node") );
41 serv_puts("CONF getsys|application/x-citadel-ignet-config");
44 while (serv_gets(buf), strcmp(buf, "000")) {
45 extract(cnode, buf, 0);
46 if (strcasecmp(node, cnode)) {
47 fprintf(fp, "%s\n", buf);
50 fprintf(fp, "%s|%s|%s|%s\n",
58 serv_puts("CONF putsys|application/x-citadel-ignet-config");
61 while (fgets(buf, sizeof buf, fp) != NULL) {
62 buf[strlen(buf)-1] = 0;
76 void display_add_node(void)
79 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>");
80 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
81 wprintf("<B>Add new node</B>");
82 wprintf("</FONT></TD></TR></TABLE>\n");
84 wprintf("<FORM METHOD=\"POST\" ACTION=\"/edit_node\">\n");
85 wprintf("<CENTER><TABLE border=0>\n");
86 wprintf("<TR><TD>Node name</TD>");
87 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"8\"></TD></TR>\n");
88 wprintf("<TR><TD>Shared secret</TD>");
89 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"8\"></TD></TR>\n");
90 wprintf("<TR><TD>Host or IP</TD>");
91 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"32\"></TD></TR>\n");
92 wprintf("<TR><TD>Port</TD>");
93 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\"></TD></TR>\n");
94 wprintf("</TABLE><BR>");
95 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
96 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
97 wprintf("</CENTER></FORM>\n");
102 void display_edit_node(void)
111 strcpy(node, bstr("node"));
114 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>");
115 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
116 wprintf("<B>Edit node configuration for ");
119 wprintf("</FONT></TD></TR></TABLE>\n");
121 serv_puts("CONF getsys|application/x-citadel-ignet-config");
124 while (serv_gets(buf), strcmp(buf, "000")) {
125 extract(cnode, buf, 0);
126 extract(csecret, buf, 1);
127 extract(chost, buf, 2);
128 extract(cport, buf, 3);
130 if (!strcasecmp(node, cnode)) {
131 wprintf("<FORM METHOD=\"POST\" ACTION=\"/edit_node\">\n");
132 wprintf("<CENTER><TABLE border=0>\n");
133 wprintf("<TR><TD>Node name</TD>");
134 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cnode);
135 wprintf("<TR><TD>Shared secret</TD>");
136 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", csecret);
137 wprintf("<TR><TD>Host or IP</TD>");
138 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"32\" VALUE=\"%s\"></TD></TR>\n", chost);
139 wprintf("<TR><TD>Port</TD>");
140 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cport);
141 wprintf("</TABLE><BR>");
142 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
143 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
144 wprintf("</CENTER></FORM>\n");
150 else { /* command error getting configuration */
151 wprintf("%s<BR>\n", &buf[4]);
159 void display_netconf(void)
165 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=770000><TR><TD>");
166 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
167 wprintf("<B>Network configuration</B>\n");
168 wprintf("</FONT></TD></TR></TABLE>\n");
171 wprintf("<A HREF=\"/display_add_node\">");
172 wprintf("Add a new node</A><BR>\n");
173 wprintf("</CENTER>");
175 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>");
176 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
177 wprintf("<B>Currently configured nodes</B>\n");
178 wprintf("</FONT></TD></TR></TABLE>\n");
179 serv_puts("CONF getsys|application/x-citadel-ignet-config");
182 wprintf("<CENTER><TABLE border=0>\n");
183 while (serv_gets(buf), strcmp(buf, "000")) {
184 extract(node, buf, 0);
185 wprintf("<TR><TD><FONT SIZE=+1>");
187 wprintf("</FONT></TD>");
188 wprintf("<TD><A HREF=\"/display_edit_node&node=");
190 wprintf("\">(Edit)</A></TD>");
191 wprintf("<TD><A HREF=\"/display_confirm_delete_node&node=");
193 wprintf("\">(Delete)</A></TD>");
196 wprintf("</TABLE></CENTER>\n");
202 void display_confirm_delete_node(void)
207 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=770000><TR><TD>");
208 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
209 wprintf("<B>Confirm delete</B>\n");
210 wprintf("</FONT></TD></TR></TABLE>\n");
212 strcpy(node, bstr("node"));
213 wprintf("<CENTER>Are you sure you want to delete <FONT SIZE=+1>");
215 wprintf("</FONT>?<BR>\n");
216 wprintf("<A HREF=\"/delete_node&node=");
218 wprintf("\">Yes</A> ");
219 wprintf("<A HREF=\"/display_netconf\">No</A><BR>\n");
224 void delete_node(void)
231 strcpy(node, bstr("node") );
234 serv_puts("CONF getsys|application/x-citadel-ignet-config");
237 while (serv_gets(buf), strcmp(buf, "000")) {
238 extract(cnode, buf, 0);
239 if (strcasecmp(node, cnode)) {
240 fprintf(fp, "%s\n", buf);
246 serv_puts("CONF putsys|application/x-citadel-ignet-config");
249 while (fgets(buf, sizeof buf, fp) != NULL) {
250 buf[strlen(buf)-1] = 0;
268 strcpy(node, bstr("node"));
269 strcpy(sc, bstr("sc"));
271 if (!strcmp(sc, "Add")) {
272 sprintf(buf, "NSET addnode|%s", node);
278 wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
281 display_error(&buf[4]);