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("<input type=\"hidden\" name=\"nonce\" value=\"%ld\">\n", WC->nonce);
75 wprintf("<CENTER><TABLE border=0>\n");
76 wprintf("<TR><TD>%s</TD>", _("Node name"));
77 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"16\"></TD></TR>\n");
78 wprintf("<TR><TD>%s</TD>", _("Shared secret"));
79 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"16\"></TD></TR>\n");
80 wprintf("<TR><TD>%s</TD>", _("Host or IP address"));
81 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"64\"></TD></TR>\n");
82 wprintf("<TR><TD>%s</TD>", _("Port number"));
83 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\"></TD></TR>\n");
84 wprintf("</TABLE><br />");
85 wprintf("<INPUT TYPE=\"submit\" NAME=\"ok_button\" VALUE=\"%s\">", _("Add node"));
87 wprintf("<INPUT TYPE=\"submit\" NAME=\"cancel_button\" VALUE=\"%s\">", _("Cancel"));
88 wprintf("</CENTER></FORM>\n");
94 * \brief modify an existing node
96 void display_edit_node(void)
105 strcpy(node, bstr("node"));
107 output_headers(1, 1, 2, 0, 0, 0);
108 wprintf("<div id=\"banner\">\n");
109 wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
110 wprintf("<SPAN CLASS=\"titlebar\">");
111 wprintf(_("Edit node configuration for "));
113 wprintf("</SPAN>\n");
114 wprintf("</TD></TR></TABLE>\n");
115 wprintf("</div>\n<div id=\"content\">\n");
117 serv_puts("CONF getsys|application/x-citadel-ignet-config");
118 serv_getln(buf, sizeof buf);
120 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
121 extract_token(cnode, buf, 0, '|', sizeof cnode);
122 extract_token(csecret, buf, 1, '|', sizeof csecret);
123 extract_token(chost, buf, 2, '|', sizeof chost);
124 extract_token(cport, buf, 3, '|', sizeof cport);
126 if (!strcasecmp(node, cnode)) {
127 wprintf("<FORM METHOD=\"POST\" action=\"edit_node\">\n");
128 wprintf("<input type=\"hidden\" name=\"nonce\" value=\"%ld\">\n", WC->nonce);
129 wprintf("<CENTER><TABLE border=0>\n");
131 wprintf(_("Node name"));
133 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"16\" VALUE=\"%s\"></TD></TR>\n", cnode);
135 wprintf(_("Shared secret"));
137 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"16\" VALUE=\"%s\"></TD></TR>\n", csecret);
139 wprintf(_("Host or IP address"));
141 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"64\" VALUE=\"%s\"></TD></TR>\n", chost);
143 wprintf(_("Port number"));
145 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cport);
146 wprintf("</TABLE><br />");
147 wprintf("<INPUT TYPE=\"submit\" NAME=\"ok_button\" VALUE=\"%s\">",
150 wprintf("<INPUT TYPE=\"submit\" NAME=\"cancel_button\" VALUE=\"%s\">",
152 wprintf("</CENTER></FORM>\n");
158 else { /** command error getting configuration */
159 wprintf("%s<br />\n", &buf[4]);
167 * \brief display all configured nodes
169 void display_netconf(void)
174 output_headers(1, 1, 2, 0, 0, 0);
175 wprintf("<div id=\"banner\">\n");
176 wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
177 wprintf("<SPAN CLASS=\"titlebar\">");
178 wprintf(_("Network configuration"));
179 wprintf("</SPAN>\n");
180 wprintf("</TD></TR></TABLE>\n");
181 wprintf("</div>\n<div id=\"content\">\n");
184 wprintf("<a href=\"display_add_node\">");
185 wprintf(_("Add a new node"));
186 wprintf("</A><br />\n");
187 wprintf("</CENTER>");
189 wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
190 wprintf("<SPAN CLASS=\"titlebar\">");
191 wprintf(_("Currently configured nodes"));
192 wprintf("</SPAN>\n");
193 wprintf("</TD></TR></TABLE>\n");
194 serv_puts("CONF getsys|application/x-citadel-ignet-config");
195 serv_getln(buf, sizeof buf);
197 wprintf("<CENTER><TABLE border=0>\n");
198 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
199 extract_token(node, buf, 0, '|', sizeof node);
200 wprintf("<TR><TD><FONT SIZE=+1>");
202 wprintf("</FONT></TD>");
203 wprintf("<TD><a href=\"display_edit_node&node=");
206 wprintf(_("(Edit)"));
207 wprintf("</A></TD>");
208 wprintf("<TD><a href=\"display_confirm_delete_node&node=");
211 wprintf(_("(Delete)"));
212 wprintf("</A></TD>");
215 wprintf("</TABLE></CENTER>\n");
221 * \brief display the dialog to verify the deletion
223 void display_confirm_delete_node(void)
227 output_headers(1, 1, 2, 0, 0, 0);
228 wprintf("<div id=\"banner\">\n");
229 wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
230 wprintf("<SPAN CLASS=\"titlebar\">");
231 wprintf(_("Confirm delete"));
232 wprintf("</SPAN>\n");
233 wprintf("</TD></TR></TABLE>\n");
234 wprintf("</div>\n<div id=\"content\">\n");
236 strcpy(node, bstr("node"));
238 wprintf(_("Are you sure you want to delete "));
239 wprintf("<FONT SIZE=+1>");
241 wprintf("</FONT>?<br />\n");
242 wprintf("<a href=\"delete_node&node=");
246 wprintf("</A> ");
247 wprintf("<a href=\"display_netconf\">");
249 wprintf("</A><br />\n");
254 * \brief actually delete the node
256 void delete_node(void)
263 strcpy(node, bstr("node") );
266 serv_puts("CONF getsys|application/x-citadel-ignet-config");
267 serv_getln(buf, sizeof buf);
269 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
270 extract_token(cnode, buf, 0, '|', sizeof cnode);
271 if (strcasecmp(node, cnode)) {
272 fprintf(fp, "%s\n", buf);
278 serv_puts("CONF putsys|application/x-citadel-ignet-config");
279 serv_getln(buf, sizeof buf);
281 while (fgets(buf, sizeof buf, fp) != NULL) {
282 buf[strlen(buf)-1] = 0;
294 * \brief add a new node
301 strcpy(node, bstr("node"));
303 if (strlen(bstr("add_button")) > 0) {
304 sprintf(buf, "NSET addnode|%s", node);
306 serv_getln(buf, sizeof buf);
308 output_headers(1, 1, 0, 0, 0, 0);
310 wprintf("<a href=\"display_netconf\">");
311 wprintf(_("Back to menu"));
315 strcpy(WC->ImportantMessage, &buf[4]);