10 #include <sys/types.h>
12 #include <sys/socket.h>
15 #include <netinet/in.h>
31 struct sharelist *next;
36 void display_edit_node(void)
42 strcpy(node, bstr("node"));
44 wprintf("HTTP/1.0 200 OK\n");
46 wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=000077><TR><TD>");
47 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
48 wprintf("<B>Edit share list for ");
51 wprintf("</FONT></TD></TR></TABLE>\n");
53 wprintf("<CENTER>\n");
54 wprintf("<A HREF=\"/display_share&node=");
56 wprintf("\">Add a shared room</A><BR>\n");
58 wprintf("<A HREF=\"/display_netconf");
59 wprintf("\">Return to network configuration screen</A><BR>\n");
61 serv_printf("NSET roomlist|%s", node);
64 wprintf("<TABLE border=0>\n");
65 while (serv_gets(buf), strcmp(buf, "000")) {
66 extract(sroom, buf, 0);
67 wprintf("<TR><TD><FONT SIZE=+1>");
69 wprintf("</FONT></TD>");
70 wprintf("<TD><A HREF=\"/display_confirm_unshare&sroom=");
74 wprintf("\">(UnShare)</A></TD>");
77 wprintf("</TABLE></CENTER>\n");
84 void display_netconf(void)
89 wprintf("HTTP/1.0 200 OK\n");
91 wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
92 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
93 wprintf("<B>Network configuration</B>\n");
94 wprintf("</FONT></TD></TR></TABLE>\n");
97 wprintf("<A HREF=\"/display_add_node\">");
98 wprintf("Add a new node</A><BR>\n");
101 wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=000077><TR><TD>");
102 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
103 wprintf("<B>Currently configured nodes</B>\n");
104 wprintf("</FONT></TD></TR></TABLE>\n");
105 serv_puts("NSET nodelist");
108 wprintf("<CENTER><TABLE border=0>\n");
109 while (serv_gets(buf), strcmp(buf, "000")) {
110 extract(node, buf, 0);
111 wprintf("<TR><TD><FONT SIZE=+1>");
113 wprintf("</FONT></TD>");
114 wprintf("<TD><A HREF=\"/display_edit_node&node=");
116 wprintf("\">(Edit)</A></TD>");
117 wprintf("<TD><A HREF=\"/display_confirm_delete_node&node=");
119 wprintf("\">(Delete)</A></TD>");
122 wprintf("</TABLE></CENTER>\n");
128 void display_confirm_unshare(void)
133 wprintf("HTTP/1.0 200 OK\n");
135 wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
136 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
137 wprintf("<B>Confirm unshare</B>\n");
138 wprintf("</FONT></TD></TR></TABLE>\n");
140 strcpy(node, bstr("node"));
141 strcpy(sroom, bstr("sroom"));
142 wprintf("<CENTER>Are you sure you want to unshare <FONT SIZE=+1>");
144 wprintf("</FONT>?<BR>\n");
145 wprintf("<A HREF=\"/unshare&node=");
149 wprintf("\">Yes</A> ");
150 wprintf("<A HREF=\"/display_edit_node&node=");
152 wprintf("\">No</A><BR>\n");
157 void display_confirm_delete_node(void)
161 wprintf("HTTP/1.0 200 OK\n");
163 wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
164 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
165 wprintf("<B>Confirm delete</B>\n");
166 wprintf("</FONT></TD></TR></TABLE>\n");
168 strcpy(node, bstr("node"));
169 wprintf("<CENTER>Are you sure you want to delete <FONT SIZE=+1>");
171 wprintf("</FONT>?<BR>\n");
172 wprintf("<A HREF=\"/delete_node&node=");
174 wprintf("\">Yes</A> ");
175 wprintf("<A HREF=\"/display_netconf\">No</A><BR>\n");
180 void delete_node(void)
185 strcpy(node, bstr("node"));
186 sprintf(buf, "NSET deletenode|%s", node);
190 wprintf("HTTP/1.0 200 OK\n");
193 wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
196 display_error(&buf[4]);
207 strcpy(node, bstr("node"));
208 strcpy(sroom, bstr("sroom"));
209 sprintf(buf, "NSET unshare|%s|%s", node, sroom);
213 wprintf("HTTP/1.0 200 OK\n");
216 wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
219 display_error(&buf[4]);
225 void display_add_node(void)
228 wprintf("HTTP/1.0 200 OK\n");
230 wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=007700><TR><TD>");
231 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
232 wprintf("<B>Add a new node</B>\n");
233 wprintf("</FONT></TD></TR></TABLE>\n");
236 wprintf("<FORM METHOD=\"POST\" ACTION=\"/add_node\">\n");
238 wprintf("Enter name of new node: ");
239 wprintf("<INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"64\"><BR>\n");
241 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Add\">");
242 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
244 wprintf("</FORM></CENTER>\n");
256 strcpy(node, bstr("node"));
257 strcpy(sc, bstr("sc"));
259 if (!strcmp(sc, "Add")) {
260 sprintf(buf, "NSET addnode|%s", node);
264 wprintf("HTTP/1.0 200 OK\n");
267 wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
270 display_error(&buf[4]);
277 void display_share(void)
282 struct sharelist *shlist = NULL;
283 struct sharelist *shptr;
286 strcpy(node, bstr("node"));
288 wprintf("HTTP/1.0 200 OK\n");
290 wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=007700><TR><TD>");
291 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
292 wprintf("<B>Add a shared room</B>\n");
293 wprintf("</FONT></TD></TR></TABLE>\n");
296 wprintf("<FORM METHOD=\"POST\" ACTION=\"/share\">\n");
297 wprintf("<INPUT TYPE=\"hidden\" NAME=\"node\" VALUE=\"");
301 sprintf(buf, "NSET roomlist|%s", node);
305 while (serv_gets(buf), strcmp(buf, "000")) {
306 shptr = (struct sharelist *)
307 malloc(sizeof(struct sharelist));
308 shptr->next = shlist;
309 extract(shptr->shname, buf, 0);
313 wprintf("<SELECT NAME=\"sroom\" SIZE=5 WIDTH=30>\n");
317 while (serv_gets(buf), strcmp(buf, "000")) {
318 extract(sroom, buf, 0);
320 for (shptr = shlist; shptr != NULL; shptr = shptr->next) {
321 if (!strcasecmp(sroom, shptr->shname))
325 if (already_shared == 0) {
332 wprintf("</SELECT>\n");
335 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Share\">");
336 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
338 wprintf("</FORM></CENTER>\n");
342 while (shlist != NULL) {
343 shptr = shlist->next;
359 strcpy(node, bstr("node"));
360 strcpy(sc, bstr("sc"));
361 strcpy(sroom, bstr("sroom"));
363 if (!strcmp(sc, "Share")) {
364 sprintf(buf, "NSET share|%s|%s", node, sroom);
368 wprintf("HTTP/1.0 200 OK\n");
371 wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
374 display_error(&buf[4]);