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)
79 output_headers(1, 1, 2, 0, 0, 0, 0);
80 wprintf("<div id=\"banner\">\n");
81 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
82 wprintf("<SPAN CLASS=\"titlebar\">Add new node</SPAN>");
83 wprintf("</TD></TR></TABLE>\n");
84 wprintf("</div>\n<div id=\"text\">\n");
86 wprintf("<FORM METHOD=\"POST\" ACTION=\"/edit_node\">\n");
87 wprintf("<CENTER><TABLE border=0>\n");
88 wprintf("<TR><TD>Node name</TD>");
89 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"16\"></TD></TR>\n");
90 wprintf("<TR><TD>Shared secret</TD>");
91 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"16\"></TD></TR>\n");
92 wprintf("<TR><TD>Host or IP</TD>");
93 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"64\"></TD></TR>\n");
94 wprintf("<TR><TD>Port</TD>");
95 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\"></TD></TR>\n");
96 wprintf("</TABLE><br />");
97 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
99 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
100 wprintf("</CENTER></FORM>\n");
105 void display_edit_node(void)
114 strcpy(node, bstr("node"));
116 output_headers(1, 1, 2, 0, 0, 0, 0);
117 wprintf("<div id=\"banner\">\n");
118 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
119 wprintf("<SPAN CLASS=\"titlebar\">Edit node configuration for ");
121 wprintf("</SPAN>\n");
122 wprintf("</TD></TR></TABLE>\n");
123 wprintf("</div>\n<div id=\"text\">\n");
125 serv_puts("CONF getsys|application/x-citadel-ignet-config");
128 while (serv_gets(buf), strcmp(buf, "000")) {
129 extract(cnode, buf, 0);
130 extract(csecret, buf, 1);
131 extract(chost, buf, 2);
132 extract(cport, buf, 3);
134 if (!strcasecmp(node, cnode)) {
135 wprintf("<FORM METHOD=\"POST\" ACTION=\"/edit_node\">\n");
136 wprintf("<CENTER><TABLE border=0>\n");
137 wprintf("<TR><TD>Node name</TD>");
138 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"16\" VALUE=\"%s\"></TD></TR>\n", cnode);
139 wprintf("<TR><TD>Shared secret</TD>");
140 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"16\" VALUE=\"%s\"></TD></TR>\n", csecret);
141 wprintf("<TR><TD>Host or IP</TD>");
142 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"64\" VALUE=\"%s\"></TD></TR>\n", chost);
143 wprintf("<TR><TD>Port</TD>");
144 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cport);
145 wprintf("</TABLE><br />");
146 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)
169 output_headers(1, 1, 2, 0, 0, 0, 0);
170 wprintf("<div id=\"banner\">\n");
171 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
172 wprintf("<SPAN CLASS=\"titlebar\">Network configuration</SPAN>\n");
173 wprintf("</TD></TR></TABLE>\n");
174 wprintf("</div>\n<div id=\"text\">\n");
177 wprintf("<A HREF=\"/display_add_node\">");
178 wprintf("Add a new node</A><br />\n");
179 wprintf("</CENTER>");
181 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
182 wprintf("<SPAN CLASS=\"titlebar\">Currently configured nodes</SPAN>\n");
183 wprintf("</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)
211 output_headers(1, 1, 2, 0, 0, 0, 0);
212 wprintf("<div id=\"banner\">\n");
213 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>");
214 wprintf("<SPAN CLASS=\"titlebar\">Confirm delete</SPAN>\n");
215 wprintf("</TD></TR></TABLE>\n");
216 wprintf("</div>\n<div id=\"text\">\n");
218 strcpy(node, bstr("node"));
219 wprintf("<CENTER>Are you sure you want to delete <FONT SIZE=+1>");
221 wprintf("</FONT>?<br />\n");
222 wprintf("<A HREF=\"/delete_node&node=");
224 wprintf("\">Yes</A> ");
225 wprintf("<A HREF=\"/display_netconf\">No</A><br />\n");
230 void delete_node(void)
237 strcpy(node, bstr("node") );
240 serv_puts("CONF getsys|application/x-citadel-ignet-config");
243 while (serv_gets(buf), strcmp(buf, "000")) {
244 extract(cnode, buf, 0);
245 if (strcasecmp(node, cnode)) {
246 fprintf(fp, "%s\n", buf);
252 serv_puts("CONF putsys|application/x-citadel-ignet-config");
255 while (fgets(buf, sizeof buf, fp) != NULL) {
256 buf[strlen(buf)-1] = 0;
274 strcpy(node, bstr("node"));
275 strcpy(sc, bstr("sc"));
277 if (!strcmp(sc, "Add")) {
278 sprintf(buf, "NSET addnode|%s", node);
282 output_headers(1, 1, 0, 0, 0, 0, 0);
284 wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
287 strcpy(WC->ImportantMessage, &buf[4]);