5 * \defgroup NetShareConf Functions which handle network and sharing configuration.
7 * \ingroup CitadelConfig
13 * \brief edit a network node
15 void edit_node(void) {
21 if (strlen(bstr("ok_button")) > 0) {
22 strcpy(node, bstr("node") );
25 serv_puts("CONF getsys|application/x-citadel-ignet-config");
26 serv_getln(buf, sizeof buf);
28 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
29 extract_token(cnode, buf, 0, '|', sizeof cnode);
30 if (strcasecmp(node, cnode)) {
31 fprintf(fp, "%s\n", buf);
34 fprintf(fp, "%s|%s|%s|%s\n",
42 serv_puts("CONF putsys|application/x-citadel-ignet-config");
43 serv_getln(buf, sizeof buf);
45 while (fgets(buf, sizeof buf, fp) != NULL) {
46 buf[strlen(buf)-1] = 0;
62 void display_add_node(void)
64 output_headers(1, 1, 2, 0, 0, 0);
65 wprintf("<div id=\"banner\">\n");
66 wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
67 wprintf("<SPAN CLASS=\"titlebar\">");
68 wprintf(_("Add a new node"));
70 wprintf("</TD></TR></TABLE>\n");
71 wprintf("</div>\n<div id=\"content\">\n");
73 wprintf("<FORM METHOD=\"POST\" action=\"edit_node\">\n");
74 wprintf("<CENTER><TABLE border=0>\n");
75 wprintf("<TR><TD>%s</TD>", _("Node name"));
76 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"16\"></TD></TR>\n");
77 wprintf("<TR><TD>%s</TD>", _("Shared secret"));
78 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"16\"></TD></TR>\n");
79 wprintf("<TR><TD>%s</TD>", _("Host or IP address"));
80 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"64\"></TD></TR>\n");
81 wprintf("<TR><TD>%s</TD>", _("Port number"));
82 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\"></TD></TR>\n");
83 wprintf("</TABLE><br />");
84 wprintf("<INPUT TYPE=\"submit\" NAME=\"ok_button\" VALUE=\"%s\">", _("Add node"));
86 wprintf("<INPUT TYPE=\"submit\" NAME=\"cancel_button\" VALUE=\"%s\">", _("Cancel"));
87 wprintf("</CENTER></FORM>\n");
93 * \brief modify an existing node
95 void display_edit_node(void)
104 strcpy(node, bstr("node"));
106 output_headers(1, 1, 2, 0, 0, 0);
107 wprintf("<div id=\"banner\">\n");
108 wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
109 wprintf("<SPAN CLASS=\"titlebar\">");
110 wprintf(_("Edit node configuration for "));
112 wprintf("</SPAN>\n");
113 wprintf("</TD></TR></TABLE>\n");
114 wprintf("</div>\n<div id=\"content\">\n");
116 serv_puts("CONF getsys|application/x-citadel-ignet-config");
117 serv_getln(buf, sizeof buf);
119 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
120 extract_token(cnode, buf, 0, '|', sizeof cnode);
121 extract_token(csecret, buf, 1, '|', sizeof csecret);
122 extract_token(chost, buf, 2, '|', sizeof chost);
123 extract_token(cport, buf, 3, '|', sizeof cport);
125 if (!strcasecmp(node, cnode)) {
126 wprintf("<FORM METHOD=\"POST\" action=\"edit_node\">\n");
127 wprintf("<CENTER><TABLE border=0>\n");
129 wprintf(_("Node name"));
131 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"16\" VALUE=\"%s\"></TD></TR>\n", cnode);
133 wprintf(_("Shared secret"));
135 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"16\" VALUE=\"%s\"></TD></TR>\n", csecret);
137 wprintf(_("Host or IP address"));
139 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"64\" VALUE=\"%s\"></TD></TR>\n", chost);
141 wprintf(_("Port number"));
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=\"ok_button\" VALUE=\"%s\">",
148 wprintf("<INPUT TYPE=\"submit\" NAME=\"cancel_button\" VALUE=\"%s\">",
150 wprintf("</CENTER></FORM>\n");
156 else { /** command error getting configuration */
157 wprintf("%s<br />\n", &buf[4]);
165 * \brief display all configured nodes
167 void display_netconf(void)
172 output_headers(1, 1, 2, 0, 0, 0);
173 wprintf("<div id=\"banner\">\n");
174 wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
175 wprintf("<SPAN CLASS=\"titlebar\">");
176 wprintf(_("Network configuration"));
177 wprintf("</SPAN>\n");
178 wprintf("</TD></TR></TABLE>\n");
179 wprintf("</div>\n<div id=\"content\">\n");
182 wprintf("<a href=\"display_add_node\">");
183 wprintf(_("Add a new node"));
184 wprintf("</A><br />\n");
185 wprintf("</CENTER>");
187 wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
188 wprintf("<SPAN CLASS=\"titlebar\">");
189 wprintf(_("Currently configured nodes"));
190 wprintf("</SPAN>\n");
191 wprintf("</TD></TR></TABLE>\n");
192 serv_puts("CONF getsys|application/x-citadel-ignet-config");
193 serv_getln(buf, sizeof buf);
195 wprintf("<CENTER><TABLE border=0>\n");
196 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
197 extract_token(node, buf, 0, '|', sizeof node);
198 wprintf("<TR><TD><FONT SIZE=+1>");
200 wprintf("</FONT></TD>");
201 wprintf("<TD><a href=\"display_edit_node&node=");
204 wprintf(_("(Edit)"));
205 wprintf("</A></TD>");
206 wprintf("<TD><a href=\"display_confirm_delete_node&node=");
209 wprintf(_("(Delete)"));
210 wprintf("</A></TD>");
213 wprintf("</TABLE></CENTER>\n");
219 * \brief display the dialog to verify the deletion
221 void display_confirm_delete_node(void)
225 output_headers(1, 1, 2, 0, 0, 0);
226 wprintf("<div id=\"banner\">\n");
227 wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
228 wprintf("<SPAN CLASS=\"titlebar\">");
229 wprintf(_("Confirm delete"));
230 wprintf("</SPAN>\n");
231 wprintf("</TD></TR></TABLE>\n");
232 wprintf("</div>\n<div id=\"content\">\n");
234 strcpy(node, bstr("node"));
236 wprintf(_("Are you sure you want to delete "));
237 wprintf("<FONT SIZE=+1>");
239 wprintf("</FONT>?<br />\n");
240 wprintf("<a href=\"delete_node&node=");
244 wprintf("</A> ");
245 wprintf("<a href=\"display_netconf\">");
247 wprintf("</A><br />\n");
252 * \brief actually delete the node
254 void delete_node(void)
261 strcpy(node, bstr("node") );
264 serv_puts("CONF getsys|application/x-citadel-ignet-config");
265 serv_getln(buf, sizeof buf);
267 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
268 extract_token(cnode, buf, 0, '|', sizeof cnode);
269 if (strcasecmp(node, cnode)) {
270 fprintf(fp, "%s\n", buf);
276 serv_puts("CONF putsys|application/x-citadel-ignet-config");
277 serv_getln(buf, sizeof buf);
279 while (fgets(buf, sizeof buf, fp) != NULL) {
280 buf[strlen(buf)-1] = 0;
292 * \brief add a new node
299 strcpy(node, bstr("node"));
301 if (strlen(bstr("add_button")) > 0) {
302 sprintf(buf, "NSET addnode|%s", node);
304 serv_getln(buf, sizeof buf);
306 output_headers(1, 1, 0, 0, 0, 0);
308 wprintf("<a href=\"display_netconf\">");
309 wprintf(_("Back to menu"));
313 strcpy(WC->ImportantMessage, &buf[4]);