4 * Functions which handle network and sharing configuration.
14 #include <sys/types.h>
16 #include <sys/socket.h>
19 #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_token(cnode, buf, 0, '|', sizeof cnode);
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)
78 output_headers(1, 1, 2, 0, 0, 0, 0);
79 wprintf("<div id=\"banner\">\n");
80 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
81 wprintf("<SPAN CLASS=\"titlebar\">Add new node</SPAN>");
82 wprintf("</TD></TR></TABLE>\n");
83 wprintf("</div>\n<div id=\"content\">\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=\"16\"></TD></TR>\n");
89 wprintf("<TR><TD>Shared secret</TD>");
90 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"16\"></TD></TR>\n");
91 wprintf("<TR><TD>Host or IP</TD>");
92 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"64\"></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\">");
98 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
99 wprintf("</CENTER></FORM>\n");
104 void display_edit_node(void)
113 strcpy(node, bstr("node"));
115 output_headers(1, 1, 2, 0, 0, 0, 0);
116 wprintf("<div id=\"banner\">\n");
117 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
118 wprintf("<SPAN CLASS=\"titlebar\">Edit node configuration for ");
120 wprintf("</SPAN>\n");
121 wprintf("</TD></TR></TABLE>\n");
122 wprintf("</div>\n<div id=\"content\">\n");
124 serv_puts("CONF getsys|application/x-citadel-ignet-config");
127 while (serv_gets(buf), strcmp(buf, "000")) {
128 extract_token(cnode, buf, 0, '|', sizeof cnode);
129 extract_token(csecret, buf, 1, '|', sizeof csecret);
130 extract_token(chost, buf, 2, '|', sizeof chost);
131 extract_token(cport, buf, 3, '|', sizeof cport);
133 if (!strcasecmp(node, cnode)) {
134 wprintf("<FORM METHOD=\"POST\" ACTION=\"/edit_node\">\n");
135 wprintf("<CENTER><TABLE border=0>\n");
136 wprintf("<TR><TD>Node name</TD>");
137 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"16\" VALUE=\"%s\"></TD></TR>\n", cnode);
138 wprintf("<TR><TD>Shared secret</TD>");
139 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"16\" VALUE=\"%s\"></TD></TR>\n", csecret);
140 wprintf("<TR><TD>Host or IP</TD>");
141 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"64\" VALUE=\"%s\"></TD></TR>\n", chost);
142 wprintf("<TR><TD>Port</TD>");
143 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cport);
144 wprintf("</TABLE><br />");
145 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
147 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
148 wprintf("</CENTER></FORM>\n");
154 else { /* command error getting configuration */
155 wprintf("%s<br />\n", &buf[4]);
163 void display_netconf(void)
168 output_headers(1, 1, 2, 0, 0, 0, 0);
169 wprintf("<div id=\"banner\">\n");
170 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
171 wprintf("<SPAN CLASS=\"titlebar\">Network configuration</SPAN>\n");
172 wprintf("</TD></TR></TABLE>\n");
173 wprintf("</div>\n<div id=\"content\">\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=\"#444455\"><TR><TD>");
181 wprintf("<SPAN CLASS=\"titlebar\">Currently configured nodes</SPAN>\n");
182 wprintf("</TD></TR></TABLE>\n");
183 serv_puts("CONF getsys|application/x-citadel-ignet-config");
186 wprintf("<CENTER><TABLE border=0>\n");
187 while (serv_gets(buf), strcmp(buf, "000")) {
188 extract_token(node, buf, 0, '|', sizeof node);
189 wprintf("<TR><TD><FONT SIZE=+1>");
191 wprintf("</FONT></TD>");
192 wprintf("<TD><A HREF=\"/display_edit_node&node=");
194 wprintf("\">(Edit)</A></TD>");
195 wprintf("<TD><A HREF=\"/display_confirm_delete_node&node=");
197 wprintf("\">(Delete)</A></TD>");
200 wprintf("</TABLE></CENTER>\n");
206 void display_confirm_delete_node(void)
210 output_headers(1, 1, 2, 0, 0, 0, 0);
211 wprintf("<div id=\"banner\">\n");
212 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
213 wprintf("<SPAN CLASS=\"titlebar\">Confirm delete</SPAN>\n");
214 wprintf("</TD></TR></TABLE>\n");
215 wprintf("</div>\n<div id=\"content\">\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_token(cnode, buf, 0, '|', sizeof cnode);
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);
281 output_headers(1, 1, 0, 0, 0, 0, 0);
283 wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
286 strcpy(WC->ImportantMessage, &buf[4]);