4 * Functions which handle network and sharing configuration.
15 #include <sys/types.h>
17 #include <sys/socket.h>
20 #include <netinet/in.h>
32 void edit_node(void) {
38 if (!strcmp(bstr("sc"), "OK")) {
39 strcpy(node, bstr("node") );
42 serv_puts("CONF getsys|application/x-citadel-ignet-config");
45 while (serv_gets(buf), strcmp(buf, "000")) {
46 extract(cnode, buf, 0);
47 if (strcasecmp(node, cnode)) {
48 fprintf(fp, "%s\n", buf);
51 fprintf(fp, "%s|%s|%s|%s\n",
59 serv_puts("CONF putsys|application/x-citadel-ignet-config");
62 while (fgets(buf, sizeof buf, fp) != NULL) {
63 buf[strlen(buf)-1] = 0;
77 void display_add_node(void)
80 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>");
81 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
82 wprintf("<B>Add new node</B>");
83 wprintf("</FONT></TD></TR></TABLE>\n");
85 wprintf("<FORM METHOD=\"POST\" ACTION=\"/edit_node\">\n");
86 wprintf("<CENTER><TABLE border=0>\n");
87 wprintf("<TR><TD>Node name</TD>");
88 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"8\"></TD></TR>\n");
89 wprintf("<TR><TD>Shared secret</TD>");
90 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"8\"></TD></TR>\n");
91 wprintf("<TR><TD>Host or IP</TD>");
92 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"32\"></TD></TR>\n");
93 wprintf("<TR><TD>Port</TD>");
94 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\"></TD></TR>\n");
95 wprintf("</TABLE><BR>");
96 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
97 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
98 wprintf("</CENTER></FORM>\n");
103 void display_edit_node(void)
112 strcpy(node, bstr("node"));
115 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>");
116 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
117 wprintf("<B>Edit node configuration for ");
120 wprintf("</FONT></TD></TR></TABLE>\n");
122 serv_puts("CONF getsys|application/x-citadel-ignet-config");
125 while (serv_gets(buf), strcmp(buf, "000")) {
126 extract(cnode, buf, 0);
127 extract(csecret, buf, 1);
128 extract(chost, buf, 2);
129 extract(cport, buf, 3);
131 if (!strcasecmp(node, cnode)) {
132 wprintf("<FORM METHOD=\"POST\" ACTION=\"/edit_node\">\n");
133 wprintf("<CENTER><TABLE border=0>\n");
134 wprintf("<TR><TD>Node name</TD>");
135 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cnode);
136 wprintf("<TR><TD>Shared secret</TD>");
137 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", csecret);
138 wprintf("<TR><TD>Host or IP</TD>");
139 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"32\" VALUE=\"%s\"></TD></TR>\n", chost);
140 wprintf("<TR><TD>Port</TD>");
141 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cport);
142 wprintf("</TABLE><BR>");
143 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
144 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
145 wprintf("</CENTER></FORM>\n");
151 else { /* command error getting configuration */
152 wprintf("%s<BR>\n", &buf[4]);
160 void display_netconf(void)
166 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=770000><TR><TD>");
167 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
168 wprintf("<B>Network configuration</B>\n");
169 wprintf("</FONT></TD></TR></TABLE>\n");
172 wprintf("<A HREF=\"/display_add_node\">");
173 wprintf("Add a new node</A><BR>\n");
174 wprintf("</CENTER>");
176 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>");
177 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
178 wprintf("<B>Currently configured nodes</B>\n");
179 wprintf("</FONT></TD></TR></TABLE>\n");
180 serv_puts("CONF getsys|application/x-citadel-ignet-config");
183 wprintf("<CENTER><TABLE border=0>\n");
184 while (serv_gets(buf), strcmp(buf, "000")) {
185 extract(node, buf, 0);
186 wprintf("<TR><TD><FONT SIZE=+1>");
188 wprintf("</FONT></TD>");
189 wprintf("<TD><A HREF=\"/display_edit_node&node=");
191 wprintf("\">(Edit)</A></TD>");
192 wprintf("<TD><A HREF=\"/display_confirm_delete_node&node=");
194 wprintf("\">(Delete)</A></TD>");
197 wprintf("</TABLE></CENTER>\n");
203 void display_confirm_delete_node(void)
208 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=770000><TR><TD>");
209 wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
210 wprintf("<B>Confirm delete</B>\n");
211 wprintf("</FONT></TD></TR></TABLE>\n");
213 strcpy(node, bstr("node"));
214 wprintf("<CENTER>Are you sure you want to delete <FONT SIZE=+1>");
216 wprintf("</FONT>?<BR>\n");
217 wprintf("<A HREF=\"/delete_node&node=");
219 wprintf("\">Yes</A> ");
220 wprintf("<A HREF=\"/display_netconf\">No</A><BR>\n");
225 void delete_node(void)
232 strcpy(node, bstr("node") );
235 serv_puts("CONF getsys|application/x-citadel-ignet-config");
238 while (serv_gets(buf), strcmp(buf, "000")) {
239 extract(cnode, buf, 0);
240 if (strcasecmp(node, cnode)) {
241 fprintf(fp, "%s\n", buf);
247 serv_puts("CONF putsys|application/x-citadel-ignet-config");
250 while (fgets(buf, sizeof buf, fp) != NULL) {
251 buf[strlen(buf)-1] = 0;
269 strcpy(node, bstr("node"));
270 strcpy(sc, bstr("sc"));
272 if (!strcmp(sc, "Add")) {
273 sprintf(buf, "NSET addnode|%s", node);
279 wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
282 display_error(&buf[4]);