netconf.c

00001 /* 
00002  * $Id: netconf.c 5147 2007-05-08 15:36:22Z ajc $
00003  */
00010 #include "webcit.h"
00011 
00015 void edit_node(void) {
00016         char buf[SIZ];
00017         char node[SIZ];
00018         char cnode[SIZ];
00019         FILE *fp;
00020 
00021         if (strlen(bstr("ok_button")) > 0) {
00022                 strcpy(node, bstr("node") );
00023                 fp = tmpfile();
00024                 if (fp != NULL) {
00025                         serv_puts("CONF getsys|application/x-citadel-ignet-config");
00026                         serv_getln(buf, sizeof buf);
00027                         if (buf[0] == '1') {
00028                                 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
00029                                         extract_token(cnode, buf, 0, '|', sizeof cnode);
00030                                         if (strcasecmp(node, cnode)) {
00031                                                 fprintf(fp, "%s\n", buf);
00032                                         }
00033                                 }
00034                         fprintf(fp, "%s|%s|%s|%s\n", 
00035                                 bstr("node"),
00036                                 bstr("secret"),
00037                                 bstr("host"),
00038                                 bstr("port") );
00039                         }
00040                         rewind(fp);
00041 
00042                         serv_puts("CONF putsys|application/x-citadel-ignet-config");
00043                         serv_getln(buf, sizeof buf);
00044                         if (buf[0] == '4') {
00045                                 while (fgets(buf, sizeof buf, fp) != NULL) {
00046                                         buf[strlen(buf)-1] = 0;
00047                                         serv_puts(buf);
00048                                 }
00049                                 serv_puts("000");
00050                         }
00051                         fclose(fp);
00052                 }
00053         }
00054 
00055         display_netconf();
00056 }
00057 
00058 
00062 void display_add_node(void)
00063 {
00064         output_headers(1, 1, 2, 0, 0, 0);
00065         wprintf("<div id=\"banner\">\n");
00066         wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
00067         wprintf("<SPAN CLASS=\"titlebar\">");
00068         wprintf(_("Add a new node"));
00069         wprintf("</SPAN>");
00070         wprintf("</TD></TR></TABLE>\n");
00071         wprintf("</div>\n<div id=\"content\">\n");
00072 
00073         wprintf("<FORM METHOD=\"POST\" action=\"edit_node\">\n");
00074         wprintf("<CENTER><TABLE border=0>\n");
00075         wprintf("<TR><TD>%s</TD>", _("Node name"));
00076         wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"16\"></TD></TR>\n");
00077         wprintf("<TR><TD>%s</TD>", _("Shared secret"));
00078         wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"16\"></TD></TR>\n");
00079         wprintf("<TR><TD>%s</TD>", _("Host or IP address"));
00080         wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"64\"></TD></TR>\n");
00081         wprintf("<TR><TD>%s</TD>", _("Port number"));
00082         wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\"></TD></TR>\n");
00083         wprintf("</TABLE><br />");
00084         wprintf("<INPUT TYPE=\"submit\" NAME=\"ok_button\" VALUE=\"%s\">", _("Add node"));
00085         wprintf("&nbsp;");
00086         wprintf("<INPUT TYPE=\"submit\" NAME=\"cancel_button\" VALUE=\"%s\">", _("Cancel"));
00087         wprintf("</CENTER></FORM>\n");
00088 
00089         wDumpContent(1);
00090 }
00091 
00095 void display_edit_node(void)
00096 {
00097         char buf[512];
00098         char node[256];
00099         char cnode[256];
00100         char csecret[256];
00101         char chost[256];
00102         char cport[256];
00103 
00104         strcpy(node, bstr("node"));
00105 
00106         output_headers(1, 1, 2, 0, 0, 0);
00107         wprintf("<div id=\"banner\">\n");
00108         wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
00109         wprintf("<SPAN CLASS=\"titlebar\">");
00110         wprintf(_("Edit node configuration for "));
00111         escputs(node);
00112         wprintf("</SPAN>\n");
00113         wprintf("</TD></TR></TABLE>\n");
00114         wprintf("</div>\n<div id=\"content\">\n");
00115 
00116         serv_puts("CONF getsys|application/x-citadel-ignet-config");
00117         serv_getln(buf, sizeof buf);
00118         if (buf[0] == '1') {
00119                 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
00120                         extract_token(cnode, buf, 0, '|', sizeof cnode);
00121                         extract_token(csecret, buf, 1, '|', sizeof csecret);
00122                         extract_token(chost, buf, 2, '|', sizeof chost);
00123                         extract_token(cport, buf, 3, '|', sizeof cport);
00124 
00125                         if (!strcasecmp(node, cnode)) {
00126                                 wprintf("<FORM METHOD=\"POST\" action=\"edit_node\">\n");
00127                                 wprintf("<CENTER><TABLE border=0>\n");
00128                                 wprintf("<TR><TD>");
00129                                 wprintf(_("Node name"));
00130                                 wprintf("</TD>");
00131                                 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"node\" MAXLENGTH=\"16\" VALUE=\"%s\"></TD></TR>\n", cnode);
00132                                 wprintf("<TR><TD>");
00133                                 wprintf(_("Shared secret"));
00134                                 wprintf("</TD>");
00135                                 wprintf("<TD><INPUT TYPE=\"password\" NAME=\"secret\" MAXLENGTH=\"16\" VALUE=\"%s\"></TD></TR>\n", csecret);
00136                                 wprintf("<TR><TD>");
00137                                 wprintf(_("Host or IP address"));
00138                                 wprintf("</TD>");
00139                                 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"host\" MAXLENGTH=\"64\" VALUE=\"%s\"></TD></TR>\n", chost);
00140                                 wprintf("<TR><TD>");
00141                                 wprintf(_("Port number"));
00142                                 wprintf("</TD>");
00143                                 wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cport);
00144                                 wprintf("</TABLE><br />");
00145                                 wprintf("<INPUT TYPE=\"submit\" NAME=\"ok_button\" VALUE=\"%s\">",
00146                                         _("Save changes"));
00147                                 wprintf("&nbsp;");
00148                                 wprintf("<INPUT TYPE=\"submit\" NAME=\"cancel_button\" VALUE=\"%s\">",
00149                                         _("Cancel"));
00150                                 wprintf("</CENTER></FORM>\n");
00151                         }
00152 
00153                 }
00154         }
00155 
00156         else {          
00157                 wprintf("%s<br />\n", &buf[4]);
00158         }
00159 
00160         wDumpContent(1);
00161 }
00162 
00163 
00167 void display_netconf(void)
00168 {
00169         char buf[SIZ];
00170         char node[SIZ];
00171 
00172         output_headers(1, 1, 2, 0, 0, 0);
00173         wprintf("<div id=\"banner\">\n");
00174         wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
00175         wprintf("<SPAN CLASS=\"titlebar\">");
00176         wprintf(_("Network configuration"));
00177         wprintf("</SPAN>\n");
00178         wprintf("</TD></TR></TABLE>\n");
00179         wprintf("</div>\n<div id=\"content\">\n");
00180 
00181         wprintf("<CENTER>");
00182         wprintf("<a href=\"display_add_node\">");
00183         wprintf(_("Add a new node"));
00184         wprintf("</A><br />\n");
00185         wprintf("</CENTER>");
00186 
00187         wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
00188         wprintf("<SPAN CLASS=\"titlebar\">");
00189         wprintf(_("Currently configured nodes"));
00190         wprintf("</SPAN>\n");
00191         wprintf("</TD></TR></TABLE>\n");
00192         serv_puts("CONF getsys|application/x-citadel-ignet-config");
00193         serv_getln(buf, sizeof buf);
00194         if (buf[0] == '1') {
00195                 wprintf("<CENTER><TABLE border=0>\n");
00196                 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
00197                         extract_token(node, buf, 0, '|', sizeof node);
00198                         wprintf("<TR><TD><FONT SIZE=+1>");
00199                         escputs(node);
00200                         wprintf("</FONT></TD>");
00201                         wprintf("<TD><a href=\"display_edit_node&node=");
00202                         urlescputs(node);
00203                         wprintf("\">");
00204                         wprintf(_("(Edit)"));
00205                         wprintf("</A></TD>");
00206                         wprintf("<TD><a href=\"display_confirm_delete_node&node=");
00207                         urlescputs(node);
00208                         wprintf("\">");
00209                         wprintf(_("(Delete)"));
00210                         wprintf("</A></TD>");
00211                         wprintf("</TR>\n");
00212                 }
00213                 wprintf("</TABLE></CENTER>\n");
00214         }
00215         wDumpContent(1);
00216 }
00217 
00221 void display_confirm_delete_node(void)
00222 {
00223         char node[SIZ];
00224 
00225         output_headers(1, 1, 2, 0, 0, 0);
00226         wprintf("<div id=\"banner\">\n");
00227         wprintf("<TABLE class=\"netconf_banner\"><TR><TD>");
00228         wprintf("<SPAN CLASS=\"titlebar\">");
00229         wprintf(_("Confirm delete"));
00230         wprintf("</SPAN>\n");
00231         wprintf("</TD></TR></TABLE>\n");
00232         wprintf("</div>\n<div id=\"content\">\n");
00233 
00234         strcpy(node, bstr("node"));
00235         wprintf("<CENTER>");
00236         wprintf(_("Are you sure you want to delete "));
00237         wprintf("<FONT SIZE=+1>");
00238         escputs(node);
00239         wprintf("</FONT>?<br />\n");
00240         wprintf("<a href=\"delete_node&node=");
00241         urlescputs(node);
00242         wprintf("\">");
00243         wprintf(_("Yes"));
00244         wprintf("</A>&nbsp;&nbsp;&nbsp;");
00245         wprintf("<a href=\"display_netconf\">");
00246         wprintf(_("No"));
00247         wprintf("</A><br />\n");
00248         wDumpContent(1);
00249 }
00250 
00254 void delete_node(void)
00255 {
00256         char buf[SIZ];
00257         char node[SIZ];
00258         char cnode[SIZ];
00259         FILE *fp;
00260 
00261         strcpy(node, bstr("node") );
00262         fp = tmpfile();
00263         if (fp != NULL) {
00264                 serv_puts("CONF getsys|application/x-citadel-ignet-config");
00265                 serv_getln(buf, sizeof buf);
00266                 if (buf[0] == '1') {
00267                         while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
00268                                 extract_token(cnode, buf, 0, '|', sizeof cnode);
00269                                 if (strcasecmp(node, cnode)) {
00270                                         fprintf(fp, "%s\n", buf);
00271                                 }
00272                         }
00273                 }
00274                 rewind(fp);
00275 
00276                 serv_puts("CONF putsys|application/x-citadel-ignet-config");
00277                 serv_getln(buf, sizeof buf);
00278                 if (buf[0] == '4') {
00279                         while (fgets(buf, sizeof buf, fp) != NULL) {
00280                                 buf[strlen(buf)-1] = 0;
00281                                 serv_puts(buf);
00282                         }
00283                         serv_puts("000");
00284                 }
00285                 fclose(fp);
00286         }
00287 
00288         display_netconf();
00289 }
00290 
00294 void add_node(void)
00295 {
00296         char node[SIZ];
00297         char buf[SIZ];
00298 
00299         strcpy(node, bstr("node"));
00300 
00301         if (strlen(bstr("add_button")) > 0)  {
00302                 sprintf(buf, "NSET addnode|%s", node);
00303                 serv_puts(buf);
00304                 serv_getln(buf, sizeof buf);
00305                 if (buf[0] == '1') {
00306                         output_headers(1, 1, 0, 0, 0, 0);
00307                         server_to_text();
00308                         wprintf("<a href=\"display_netconf\">");
00309                         wprintf(_("Back to menu"));
00310                         wprintf("</A>\n");
00311                         wDumpContent(1);
00312                 } else {
00313                         strcpy(WC->ImportantMessage, &buf[4]);
00314                         display_netconf();
00315                 }
00316         }
00317 }
00318 
00319 

Generated on Wed Jun 20 23:13:09 2007 for webcit by  doxygen 1.5.2