• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/src/router/shared/

Lines Matching refs:wp

107 static int wl_phytype_get(webs_t wp, int *phytype);
109 static int cert_revoke(webs_t wp, char *sn_str);
261 ej_kernel_version(int eid, webs_t wp, int argc, char_t **argv)
285 websWrite(wp,"%s", buf);
553 ej_dumplog(int eid, webs_t wp, int argc, char_t **argv)
562 websError(wp, 400, "Insufficient memory\n");
599 ret += websWrite(wp, "%s %s connection %s to %s:%s from %s:%s\n",
601 ret += websWrite(wp, "<br>");
608 ej_syslog(int eid, webs_t wp, int argc, char_t **argv)
616 websError(wp, 400, "\"Syslog in RAM\" is not enabled.\n");
629 websError(wp, 400, "logread error\n");
633 websWrite(wp, "<pre>");
637 ret += websWrite(wp, buf);
639 ret += websWrite(wp, "</pre>");
655 ej_lan_leases(int eid, webs_t wp, int argc, char_t **argv)
690 ret += websWrite(wp, "<tr><td>%s</td><td>", lease.hostname);
692 ret += websWrite(wp, "%02X", lease.chaddr[i]);
693 if (i != 5) ret += websWrite(wp, ":");
696 ret += websWrite(wp, "</td><td>%s</td><td>", inet_ntoa(addr));
699 ret += websWrite(wp, "Expired");
701 ret += websWrite(wp, "%s", reltime(expires));
703 ret += websWrite(wp, "</td><td>Guest</td><td>");
705 ret += websWrite(wp, "</td><td>Internal</td><td>");
706 ret += websWrite(wp, "</td></tr>");
764 ej_wan_link(int eid, webs_t wp, int argc, char_t **argv)
781 return websWrite(wp, "N/A");
788 return websWrite(wp, "Connected");
790 return websWrite(wp, "Disconnected");
798 return websWrite(wp, "N/A");
808 return websWrite(wp, "Unknown");
812 return websWrite(wp, "Disconnected");
820 return websWrite(wp, "Connecting");
825 return websWrite(wp, "Connected");
830 ej_wan_lease(int eid, webs_t wp, int argc, char_t **argv)
852 ret += websWrite(wp, "Expired");
854 ret += websWrite(wp, "%s", reltime(expires - now));
856 ret += websWrite(wp, "N/A");
864 ej_sysuptime(int eid, webs_t wp, int argc, char_t **argv)
870 return websWrite(wp, reltime(up));
872 return websWrite(wp, "N/A");
878 ej_wan_iflist(int eid, webs_t wp, int argc, char_t **argv)
901 ret += websWrite(wp, "<option value=\"%s\" %s>%s (%s)</option>", name,
1048 ej_dumplog(int eid, webs_t wp, int argc, char_t **argv)
1054 ej_syslog(int eid, webs_t wp, int argc, char_t **argv)
1064 ej_lan_leases(int eid, webs_t wp, int argc, char_t **argv)
1097 ret += websWrite(wp, "<tr><td>%s</td><td>", cp1);
1105 ret += websWrite(wp, "%s", cp1);
1112 ret += websWrite(wp, "</td><td>%s</td><td>", cp1);
1117 ret += websWrite(wp, "Never");
1123 ret += websWrite(wp, "Expired");
1125 ret += websWrite(wp, "%s", reltime(expires));
1128 ret += websWrite(wp, "</td><td>Guest</td><td>");
1130 ret += websWrite(wp, "</td><td>Internal</td><td>");
1131 ret += websWrite(wp, "</td></tr>");
1162 ej_wan_link(int eid, webs_t wp, int argc, char_t **argv)
1170 ej_wan_lease(int eid, webs_t wp, int argc, char_t **argv)
1180 ej_sysuptime(int eid, webs_t wp, int argc, char_t **argv)
1195 return websWrite(wp, reltime(uptime));
1197 return websWrite(wp, "N/A");
1203 ej_wan_iflist(int eid, webs_t wp, int argc, char_t **argv)
1226 ret += websWrite(wp, "<option value=\"%s\" %s>%s (%s)</option>", name,
1239 ej_kernel_version(int eid, webs_t wp, int argc, char_t **argv)
1267 ej_kernel_version(int eid, webs_t wp, int argc, char_t **argv)
1269 websWrite(wp,"eCos 3.0/");
1313 ej_lan_leases(int eid, webs_t wp, int argc, char_t **argv)
1354 ret += websWrite(wp, "<tr><td>%s</td><td>", lease->hostname);
1357 ret += websWrite(wp, "%02X", lease->mac[i]);
1358 if (i != 5) ret += websWrite(wp, ":");
1361 ret += websWrite(wp, "</td><td>%s</td><td>", inet_ntoa(lease->ipaddr));
1364 ret += websWrite(wp, "Expired");
1366 ret += websWrite(wp, "%s",
1370 ret += websWrite(wp, "</td><td>Guest</td><td>");
1372 ret += websWrite(wp, "</td><td>Internal</td><td>");
1373 ret += websWrite(wp, "</td></tr>");
1387 ej_dumplog(int eid, webs_t wp, int argc, char_t **argv)
1398 ej_syslog(int eid, webs_t wp, int argc, char_t **argv)
1407 ret += websWrite(wp, "<pre>");
1408 ret += websWrite(wp, buf);
1409 ret += websWrite(wp, "</pre>");
1419 ej_wan_link(int eid, webs_t wp, int argc, char_t **argv)
1425 websWrite(wp, "Connected");
1427 websWrite(wp, "Connecting");
1429 websWrite(wp, "Disconnected");
1434 ej_wan_lease(int eid, webs_t wp, int argc, char_t **argv)
1452 ret += websWrite(wp, "N/A");
1454 ret += websWrite(wp, "Expired");
1456 ret += websWrite(wp, "%s", reltime(expires - now));
1458 ret += websWrite(wp, "N/A");
1464 ej_sysuptime(int eid, webs_t wp, int argc, char_t **argv)
1468 return websWrite(wp, reltime(up));
1473 ej_wan_iflist(int eid, webs_t wp, int argc, char_t **argv)
1496 ret += websWrite(wp, "<option value=\"%s\" %s>%s (%s)</option>", name,
1512 wl_phytype_get(webs_t wp, int *phytype)
1518 websError(wp, 400, "unit number variable doesn't exist\n");
1531 ej_lan_guest_iflist(int eid, webs_t wp, int argc, char_t **argv)
1538 websError(wp, 400, "Insufficient args\n");
1554 ret += websWrite(wp, "<option value=\"NONE\" selected >NONE</option>");
1559 websError(wp, 400, "Unable to remove duplicate interfaces from ifname list<br>");
1569 ret += websWrite(wp, "<option value=\"%s\"%s>%s%s</option>",
1574 ret += websWrite(wp, "<option value=\"NONE\"%s>NONE</option>",(*value) ? "" : " selected ");
1581 ej_asp_list(int eid, webs_t wp, int argc, char_t **argv)
1583 websWrite(wp,
1588 websWrite(wp,
1592 websWrite(wp,
1595 websWrite(wp,
1602 websWrite(wp,
1606 websWrite(wp,
1609 websWrite(wp, " <td><a href=\"plc.asp\"><img border=\"0\" src=\"plc.gif\" alt=\"PLC\"></a></td>\n");
1613 websWrite(wp,
1616 websWrite(wp,
1620 websWrite(wp,
1623 websWrite(wp,
1626 websWrite(wp,
1630 websWrite(wp,
1634 websWrite(wp,
1637 websWrite(wp,
1641 websWrite(wp,
1645 websWrite(wp,
1648 websWrite(wp,
1707 ej_localtime(int eid, webs_t wp, int argc, char_t **argv)
1712 return websWrite(wp, rfctime(&tm));
1716 ej_wl_mode_list(int eid, webs_t wp, int argc, char_t **argv)
1727 if ((wl_bssid = websGetVar(wp, "wl_bssid", NULL)) && (atoi(wl_bssid)))
1731 websError(wp, 400, "unit number variable doesn't exist\n");
1742 websWrite(wp, "<option value=\"ap\" selected >Access Point</option>\n" );
1765 websWrite(wp, "<option value=\"ap\" %s>Access Point</option>\n",
1768 websWrite(wp, "<option value=\"wds\" %s>Wireless Bridge</option>\n",
1771 websWrite(wp, "<option value=\"wet\" %s>Wireless Ethernet</option>\n",
1774 websWrite(wp, "<option value=\"mac_spoof\" %s>Wireless Ethernet MAC Spoof</option>\n",
1777 websWrite(wp, "<option value=\"psta\" %s>Proxy STA</option>\n",
1780 websWrite(wp, "<option value=\"psr\" %s>Proxy STA Repeater</option>\n",
1783 websWrite(wp, "<option value=\"sta\" %s>Station</option>\n",
1789 ej_wl_bw_cap_list(int eid, webs_t wp, int argc, char_t **argv)
1797 websError(wp, 400, "unit number variable doesn't exist\n");
1807 websWrite(wp, "<option value=\"1\" %s>20 MHz</option>",
1809 websWrite(wp, "<option value=\"3\" %s>40 MHz</option>",
1814 websWrite(wp, "<option value=\"7\" %s>80 MHz</option>",
1847 ej_wl_bssid_list(int eid, webs_t wp, int argc, char_t **argv)
1865 websError(wp, 400, "unit number variable doesn't exist\n");
1874 if ((wl_bssid = websGetVar(wp, "wl_bssid", NULL)))
1880 websWrite(wp, "<option value=%x %s > %s (%s %sabled) </option>\n", i,
1915 websWrite(wp, "<option value=%d %s > %s (%s %sabled)</option>\n", i,
1924 ej_wl_inlist(int eid, webs_t wp, int argc, char_t **argv)
1933 websError(wp, 400, "Insufficient args\n");
1938 websError(wp, 400, "unit number variable doesn't exist\n");
1949 return websWrite(wp, "1");
1952 return websWrite(wp, "0");
1956 ej_wl_wds_status(int eid, webs_t wp, int argc, char_t **argv)
1966 websError(wp, 400, "Insufficient args\n");
1971 websError(wp, 400, "Insufficient args\n");
1985 return websWrite(wp, "%s", (sta->flags & WL_STA_WDS_LINKUP) ? "up" : "down");
1988 return websWrite(wp, "%s", "unknown");
1996 ej_ses_button_display(int eid, webs_t wp, int argc, char_t **argv)
2004 ej_ses_cl_button_display(int eid, webs_t wp, int argc, char_t **argv)
2011 ej_wl_auth_display(int eid, webs_t wp, int argc, char_t **argv)
2014 websWrite(wp, "<option value=\"2\" %s>Auto</option>",
2016 websWrite(wp, "<option value=\"1\" %s>Shared</option>",
2018 websWrite(wp, "<option value=\"0\" %s>Open</option>",
2025 ej_emf_enable_display(int eid, webs_t wp, int argc, char_t **argv)
2028 websWrite(wp, "<p>\n");
2029 websWrite(wp, "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
2030 websWrite(wp, "<tr>\n");
2031 websWrite(wp, "<th width=\"310\"\n");
2032 websWrite(wp, "onMouseOver=\"return overlib(\'Enables/Disables Efficient Multicast Forwarding feature\', LEFT);\"\n");
2033 websWrite(wp, "onMouseOut=\"return nd();\">\n");
2034 websWrite(wp, "EMF:&nbsp;&nbsp;\n");
2035 websWrite(wp, "</th>\n");
2036 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2037 websWrite(wp, "<td>\n");
2038 websWrite(wp, "<select name=\"emf_enable\">\n");
2039 websWrite(wp, "<option value=\"1\" %s>Enabled</option>", nvram_match("emf_enable", "1") ? "selected": "\n");
2040 websWrite(wp, "<option value=\"0\" %s>Disabled</option>", nvram_match("emf_enable", "0") ? "selected": "\n");
2041 websWrite(wp, "</select>\n");
2042 websWrite(wp, "</td>\n");
2043 websWrite(wp, "</tr>\n");
2044 websWrite(wp, "</table>\n");
2087 ej_emf_entries_display(int eid, webs_t wp, int argc, char_t **argv)
2092 websWrite(wp, "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
2093 websWrite(wp, "<tr>\n");
2094 websWrite(wp, "<th width=\"310\" valign=\"top\" rowspan=\"6\"\n");
2095 websWrite(wp, "onMouseOver=\"return overlib(\'Add/Delete static forwarding entries for the multicast groups.\', LEFT);\"\n");
2096 websWrite(wp, "onMouseOut=\"return nd();\">\n");
2097 websWrite(wp, "<input type=\"hidden\" name=\"emf_entry\" value=\"5\">\n");
2098 websWrite(wp, "Static Multicast Forwarding Entries:&nbsp;&nbsp;\n");
2099 websWrite(wp, "</th>\n");
2100 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2101 websWrite(wp, "<td class=\"label\">Multicast IP Address</td>\n");
2102 websWrite(wp, "<td></td>\n");
2103 websWrite(wp, "<td class=\"label\">Interface</td>\n");
2104 websWrite(wp, "</tr>\n");
2105 websWrite(wp, "<tr>\n");
2106 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2108 websWrite(wp, "<td><input name=\"emf_entry_mgrp0\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2109 websWrite(wp, "<td>&nbsp;</td>\n");
2111 websWrite(wp, "<td><input name=\"emf_entry_if0\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2112 websWrite(wp, "</tr>\n");
2113 websWrite(wp, "<tr>\n");
2114 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2116 websWrite(wp, "<td><input name=\"emf_entry_mgrp1\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2117 websWrite(wp, "<td>&nbsp;</td>\n");
2119 websWrite(wp, "<td><input name=\"emf_entry_if1\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2120 websWrite(wp, "</tr>\n");
2121 websWrite(wp, "<tr>\n");
2122 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2124 websWrite(wp, "<td><input name=\"emf_entry_mgrp2\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2125 websWrite(wp, "<td>&nbsp;</td>\n");
2127 websWrite(wp, "<td><input name=\"emf_entry_if2\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2128 websWrite(wp, "</tr>\n");
2129 websWrite(wp, "<tr>\n");
2130 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2132 websWrite(wp, "<td><input name=\"emf_entry_mgrp3\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2133 websWrite(wp, "<td>&nbsp;</td>\n");
2135 websWrite(wp, "<td><input name=\"emf_entry_if3\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2136 websWrite(wp, "</tr>\n");
2137 websWrite(wp, "<tr>\n");
2138 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2140 websWrite(wp, "<td><input name=\"emf_entry_mgrp4\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2141 websWrite(wp, "<td>&nbsp;</td>\n");
2143 websWrite(wp, "<td><input name=\"emf_entry_if4\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2144 websWrite(wp, "</tr>\n");
2145 websWrite(wp, "</table>\n");
2212 ej_emf_uffp_entries_display(int eid, webs_t wp, int argc, char_t **argv)
2217 websWrite(wp, "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
2218 websWrite(wp, "<tr>\n");
2219 websWrite(wp, "<th width=\"310\" valign=\"top\" rowspan=\"6\"\n");
2220 websWrite(wp, "onMouseOver=\"return overlib(\'Add/Delete unregistered multicast data frames forwarding port entries. Multicast data frames that fail MFDB lookup will be flooded on to these ports.\', LEFT);\"\n");
2221 websWrite(wp, "onMouseOut=\"return nd();\">\n");
2222 websWrite(wp, "<input type=\"hidden\" name=\"emf_uffp_entry\" value=\"5\">\n");
2223 websWrite(wp, "Unregistered Multicast Frames Forwarding Ports:&nbsp;&nbsp;\n");
2224 websWrite(wp, "</th>\n");
2225 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2226 websWrite(wp, "<td class=\"label\">Interface</td>\n");
2227 websWrite(wp, "<td></td>\n");
2228 websWrite(wp, "</tr>\n");
2229 websWrite(wp, "<tr>\n");
2230 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2232 websWrite(wp, "<td><input name=\"emf_uffp_entry_if0\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2233 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2234 websWrite(wp, "<td></td>\n");
2235 websWrite(wp, "</tr>\n");
2236 websWrite(wp, "<tr>\n");
2237 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2239 websWrite(wp, "<td><input name=\"emf_uffp_entry_if1\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2240 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2241 websWrite(wp, "<td></td>\n");
2242 websWrite(wp, "</tr>\n");
2243 websWrite(wp, "<tr>\n");
2244 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2246 websWrite(wp, "<td><input name=\"emf_uffp_entry_if2\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2247 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2248 websWrite(wp, "<td></td>\n");
2249 websWrite(wp, "</tr>\n");
2250 websWrite(wp, "<tr>\n");
2251 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2253 websWrite(wp, "<td><input name=\"emf_uffp_entry_if3\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2254 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2255 websWrite(wp, "<td></td>\n");
2256 websWrite(wp, "</tr>\n");
2257 websWrite(wp, "<tr>\n");
2258 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2260 websWrite(wp, "<td><input name=\"emf_uffp_entry_if4\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2261 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2262 websWrite(wp, "<td></td>\n");
2263 websWrite(wp, "</tr>\n");
2264 websWrite(wp, "</table>\n");
2271 ej_emf_rtport_entries_display(int eid, webs_t wp, int argc, char_t **argv)
2276 websWrite(wp, "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
2277 websWrite(wp, "<tr>\n");
2278 websWrite(wp, "<th width=\"310\" valign=\"top\" rowspan=\"6\"\n");
2279 websWrite(wp, "onMouseOver=\"return overlib(\'These are the LAN interfaces on which multicast routers are present. IGMP Report frames are forwared to these ports.\', LEFT);\"\n");
2280 websWrite(wp, "onMouseOut=\"return nd();\">\n");
2281 websWrite(wp, "<input type=\"hidden\" name=\"emf_rtport_entry\" value=\"5\">\n");
2282 websWrite(wp, "Multicast Router / IGMP Forwarding Ports:&nbsp;&nbsp;\n");
2283 websWrite(wp, "</th>\n");
2284 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2285 websWrite(wp, "<td class=\"label\">Interface</td>\n");
2286 websWrite(wp, "<td></td>\n");
2287 websWrite(wp, "</tr>\n");
2288 websWrite(wp, "<tr>\n");
2289 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2291 websWrite(wp, "<td><input name=\"emf_rtport_entry_if0\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2292 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2293 websWrite(wp, "<td></td>\n");
2294 websWrite(wp, "</tr>\n");
2295 websWrite(wp, "<tr>\n");
2296 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2298 websWrite(wp, "<td><input name=\"emf_rtport_entry_if1\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2299 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2300 websWrite(wp, "<td></td>\n");
2301 websWrite(wp, "</tr>\n");
2302 websWrite(wp, "<tr>\n");
2303 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2305 websWrite(wp, "<td><input name=\"emf_rtport_entry_if2\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2306 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2307 websWrite(wp, "<td></td>\n");
2308 websWrite(wp, "</tr>\n");
2309 websWrite(wp, "<tr>\n");
2310 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2312 websWrite(wp, "<td><input name=\"emf_rtport_entry_if3\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2313 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2314 websWrite(wp, "<td></td>\n");
2315 websWrite(wp, "</tr>\n");
2316 websWrite(wp, "<tr>\n");
2317 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2319 websWrite(wp, "<td><input name=\"emf_rtport_entry_if4\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>\n", value);
2320 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2321 websWrite(wp, "<td></td>\n");
2322 websWrite(wp, "</tr>\n");
2323 websWrite(wp, "</table>\n");
2330 ej_ses_wds_mode_list(int eid, webs_t wp, int argc, char_t **argv)
2332 websWrite(wp, "<option value=\"0\" %s>Disabled</option>\n",
2334 websWrite(wp, "<option value=\"1\" %s>Auto</option>\n",
2336 websWrite(wp, "<option value=\"2\" %s>Configurator(Reg+WDS)</option>\n",
2338 websWrite(wp, "<option value=\"3\" %s>Configurator(WDS only)</option>\n",
2341 websWrite(wp, "<option value=\"4\" %s>Client</option>\n",
2347 ej_wl_radio_roam_option(int eid, webs_t wp, int argc, char_t **argv)
2354 websError(wp, 400, "unit number variable doesn't exist\n");
2360 websError(wp, 400, "Could not find: %s\n",strcat_r(prefix, "ifname", tmp));
2368 websWrite(wp, "<input type=\"submit\" name=\"action\" value=\"RadioOff\" >");
2370 websWrite(wp, "<input type=\"submit\" name=\"action\" value=\"RadioOn\" >");
2378 ej_wet_tunnel_display(int eid, webs_t wp, int argc, char_t **argv)
2388 websError(wp, 400, "unit number variable doesn't exist\n");
2405 websWrite(wp, "<p>\n");
2406 websWrite(wp, "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
2407 websWrite(wp, "<tr>\n");
2408 websWrite(wp, "<th width=\"310\"\n");
2409 websWrite(wp, "onMouseOver=\"return overlib(\'Enable/Disable WET tunnel\', LEFT);\"\n");
2410 websWrite(wp, "onMouseOut=\"return nd();\">\n");
2411 websWrite(wp, "WET Tunnel:&nbsp;&nbsp;\n");
2412 websWrite(wp, "</th>\n");
2413 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2414 websWrite(wp, "<td>\n");
2415 websWrite(wp, "<select name=\"wl_wet_tunnel\">\n");
2416 websWrite(wp, "<option value=\"1\" %s>Enabled</option>", nvram_match("wl_wet_tunnel", "1") ? "selected": "\n");
2417 websWrite(wp, "<option value=\"0\" %s>Disabled</option>", nvram_match("wl_wet_tunnel", "0") ? "selected": "\n");
2418 websWrite(wp, "</select>\n");
2419 websWrite(wp, "</td>\n");
2420 websWrite(wp, "</tr>\n");
2421 websWrite(wp, "</table>\n");
2428 ej_trf_mgmt_rssi_policy_display(int eid, webs_t wp, int argc, char_t **argv)
2438 websError(wp, 400, "unit number variable doesn't exist\n");
2455 websWrite(wp, "<p>\n");
2456 websWrite(wp, "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
2457 websWrite(wp, "<tr>\n");
2458 websWrite(wp, "<th width=\"310\"\n");
2459 websWrite(wp, "onMouseOver=\"return overlib(\'Set to map lowest RSSI STA to low priority(BE) or disable.\', LEFT);\"\n");
2460 websWrite(wp, "onMouseOut=\"return nd();\">\n");
2461 websWrite(wp, "Traffic Management RSSI Policy:&nbsp;&nbsp;\n");
2462 websWrite(wp, "</th>\n");
2463 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
2464 websWrite(wp, "<td>\n");
2465 websWrite(wp, "<select name=\"wl_trf_mgmt_rssi_policy\">\n");
2466 websWrite(wp, "<option value=\"0\" %s>None</option>", nvram_match("wl_trf_mgmt_rssi_policy", "0") ? "selected": "\n");
2467 websWrite(wp, "<option value=\"1\" %s>Lowest RSSI</option>", nvram_match("wl_trf_mgmt_rssi_policy", "1") ? "selected": "\n");
2468 websWrite(wp, "</select>\n");
2469 websWrite(wp, "</td>\n");
2470 websWrite(wp, "</tr>\n");
2471 websWrite(wp, "</table>\n");
2488 ej_get_mnt_path(int eid, webs_t wp, int argc, char_t **argv)
2508 return websWrite(wp, mntpath);
2536 static int ej_wps_process(int eid, webs_t wp, int argc, char_t **argv);
2537 static int ej_wps_current_mode(int eid, webs_t wp, int argc, char_t **argv, int wps_sta);
2538 static int ej_wps_start(int eid, webs_t wp, int argc, char_t **argv, int wps_sta);
2539 static int ej_wps_credentials(int eid, webs_t wp, int argc, char_t **argv, int wps_sta);
2540 static int ej_wps_enr_scan_result(int eid, webs_t wp, int argc, char_t **argv);
2541 static int ej_wps_enr_process(int eid, webs_t wp, int argc, char_t **argv);
2635 ej_wps_nfc_dm_status(int eid, webs_t wp, int argc, char_t **argv)
2645 websWrite(wp, "Successful Initiated");
2648 websWrite(wp, "Initiating");
2651 websWrite(wp, "Error: code %d\n", wps_nfc_dm_status);
2663 ej_wps_display(int eid, webs_t wp, int argc, char_t **argv)
2675 if ((value = websGetVar(wp, "wl_unit", NULL))) {
2681 websError(wp, 400, "unit number variable doesn't exist\n");
2695 if ((value = websGetVar(wp, "wps_action", NULL))) {
2719 if ((value = websGetVar(wp, "wps_method", NULL))) {
2729 websWrite(wp,"<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
2731 websWrite(wp, "<tr>"
2740 ej_wps_current_mode(eid, wp, argc, argv, wps_sta);
2741 websWrite(wp, "</td> </tr>");
2742 websWrite(wp, "<tr><th width=\"310\"></th><td>&nbsp;&nbsp;</td><td></td></tr>\n");
2744 websWrite(wp, "<tr>"
2752 websWrite(wp,"<select name=\"wl_wps_mode\" onChange=\"wps_config_change();\">");
2756 websWrite(wp, "<option value=\"enabled\" selected>Enabled</option>");
2757 websWrite(wp, "<option value=\"disabled\">Disabled</option>");
2760 websWrite(wp, "<option value=\"enabled\">Enabled</option>");
2761 websWrite(wp, "<option value=\"disabled\" selected>Disabled</option>");
2764 websWrite(wp, "</select> </td> </tr>\n");
2768 websWrite(wp, "</table>\n");
2773 websWrite(wp,"<tr>"
2781 websWrite(wp,"<td>%s</td><td>&nbsp;&nbsp;",str);
2782 websWrite(wp, "</td></tr>\n");
2785 websWrite(wp,"<tr>"
2793 websWrite(wp,"<td>%s",str);
2797 websWrite(wp, "&nbsp;&nbsp;&nbsp;<input type=\"submit\" name=\"action\" value=\"Generate\">");
2799 websWrite(wp,"</td></tr>\n");
2802 websWrite(wp, "<tr>"
2810 websWrite(wp, "<select name=\"wps_wer_mode\">");
2812 websWrite(wp, "<option value=\"allow\" selected>Allow</option>");
2813 websWrite(wp, "<option value=\"deny\" >Deny</option>");
2816 websWrite(wp, "<option value=\"allow\" >Allow</option>");
2817 websWrite(wp, "<option value=\"deny\" selected>Deny</option>");
2819 websWrite(wp, "</select> </td> </tr>\n");
2822 websWrite(wp, "<tr><th width=\"310\"></th><td>&nbsp;&nbsp;</td><td></td></tr>\n");
2829 websWrite(wp,"<tr>"
2837 websWrite(wp, "<select name=\"wps_ap_list\">");
2838 ej_wps_enr_scan_result(eid, wp, argc, argv);
2839 websWrite(wp, "</select>");
2841 websWrite(wp, "&nbsp;&nbsp;<input type=\"submit\" name=\"action\" value=\"Rescan\">");
2842 websWrite(wp, "</td></tr>\n");
2849 websWrite(wp, "<tr>"
2857 websWrite(wp, "<select name=\"wps_action\" onChange=\"submit();\">");
2858 websWrite(wp, "<option value=\"Enroll\"%s>Enroll</option>",
2860 websWrite(wp, "<option value=\"ConfigAP\"%s >Config AP</option>",
2862 websWrite(wp, "<option value=\"GetAPConfig\" %s>Get AP Config</option>",
2865 websWrite(wp, "<tr><th width=\"310\"></th><td>&nbsp;&nbsp;</td><td></td></tr>\n");
2869 websWrite(wp, "<tr><th width=\"310\"></th><td>&nbsp;&nbsp;</td>"
2875 ej_wps_credentials(eid, wp, argc, argv, wps_sta);
2878 websWrite(wp, "<tr><th width=\"310\"></th><td>&nbsp;&nbsp;</td><td></td></tr>\n");
2882 websWrite(wp, "<tr>"
2890 websWrite(wp, "<select name=\"wps_method\">");
2892 websWrite(wp, "<option value=\"PBC\"%s>PBC</option>",
2895 websWrite(wp, "<option value=\"PIN\" %s>PIN</option>",
2899 websWrite(wp, "<option value=\"NFC\" %s>NFC</option>",
2903 websWrite(wp, "</select>&nbsp;&nbsp;If PIN is selected, please set PIN \"%s\" to the WPS AP or registrar.</td> </tr>\n",
2909 websWrite(wp,"<tr>"
2916 websWrite(wp,"<td><input name=\"wps_sta_pin\" value=\"\" size=\"9\" maxlength=\"9\"> Note: Empty for PBC method.");
2917 websWrite(wp, "</td></tr>\n");
2920 websWrite(wp,"<tr>"
2927 websWrite(wp,"<td><input name=\"wps_autho_sta_mac\" value=\"\" size=\"17\" maxlength=\"17\">");
2931 websWrite(wp, "<tr>"
2938 websWrite(wp,"<td><input name=\"wps_ap_pin\" value=\"\" size=\"9\" maxlength=\"9\">");
2939 websWrite(wp, "</td> </tr>\n");
2942 websWrite(wp, "<tr>"
2950 websWrite(wp, "<select name=\"wps_method\">");
2951 websWrite(wp, "<option value=\"PIN\" %s>PIN</option>",
2954 websWrite(wp, "<option value=\"NFC\" %s>NFC</option>",
2958 websWrite(wp, "&nbsp;&nbsp;");
2960 ej_wps_start(eid, wp, argc, argv, wps_sta);
2971 websWrite(wp, "<tr>"
2978 websWrite(wp, "<tr>");
2979 websWrite(wp, "<th width=\"310\">"
2982 websWrite(wp, "<td>%s</td>\n", nvram_safe_get("wps_pinfail_mac"));
2985 websWrite(wp, "<tr>");
2986 websWrite(wp, "<th width=\"310\">"
2989 websWrite(wp, "<td>%s</td>\n", nvram_safe_get("wps_pinfail_name"));
3006 websWrite(wp, "<tr>");
3007 websWrite(wp, "<th width=\"310\">&nbsp;&nbsp;</th><td>&nbsp;&nbsp;</td>\n");
3008 websWrite(wp, "<td><b>ATTACKER WARNING<br>%s</b></td>\n", warning_msg);
3013 websWrite(wp, "<tr>"
3020 websWrite(wp, "<tr>"
3029 ej_wps_process(eid, wp, argc, argv);
3031 ej_wps_enr_process(eid, wp, argc, argv);
3033 websWrite(wp, "</td> </tr>\n");
3034 websWrite(wp, "</table>\n");
3039 websWrite(wp, "<p>\n");
3040 websWrite(wp,"<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
3044 websWrite(wp,"<tr>"
3052 websWrite(wp,"<td><input type=\"submit\" name=\"action\" value=\"NFC Write Configuration\">&nbsp;&nbsp");
3053 websWrite(wp, "<input type=\"submit\" name=\"action\" value=\"NFC Read Configuration\">");
3054 websWrite(wp, "</td></tr>\n");
3060 websWrite(wp,"<tr>"
3067 websWrite(wp,"<td><input type=\"submit\" name=\"action\" value=\"NFC Read Configuration\">");
3071 websWrite(wp,"<tr>"
3078 websWrite(wp,"<td><input type=\"submit\" name=\"action\" value=\"NFC Write Configuration\">");
3080 websWrite(wp, "</td></tr>\n");
3085 websWrite(wp,"<tr>"
3093 websWrite(wp,"<td><input type=\"submit\" name=\"action\" value=\"NFC Add Enrollee\">&nbsp;&nbsp");
3094 websWrite(wp, "<input type=\"submit\" name=\"action\" value=\"NFC Config AP\">");
3095 websWrite(wp, "</td></tr>\n");
3101 websWrite(wp,"<tr>"
3108 websWrite(wp,"<td><input type=\"submit\" name=\"action\" value=\"NFC Hand Over As Selecotr\">&nbsp;&nbsp");
3109 websWrite(wp, "<input type=\"submit\" name=\"action\" value=\"NFC Hand Over As Requester\">");
3110 websWrite(wp, "</td></tr>\n");
3117 websWrite(wp,"<tr>"
3124 websWrite(wp,"<td><input type=\"submit\" name=\"action\" value=\"NFC Hand Over As Requester\">");
3128 websWrite(wp,"<tr>"
3135 websWrite(wp,"<td><input type=\"submit\" name=\"action\" value=\"NFC Hand Over As Selecotr\">");
3139 websWrite(wp,"<tr>"
3146 websWrite(wp,"<td><input type=\"submit\" name=\"action\" value=\"NFC Hand Over As Selecotr\">&nbsp;&nbsp");
3147 websWrite(wp,"<td><input type=\"submit\" name=\"action\" value=\"NFC Hand Over As Requester\">");
3149 websWrite(wp, "</td></tr>\n");
3154 websWrite(wp, "<tr>"
3162 ej_wps_nfc_dm_status(eid, wp, argc, argv);
3164 websWrite(wp, "</table>");
3170 websWrite(wp, "<p>\n");
3172 websWrite(wp,"<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
3175 websWrite(wp, "<tr>\n"
3183 websWrite(wp, "<select name=\"wps_version2\" onChange=\"wps_version2_change();\">\n");
3185 websWrite(wp, "<option value=\"enabled\" selected>V2</option>\n");
3186 websWrite(wp, "<option value=\"disabled\">V1</option>\n");
3189 websWrite(wp, "<option value=\"enabled\">V2</option>\n");
3190 websWrite(wp, "<option value=\"disabled\" selected>V1</option>\n");
3192 websWrite(wp, "</select> </td> </tr>\n");
3195 websWrite(wp,"<tr>\n"
3203 websWrite(wp,"<td><input name=\"wps_version2_num\" value=\"%s\" size=\"2\" maxlength=\"2\">\n",
3205 websWrite(wp, "</td> </tr>\n");
3208 websWrite(wp,"<tr>\n"
3216 websWrite(wp,"<td><input name=\"wps_ie_frag\" value=\"%s\" size=\"4\" maxlength=\"4\">\n",
3218 websWrite(wp, "</td> </tr>\n");
3221 websWrite(wp,"<tr>\n"
3229 websWrite(wp,"<td><input name=\"wps_eap_frag\" value=\"%s\" size=\"4\" maxlength=\"4\">\n",
3231 websWrite(wp, "</td> </tr>\n");
3234 websWrite(wp, "<tr>\n"
3242 websWrite(wp,"<td><input name=\"wps_nattr\" value=\"%s\" size=\"32\" maxlength=\"127\">\n",
3244 websWrite(wp, "</td> </tr>\n");
3247 websWrite(wp, "<tr>\n"
3255 websWrite(wp, "<select name=\"wps_zpadding\">\n");
3257 websWrite(wp, "<option value=\"1\" selected>YES</option>\n");
3258 websWrite(wp, "<option value=\"0\">NO</option>\n");
3261 websWrite(wp, "<option value=\"1\">YES</option>\n");
3262 websWrite(wp, "<option value=\"0\" selected>NO</option>\n");
3264 websWrite(wp, "</select> </td> </tr>\n");
3267 websWrite(wp, "<tr>\n"
3275 websWrite(wp, "<select name=\"wps_mca\">\n");
3277 websWrite(wp, "<option value=\"1\" selected>YES</option>\n");
3278 websWrite(wp, "<option value=\"0\">NO</option>\n");
3281 websWrite(wp, "<option value=\"1\">YES</option>\n");
3282 websWrite(wp, "<option value=\"0\" selected>NO</option>\n");
3284 websWrite(wp, "</select> </td> </tr>\n");
3288 websWrite(wp, "</table>");
3298 ej_wps_config_change_display(int eid, webs_t wp, int argc, char_t **argv)
3308 websError(wp, 400, "unit number variable doesn't exist\n");
3328 websWrite(wp," var wps_sta = \"%d\";\n", wps_sta);
3329 websWrite(wp," var wl_closed = \"%s\";\n", closed);
3330 websWrite(wp," var msg = \"Enable WPS will change the SSID Network Type to Open, Are you sure?\";\n");
3332 websWrite(wp," if ((wps_sta == \"0\") && (wl_closed == \"1\") &&\n");
3333 websWrite(wp," (document.forms[0].wl_wps_mode.value == \"enabled\") && !confirm(msg)) {\n");
3334 websWrite(wp," document.forms[0].wl_wps_mode.value = \"disabled\";\n");
3335 websWrite(wp," }\n");
3342 ej_wps_current_psk_window_display(int eid, webs_t wp, int argc, char_t **argv)
3350 websError(wp, 400, "unit number variable doesn't exist\n");
3356 websWrite(wp," var psk_window = window.open(\"\", \"\", \"toolbar=no,scrollbars=yes,width=400,height=100\");\n");
3357 websWrite(wp," psk_window.document.write(\"The WPA passphrase is %s\");\n", value);
3358 websWrite(wp," psk_window.document.close();\n");
3364 ej_wps_psk_window_display(int eid, webs_t wp, int argc, char_t **argv)
3383 websError(wp, 400, "unit number variable doesn't exist\n");
3391 websWrite(wp," var psk_window = window.open(\"\", \"\", \"toolbar=no,scrollbars=yes,width=400,height=100\");\n");
3392 websWrite(wp," psk_window.document.write(\"The WPA passphrase is %s\");\n", psk);
3393 websWrite(wp," psk_window.document.close();\n");
3399 ej_wps_closed_check_display(int eid, webs_t wp, int argc, char_t **argv)
3403 websWrite(wp," var msg = \"Selecting Closed hides the network will disable the WPS, Are you sure?\";\n\n");
3405 websWrite(wp," if (document.forms[0].wl_closed.value == \"1\" && !confirm(msg))\n");
3406 websWrite(wp," document.forms[0].wl_closed.value = \"0\";\n");
3415 ej_wps_wep_change_display(int eid, webs_t wp, int argc, char_t **argv)
3418 websWrite(wp," var mode = document.forms[0].wl_auth_mode[document.forms[0].wl_auth_mode.selectedIndex].value;\n");
3419 websWrite(wp," var wep = document.forms[0].wl_wep[document.forms[0].wl_wep.selectedIndex].value;\n");
3420 websWrite(wp," var wpa = document.forms[0].wl_akm_wpa[document.forms[0].wl_akm_wpa.selectedIndex].value;\n");
3421 websWrite(wp," var psk = document.forms[0].wl_akm_psk[document.forms[0].wl_akm_psk.selectedIndex].value;\n");
3422 websWrite(wp," var wpa2 = document.forms[0].wl_akm_wpa2[document.forms[0].wl_akm_wpa2.selectedIndex].value;\n");
3423 websWrite(wp," var psk2 = document.forms[0].wl_akm_psk2[document.forms[0].wl_akm_psk2.selectedIndex].value;\n");
3424 websWrite(wp," var brcm_psk = document.forms[0].wl_akm_brcm_psk[document.forms[0].wl_akm_brcm_psk.selectedIndex].value;\n");
3425 websWrite(wp," var wps_mode = document.forms[0].wl_wps_mode.value;\n");
3426 websWrite(wp," var msg = \"Selecting WEP Encryption will disable the WPS, Are you sure?\";\n\n");
3429 websWrite(wp," if (wep == \"enabled\" && wps_mode == \"enabled\" &&\n");
3430 websWrite(wp," wpa != \"enabled\" && psk != \"enabled\" &&\n");
3431 websWrite(wp," wpa2 != \"enabled\" && psk2 != \"enabled\" &&\n");
3432 websWrite(wp," brcm_psk != \"enabled\" && mode != \"radius\") {\n");
3433 websWrite(wp," if (confirm(msg))\n");
3434 websWrite(wp," document.forms[0].wl_wps_mode.value = \"disabled\";\n");
3435 websWrite(wp," else\n");
3436 websWrite(wp," document.forms[0].wl_wep.selectedIndex = 1;\n");
3437 websWrite(wp," }\n");
3445 ej_wps_get_ap_config_submit_display(int eid, webs_t wp, int argc, char_t **argv)
3459 websWrite(wp," var unconfig, i;\n");
3460 websWrite(wp," var ap_index=document.forms[0].wps_ap_list.selectedIndex;\n");
3461 websWrite(wp," var str = \"Selected AP is UNCONFIGURED! Do you want to configure it using random credential?\";\n\n");
3478 websWrite(wp," unconfig = new Array(%s);\n", buf);
3480 websWrite(wp," for (var i in unconfig) {\n");
3481 websWrite(wp," if (unconfig[i] == ap_index)\n");
3482 websWrite(wp," return confirm(str);\n");
3483 websWrite(wp," };\n");
3484 websWrite(wp," return 1;\n");
3491 ej_wps_akm_change_display(int eid, webs_t wp, int argc, char_t **argv)
3495 websWrite(wp," var akm = document.forms[0].wps_akm[document.forms[0].wps_akm.selectedIndex].value;\n");
3496 websWrite(wp," var action = document.forms[0].wps_action.value;\n");
3498 websWrite(wp," if (action == \"ConfigAP\" || action == \"AddEnrollee\") {\n");
3499 websWrite(wp," if (akm ==\"0\") {\n");
3500 websWrite(wp," document.forms[0].wps_crypto.disabled = 1;\n");
3501 websWrite(wp," document.forms[0].wps_crypto.value = \"0\";\n");
3502 websWrite(wp," document.forms[0].wps_psk.disabled = 1;\n");
3503 websWrite(wp," }\n");
3504 websWrite(wp," else {\n");
3505 websWrite(wp," document.forms[0].wps_crypto.disabled = 0;\n");
3506 websWrite(wp," document.forms[0].wps_psk.disabled = 0;\n");
3507 websWrite(wp," }\n");
3508 websWrite(wp," }\n");
3515 ej_wps_refresh(int eid, webs_t wp, int argc, char_t **argv)
3519 websWrite(wp, "0");
3526 websWrite(wp, "%d", interval);
3533 ej_wps_security_pre_submit_display(int eid, webs_t wp, int argc, char_t **argv)
3536 websWrite(wp," var auth = document.forms[0].wl_auth[document.forms[0].wl_auth.selectedIndex].value;\n");
3537 websWrite(wp," var mode = document.forms[0].wl_auth_mode[document.forms[0].wl_auth_mode.selectedIndex].value;\n");
3538 websWrite(wp," var wep = document.forms[0].wl_wep[document.forms[0].wl_wep.selectedIndex].value;\n");
3539 websWrite(wp," var wpa = document.forms[0].wl_akm_wpa[document.forms[0].wl_akm_wpa.selectedIndex].value;\n");
3540 websWrite(wp," var psk = document.forms[0].wl_akm_psk[document.forms[0].wl_akm_psk.selectedIndex].value;\n");
3541 websWrite(wp," var wpa2 = document.forms[0].wl_akm_wpa2[document.forms[0].wl_akm_wpa2.selectedIndex].value;\n");
3542 websWrite(wp," var psk2 = document.forms[0].wl_akm_psk2[document.forms[0].wl_akm_psk2.selectedIndex].value;\n");
3543 websWrite(wp," var brcm_psk = document.forms[0].wl_akm_brcm_psk[document.forms[0].wl_akm_brcm_psk.selectedIndex].value;\n");
3544 websWrite(wp," var wps_mode = document.forms[0].wl_wps_mode.value;\n");
3545 websWrite(wp," var crypto = document.forms[0].wl_crypto[document.forms[0].wl_crypto.selectedIndex].value;\n");
3546 websWrite(wp," var open_str = \"Are you sure to configure WPS in Open security?\";\n");
3547 websWrite(wp," var shared_str = \"WPS dose not support Shared 802.11 authentication. Are you sure to configure WPS in Shared authentication? Yes will force disable WPS.\";\n");
3548 websWrite(wp," var psk2_str = \"WPS only support WPA2-PSK or WPA2-PSK+WPA-PSK mixed mode authentication key management. Are you sure your settings are correct? Yes will force disable WPS.\";\n");
3549 websWrite(wp," var tkip_str = \"WPS does not support TKIP only WPA encryption. Are you sure your settings are correct? Yes will force disable WPS.\";\n");
3550 websWrite(wp," var wep_str = \"WPS dose not support WEP encryptipon. Are you sure to configure WPS in WEP mode? Yes will force disable WPS.\";\n\n");
3553 websWrite(wp," if (wps_mode == \"enabled\") {\n");
3555 websWrite(wp," if (auth == \"0\" && wep == \"disabled\" &&\n");
3556 websWrite(wp," wpa == \"disabled\" && psk == \"disabled\" &&\n");
3557 websWrite(wp," wpa2 == \"disabled\" && psk2 == \"disabled\" &&\n");
3558 websWrite(wp," brcm_psk != \"enabled\" && mode != \"radius\")\n");
3559 websWrite(wp," return confirm(open_str);\n");
3562 websWrite(wp," if (auth == \"1\")\n");
3563 websWrite(wp," return confirm(shared_str);\n");
3566 websWrite(wp," if (wpa == \"enabled\" || psk == \"enabled\" || wpa2 == \"enabled\" ||psk2 == \"enabled\") {\n");
3567 websWrite(wp," if (psk2 != \"enabled\")\n");
3568 websWrite(wp," return confirm(psk2_str);\n");
3570 websWrite(wp," if (crypto == \"tkip\")\n");
3571 websWrite(wp," return confirm(tkip_str);\n");
3572 websWrite(wp," }\n");
3573 websWrite(wp," else {\n");
3575 websWrite(wp," if (wep == \"enabled\" &&\n");
3576 websWrite(wp," wpa != \"enabled\" && psk != \"enabled\" &&\n");
3577 websWrite(wp," wpa2 != \"enabled\" && psk2 != \"enabled\" &&\n");
3578 websWrite(wp," brcm_psk != \"enabled\" && mode != \"radius\")\n");
3579 websWrite(wp," return confirm(wep_str);\n");
3580 websWrite(wp," }\n");
3581 websWrite(wp," }\n");
3589 wl_radio_onoff(webs_t wp, int disable)
3597 websError(wp, 400, "unit number variable doesn't exist\n");
3610 websWrite(wp, "Interface is not Enabled...");
3615 websWrite(wp, "Interface status UnKnown...");
3631 ej_nvram_get(int eid, webs_t wp, int argc, char_t **argv)
3637 websError(wp, 400, "Insufficient args\n");
3646 ret += websWrite(wp, "%c", *c);
3648 ret += websWrite(wp, "&#%d;", *c);
3656 ej_wl_get_bridge(int eid, webs_t wp, int argc, char_t **argv)
3666 if ((wl_bssid = websGetVar(wp, "wl_bssid", NULL)) && (atoi(wl_bssid)))
3671 websWrite(wp, "<option value=%s selected >LAN </option>\n","0" );
3672 websWrite(wp, "<option value=%s >Guest</option>\n","1" );
3678 websError(wp, 400, "unit number variable doesn't exist\n");
3697 websWrite(wp, "<option value=%s selected >LAN </option>\n","0" );
3698 websWrite(wp, "<option value=%s >Guest</option>\n","1" );
3701 websWrite(wp, "<option value=%s >LAN </option>\n","0" );
3702 websWrite(wp, "<option value=%s selected >Guest</option>\n","1" );
3715 ej_nvram_match(int eid, webs_t wp, int argc, char_t **argv)
3720 websError(wp, 400, "Insufficient args\n");
3729 return websWrite(wp, output);
3741 ej_nvram_match_bitflag(int eid, webs_t wp, int argc, char_t **argv)
3747 websError(wp, HTTP_ERR_BAD_REQUEST, "Insufficient args\n");
3756 return websWrite(wp, output);
3768 ej_nvram_get_bitflag(int eid, webs_t wp, int argc, char_t ** argv)
3775 websError(wp, HTTP_ERR_BAD_REQUEST, "Insufficient args\n");
3781 ret += websWrite(wp, (ptr ? ptr : "0"));
3786 wl_print_chanspec_list(webs_t wp, char *name, char *abbrev, int band, int bw)
3838 websWrite(wp, "\t\tif (country == \"%s\")\n\t\t\tchanspecs = new Array(\"0\"", abbrev);
3847 websWrite(wp, ", \"%s\"", wf_chspec_ntoa(c, chanbuf));
3849 websWrite(wp, ");\n");
3851 websWrite(wp, "\t\tif (country == \"%s\")\n\t\t\tchanspecs = new Array(\"N/A\");\n", abbrev);
3862 ej_wl_country_list(int eid, webs_t wp, int argc, char_t **argv)
3879 websError(wp, 400, "Insufficient args\n");
3886 websError(wp, 400, "unit number variable doesn't exist\n");
3928 websWrite(wp, "\t\tvar countries = new Array(");
3931 websWrite(wp, "\"%s\"", abbrev);
3933 websWrite(wp, ", ");
3935 websWrite(wp, ");\n");
3941 websWrite(wp, "\t\tdocument.forms[0].wl_country_code[%d] = new Option(\"%s\", \"%s\");\n",
3953 wl_print_country_rev_list(webs_t wp, char *name, char *abbrev)
3985 websWrite(wp, "\t\tif (country == \"%s\")\n\t\t\tcountry_revs = new Array(",
3989 websWrite(wp, "\"%d\"", c);
3991 websWrite(wp, ", ");
3993 websWrite(wp,");\n");
4001 ej_wl_country_rev_list(int eid, webs_t wp, int argc, char_t **argv)
4018 websError(wp, 400, "Insufficient args\n");
4025 websError(wp, 400, "unit number variable doesn't exist\n");
4070 wl_print_country_rev_list(wp, name, abbrev);
4082 ej_wl_chanspec_list(int eid, webs_t wp, int argc, char_t **argv)
4100 websError(wp, 400, "Insufficient args\n");
4106 websError(wp, 400, "unit number variable doesn't exist\n");
4152 wl_print_chanspec_list(wp, name, abbrev, band, bw);
4165 auth_list_sta(webs_t wp, char *name, struct ether_addr *ea)
4178 websWrite(wp, "<td>%s</td>", ether_etoa((unsigned char *)ea, ea_str));
4179 websWrite(wp, "<td>%s</td>", (f & WL_STA_ASSOC) ? reltime_short(sta->in) : "-");
4180 websWrite(wp, "<td>%s</td>", (f & WL_STA_AUTHO) ? "Yes" : "No");
4181 websWrite(wp, "<td>%s</td>", (f & WL_STA_WME) ? "Yes" : "No");
4182 websWrite(wp, "<td>%s</td>", (f & WL_STA_PS) ? "Yes" : "No");
4183 websWrite(wp, "<td>%s%s%s%s&nbsp;</td>",
4192 ej_wl_auth_list(int eid, webs_t wp, int argc, char_t **argv)
4202 if ((wl_bssid = websGetVar(wp, "wl_bssid", NULL)) && (atoi(wl_bssid)))
4206 websError(wp, 400, "unit number variable doesn't exist\n");
4233 websWrite(wp, "<tr align=\"center\">");
4234 auth_list_sta(wp, name, &mac_list->ea[i]);
4235 websWrite(wp, "</tr>");
4250 ej_nvram_invmatch(int eid, webs_t wp, int argc, char_t **argv)
4255 websError(wp, 400, "Insufficient args\n");
4264 return websWrite(wp, output);
4276 ej_nvram_list(int eid, webs_t wp, int argc, char_t **argv)
4283 websError(wp, 400, "Insufficient args\n");
4289 return websWrite(wp, word);
4296 ej_nvram_inlist(int eid, webs_t wp, int argc, char_t **argv)
4302 websError(wp, 400, "Insufficient args\n");
4308 return websWrite(wp, output);
4315 ej_nvram_invinlist(int eid, webs_t wp, int argc, char_t **argv)
4321 websError(wp, 400, "Insufficient args\n");
4330 return websWrite(wp, output);
4340 ej_nvram_indexmatch(int eid, webs_t wp, int argc, char_t **argv)
4347 websError(wp, 400, "Insufficient args\n");
4357 return websWrite(wp, output);
4368 ej_filter_client(int eid, webs_t wp, int argc, char_t **argv)
4383 websError(wp, 400, "Insufficient args\n");
4390 ret += websWrite(wp, "<tr>");
4391 ret += websWrite(wp, "<td></td>");
4394 ret += websWrite(wp, "<td><input name=\"filter_client_from_start%d\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>",
4396 ret += websWrite(wp, "<td>-</td>");
4397 ret += websWrite(wp, "<td><input name=\"filter_client_from_end%d\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>",
4399 ret += websWrite(wp, "<td></td>");
4402 ret += websWrite(wp, "<td>");
4403 ret += websWrite(wp, "<select name=\"filter_client_proto%d\">", i);
4404 ret += websWrite(wp, "<option value=\"tcp\" %s>TCP</option>",
4406 ret += websWrite(wp, "<option value=\"udp\" %s>UDP</option>",
4408 ret += websWrite(wp, "</select>");
4409 ret += websWrite(wp, "</td>");
4410 ret += websWrite(wp, "<td></td>");
4417 ret += websWrite(wp, "<td><input name=\"filter_client_to_start%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
4419 ret += websWrite(wp, "<td>-</td>");
4424 ret += websWrite(wp, "<td><input name=\"filter_client_to_end%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
4426 ret += websWrite(wp, "<td></td>");
4429 ret += websWrite(wp, "<td>");
4430 ret += websWrite(wp, "<select name=\"filter_client_from_day%d\">", i);
4432 ret += websWrite(wp, "<option value=\"%d\" %s>%s</option>",
4434 ret += websWrite(wp, "</select>");
4435 ret += websWrite(wp, "</td>");
4436 ret += websWrite(wp, "<td>-</td>");
4437 ret += websWrite(wp, "<td>");
4438 ret += websWrite(wp, "<select name=\"filter_client_to_day%d\">", i);
4440 ret += websWrite(wp, "<option value=\"%d\" %s>%s</option>",
4442 ret += websWrite(wp, "</select>");
4443 ret += websWrite(wp, "</td>");
4444 ret += websWrite(wp, "<td></td>");
4447 ret += websWrite(wp, "<td>");
4448 ret += websWrite(wp, "<select name=\"filter_client_from_sec%d\">", i);
4450 ret += websWrite(wp, "<option value=\"%d\" %s>%s</option>",
4452 ret += websWrite(wp, "</select>");
4453 ret += websWrite(wp, "</td>");
4454 ret += websWrite(wp, "<td>-</td>");
4456 ret += websWrite(wp, "<td>");
4457 ret += websWrite(wp, "<select name=\"filter_client_to_sec%d\">", i);
4459 ret += websWrite(wp, "<option value=\"%d\" %s>%s</option>",
4462 ret += websWrite(wp, "<option value=\"%d\" %s>12:00 AM</option>",
4464 ret += websWrite(wp, "</select>");
4465 ret += websWrite(wp, "</td>");
4466 ret += websWrite(wp, "<td></td>");
4469 ret += websWrite(wp, "<td><input type=\"checkbox\" name=\"filter_client_enable%d\" %s></td>",
4472 ret += websWrite(wp, "</tr>");
4483 ej_filter_url(int eid, webs_t wp, int argc, char_t **argv)
4493 websError(wp, 400, "Insufficient args\n");
4498 ret += websWrite(wp, "<p>");
4499 ret += websWrite(wp, "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
4500 ret += websWrite(wp, "<tr>");
4501 ret += websWrite(wp, "<th width=\"310\" valign=\"top\" rowspan=\"11\" ");
4502 ret += websWrite(wp, "onMouseOver=");
4503 ret += websWrite(wp,
4505 ret += websWrite(wp, "onMouseOut=\"return nd();\">");
4506 ret += websWrite(wp, "<input type=\"hidden\" name=\"filter_url\" value=\"10\">");
4507 ret += websWrite(wp, "URL Filters:&nbsp;&nbsp;");
4508 ret += websWrite(wp, "</th>");
4509 ret += websWrite(wp, "<td>&nbsp;&nbsp;</td>");
4510 ret += websWrite(wp, "<td class=\"label\" colspan=\"3\">LAN IP Address Range</td>");
4511 ret += websWrite(wp, "<td>&nbsp;</td>");
4512 ret += websWrite(wp, "<td class=\"label\">URL filter string</td>");
4513 ret += websWrite(wp, "<td class=\"label\">Enabled</td>");
4514 ret += websWrite(wp, "</tr>");
4520 ret += websWrite(wp, "<tr>");
4521 ret += websWrite(wp, "<td></td>");
4524 ret += websWrite(wp, "<td><input name=\"filter_url_from_start%d\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>",
4526 ret += websWrite(wp, "<td>-</td>");
4527 ret += websWrite(wp, "<td><input name=\"filter_url_from_end%d\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>",
4529 ret += websWrite(wp, "<td></td>");
4532 ret += websWrite(wp, "<td><input name=\"filter_url_addr%d\" value=\"%s\" size=\"40\" maxlength=\"128\"></td>",
4536 ret += websWrite(wp, "<td><input type=\"checkbox\" name=\"filter_url_enable%d\" %s></td>",
4539 ret += websWrite(wp, "</tr>");
4543 ret += websWrite(wp, "</table>");
4554 ej_forward_port(int eid, webs_t wp, int argc, char_t **argv)
4562 websError(wp, 400, "Insufficient args\n");
4569 ret += websWrite(wp, "<tr>");
4570 ret += websWrite(wp, "<td></td>");
4573 ret += websWrite(wp, "<td>");
4574 ret += websWrite(wp, "<select name=\"forward_port_proto%d\">", i);
4575 ret += websWrite(wp, "<option value=\"tcp\" %s>TCP</option>",
4577 ret += websWrite(wp, "<option value=\"udp\" %s>UDP</option>",
4579 ret += websWrite(wp, "</select>");
4580 ret += websWrite(wp, "</td>");
4581 ret += websWrite(wp, "<td></td>");
4588 ret += websWrite(wp, "<td><input name=\"forward_port_from_start%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
4590 ret += websWrite(wp, "<td>-</td>");
4595 ret += websWrite(wp, "<td><input name=\"forward_port_from_end%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
4597 ret += websWrite(wp, "<td>></td>");
4600 ret += websWrite(wp, "<td><input name=\"forward_port_to_ip%d\" value=\"%s\" size=\"15\" maxlength=\"15\"></td>",
4602 ret += websWrite(wp, "<td>:</td>");
4609 ret += websWrite(wp, "<td><input name=\"forward_port_to_start%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
4611 ret += websWrite(wp, "<td>-</td>");
4616 ret += websWrite(wp, "<td><input name=\"forward_port_to_end%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
4618 ret += websWrite(wp, "<td></td>");
4621 ret += websWrite(wp, "<td><input type=\"checkbox\" name=\"forward_port_enable%d\" %s></td>",
4624 ret += websWrite(wp, "</tr>");
4631 ej_autofw_port_display(int eid, webs_t wp, int argc, char_t **argv)
4642 websError(wp, 400, "Insufficient args\n");
4647 ret += websWrite(wp, "<p>\n");
4648 ret += websWrite(wp, "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
4649 ret += websWrite(wp, "<tr>\n");
4650 ret += websWrite(wp, "<th width=\"310\" valign=\"top\" rowspan=\"11\" onMouseOver=\"return overlib('Automatically forward connections.', LEFT);\" onMouseOut=\"return nd();\">\n");
4651 ret += websWrite(wp, "<input type=\"hidden\" name=\"autofw_port\" value=\"5\">Application Specific Port Forwards:&nbsp;&nbsp;\n");
4652 ret += websWrite(wp, "</th>\n");
4653 ret += websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
4654 ret += websWrite(wp, "<td class=\"label\">Outbound<br>Protocol</td>\n");
4655 ret += websWrite(wp, "<td>&nbsp;</td>\n");
4656 ret += websWrite(wp, "<td class=\"label\">Outbound<br>Port Start</td>\n");
4657 ret += websWrite(wp, "<td>&nbsp;</td>\n");
4658 ret += websWrite(wp, "<td class=\"label\">Outbound<br>Port End</td>\n");
4659 ret += websWrite(wp, "<td>&nbsp;</td>\n");
4660 ret += websWrite(wp, "<td class=\"label\">Inbound<br>Protocol</td>\n");
4661 ret += websWrite(wp, "<td>&nbsp;</td>\n");
4662 ret += websWrite(wp, "<td class=\"label\">Inbound<br>Port Start</td>\n");
4663 ret += websWrite(wp, "<td></td>\n");
4664 ret += websWrite(wp, "<td class=\"label\">Inbound<br>Port End</td>\n");
4665 ret += websWrite(wp, "<td>&nbsp;</td>\n");
4666 ret += websWrite(wp, "<td class=\"label\">To<br>Port Start</td>\n");
4667 ret += websWrite(wp, "<td></td>\n");
4668 ret += websWrite(wp, "<td class=\"label\">To<br>Port End</td>\n");
4669 ret += websWrite(wp, "<td>&nbsp;</td>\n");
4670 ret += websWrite(wp, "<td class=\"label\">Enabled</td>\n");
4671 ret += websWrite(wp, "</tr>\n");
4677 ret += websWrite(wp, "<tr>");
4678 ret += websWrite(wp, "<td></td>");
4681 ret += websWrite(wp, "<td>");
4682 ret += websWrite(wp, "<select name=\"autofw_port_out_proto%d\">", i);
4683 ret += websWrite(wp, "<option value=\"tcp\" %s>TCP</option>",
4685 ret += websWrite(wp, "<option value=\"udp\" %s>UDP</option>",
4687 ret += websWrite(wp, "</select>");
4688 ret += websWrite(wp, "</td>");
4689 ret += websWrite(wp, "<td></td>");
4696 ret += websWrite(wp, "<td><input name=\"autofw_port_out_start%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
4698 ret += websWrite(wp, "<td>-</td>");
4703 ret += websWrite(wp, "<td><input name=\"autofw_port_out_end%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
4705 ret += websWrite(wp, "<td></td>");
4708 ret += websWrite(wp, "<td>");
4709 ret += websWrite(wp, "<select name=\"autofw_port_in_proto%d\">", i);
4710 ret += websWrite(wp, "<option value=\"tcp\" %s>TCP</option>",
4712 ret += websWrite(wp, "<option value=\"udp\" %s>UDP</option>",
4714 ret += websWrite(wp, "</select>");
4715 ret += websWrite(wp, "</td>");
4716 ret += websWrite(wp, "<td></td>");
4723 ret += websWrite(wp, "<td><input name=\"autofw_port_in_start%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
4725 ret += websWrite(wp, "<td>-</td>");
4730 ret += websWrite(wp, "<td><input name=\"autofw_port_in_end%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
4732 ret += websWrite(wp, "<td></td>");
4739 ret += websWrite(wp, "<td><input name=\"autofw_port_to_start%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
4741 ret += websWrite(wp, "<td>-</td>");
4746 ret += websWrite(wp, "<td><input name=\"autofw_port_to_end%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
4748 ret += websWrite(wp, "<td></td>");
4751 ret += websWrite(wp, "<td><input type=\"checkbox\" name=\"autofw_port_enable%d\" %s></td>",
4754 ret += websWrite(wp, "</tr>");
4757 ret += websWrite(wp, "</table>\n");
4771 ej_lan_route(int eid, webs_t wp, int argc, char_t **argv)
4779 websError(wp, 400, "Insufficient args\n");
4798 return websWrite(wp, ipaddr);
4800 return websWrite(wp, netmask);
4802 return websWrite(wp, gateway);
4804 return websWrite(wp, metric);
4818 ej_wan_route(int eid, webs_t wp, int argc, char_t **argv)
4829 websError(wp, 400, "Insufficient args\n");
4852 return websWrite(wp, ipaddr);
4854 return websWrite(wp, netmask);
4856 return websWrite(wp, gateway);
4858 return websWrite(wp, metric);
4867 static void cgi(webs_t wp, const char * const cmd)
4881 websWrite(wp, "%s", line);
4889 ej_ggl_plc_get_autoconf_root(int eid, webs_t wp, int argc, char_t **argv)
4891 cgi(wp, "get plc_cfg_root");
4896 ej_ggl_plc_get_info(int eid, webs_t wp, int argc, char_t **argv)
4898 cgi(wp, "get info");
4903 ej_ggl_plc_get_mac(int eid, webs_t wp, int argc, char_t **argv)
4905 cgi(wp, "get mac");
4910 ej_ggl_plc_get_nets(int eid, webs_t wp, int argc, char_t **argv)
4912 cgi(wp, "get nw_info");
4917 ej_ggl_plc_get_nick(int eid, webs_t wp, int argc, char_t **argv)
4919 cgi(wp, "get nick");
4924 ej_ggl_plc_get_role(int eid, webs_t wp, int argc, char_t **argv)
4926 cgi(wp, "get role");
4931 ej_ggl_plc_get_stas(int eid, webs_t wp, int argc, char_t **argv)
4933 cgi(wp, "get stas");
4938 ej_ggl_plc_get_uptime(int eid, webs_t wp, int argc, char_t **argv)
4940 cgi(wp, "get uptime");
4945 ej_ggl_cgi_version(int eid, webs_t wp, int argc, char_t **argv)
4947 cgi(wp, "get version");
4952 ej_ggl_get_avln_list(int eid, webs_t wp, int argc, char_t **argv)
4963 websWrite(wp, "<tr align=\"center\">");
4964 websWrite(wp, "<td>%s</td>", mac);
4965 websWrite(wp, "<td>%s</td>", nid);
4966 websWrite(wp, "<td>%u</td>", 5);
4967 websWrite(wp, "</tr>");
5060 ej_wl_list(int eid, webs_t wp, int argc, char_t **argv)
5074 websError(wp, 400, "Unknown argument %s\n",virtual);
5086 websError(wp, 400, "Unable to remove duplicate interfaces from ifname list<br>");
5103 websError(wp, 400, "wl name for interface:%s not found\n",name);
5123 websError(wp, 400, "Error extracting unit and subunit name from %s\n",wl_name);
5147 if (websGetVar(wp, "wl_bssid", NULL)) {
5148 str_to_compare = websGetVar(wp, "wl_unit", NULL);
5154 ret += websWrite(wp, "<option value=\"%s\" %s>%s(%s)</option>\n", unit_str,
5159 ret += websWrite(wp, "<option value=\"%s\" %s>(%s)</option>\n", unit_str,
5166 ret += websWrite(wp, "<option value=\"-1\" selected>None</option>");
5173 ej_wl_phytypes(int eid, webs_t wp, int argc, char_t **argv)
5184 return websWrite(wp, "None");
5197 ret += websWrite(wp, "<option value=\"%d\" %s> %s GHz</option>\n",
5208 ret += websWrite(wp, "<option value=\"%d\" %s> %s GHz</option>",
5216 ret += websWrite(wp, "<option value=\"%c\" %s>%s</option>",
5229 ret += websWrite(wp, "<option value=\"%c\" %s>%s</option>",
5237 ej_wl_nmode_enabled(int eid, webs_t wp, int argc, char_t **argv)
5246 websError(wp, 400, "Error getting wl_unit\n");
5251 websError(wp, 400, "Error getting unit/subunit\n");
5258 websWrite(wp, "\"0\"");
5260 websWrite(wp, "\"1\"");
5267 ej_wl_nphyrates(int eid, webs_t wp, int argc, char_t **argv)
5279 websError(wp, 400, "unit number variable doesn't exist\n");
5284 if ((ret = wl_phytype_get(wp, &phytype)) != 0)
5293 websError(wp, 400, "BW does not exist \n");
5303 ret += websWrite(wp, "\t\tdocument.forms[0].wl_nmcsidx.length = 0; \n");
5305 ret += websWrite(wp, "\t\tdocument.forms[0].wl_nmcsidx[0] = "
5309 ret += websWrite(wp, "\t\tdocument.forms[0].wl_nmcsidx.selectedIndex = 0;\n");
5317 ret += websWrite(wp, "\t\tif(document.forms[0].wl_txchain.selectedIndex > 0) {\n");
5323 ret += websWrite(wp, "\t\tdocument.forms[0].wl_nmcsidx[%d] = new Option(\"", i);
5325 ret += websWrite(wp, "Use Legacy Rate\", \"-2\");\n");
5327 ret += websWrite(wp,
5332 ret += websWrite(wp, "%2d: %d", mcsidxs[i], mcs_rate/1000);
5335 ret += websWrite(wp, ".%d", (mcs_rate % 1000)/100);
5336 ret += websWrite(wp, " Mbps");
5339 ret += websWrite(wp, " or %d", mcs_rate/1000);
5342 ret += websWrite(wp, ".%d", (mcs_rate % 1000)/100);
5343 ret += websWrite(wp, " Mbps");
5345 ret += websWrite(wp, "\", \"%d\");\n", mcsidxs[i]);
5348 ret += websWrite(wp,
5355 ret += websWrite(wp, "\t\t}\n");
5362 ej_wl_txchains_list(int eid, webs_t wp, int argc, char_t **argv)
5372 websError(wp, 400, "unit number variable doesn't exist\n");
5400 ret += websWrite(wp, "\t<option value=%d %s>%d</option>\n",
5410 ej_wl_rxchains_list(int eid, webs_t wp, int argc, char_t **argv)
5420 websError(wp, 400, "unit number variable doesn't exist\n");
5448 ret += websWrite(wp, "\t<option value=%d %s>%d</option>\n",
5457 ej_wl_radioid(int eid, webs_t wp, int argc, char_t **argv)
5464 websError(wp, 400, "Insufficient args\n");
5471 return websWrite(wp, "None");
5476 return websWrite(wp, var);
5480 return websWrite(wp, "None");
5485 ej_wl_corerev(int eid, webs_t wp, int argc, char_t **argv)
5490 return websWrite(wp, "None");
5492 return websWrite(wp, nvram_safe_get(strcat_r(prefix, "corerev", tmp)));
5497 ej_wl_cur_chanspec(int eid, webs_t wp, int argc, char_t **argv)
5524 websError(wp, 400, "unit number variable doesn't exist\n");
5531 if ((status = wl_phytype_get(wp, &phytype)) != 0)
5548 return websWrite(wp, "Current: %s %s",
5557 ej_wl_cur_channel(int eid, webs_t wp, int argc, char_t **argv)
5575 websError(wp, 400, "unit number variable doesn't exist\n");
5582 if ((status = wl_phytype_get(wp, &phytype)) != 0)
5615 return websWrite(wp, "Current: %d %s",
5624 ej_wl_cur_bw(int eid, webs_t wp, int argc, char_t **argv)
5631 websError(wp, 400, "unit number variable doesn't exist\n");
5640 return websWrite(wp, "Current: %s",
5647 ej_wl_cur_nctrlsb(int eid, webs_t wp, int argc, char_t **argv)
5654 websError(wp, 400, "unit number variable doesn't exist\n");
5663 return websWrite(wp, "Current: %s", (chanspec & WL_CHANSPEC_CTL_SB_MASK) ==
5670 ej_wl_cur_country(int eid, webs_t wp, int argc, char_t **argv)
5677 websError(wp, 400, "unit number variable doesn't exist\n");
5685 return websWrite(wp, "%s", cspec.ccode);
5689 ej_wl_cur_regrev(int eid, webs_t wp, int argc, char_t **argv)
5696 websError(wp, 400, "unit number variable doesn't exist\n");
5705 return websWrite(wp, "%d", cspec.rev);
5710 ej_wl_cur_phytype(int eid, webs_t wp, int argc, char_t **argv)
5717 websError(wp, 400, "unit number variable doesn't exist\n");
5731 return websWrite(wp, "Current: %s", phytype == WLC_BAND_5G ? "5 GHz" :
5734 return websWrite(wp, "Current: 802.11%s", phytype == WLC_PHY_TYPE_A ? "a" :
5738 return websWrite(wp, "Current: %s", phytype == WLC_BAND_5G ? "5 GHz" :
5746 ej_wl_nphy_set(int eid, webs_t wp, int argc, char_t **argv)
5751 if ((status = wl_phytype_get(wp, &phytype)) != 0)
5754 return websWrite(wp, "%d", ((phytype == WLC_PHY_TYPE_N) || (phytype == WLC_PHY_TYPE_SSN) ||
5761 ej_wl_protection(int eid, webs_t wp, int argc, char_t **argv)
5768 if ((status = wl_phytype_get(wp, &phytype)) != 0)
5776 ret += websWrite(wp, "<th width=\"310\"\n\tonMouseOver=\"return overlib('In <b>Auto</b>"
5778 ret += websWrite(wp, " %s performance in mixed %s networks. Turn protection <b>Off</b> to "
5792 ret += websWrite(wp, "\tonMouseOut=\"return nd();\">\n\t%s Protection:&nbsp;&nbsp;"
5798 ret += websWrite(wp, "\t\t<select name=\"%s\">\n",
5800 ret += websWrite(wp, "\t\t\t<option value=\"auto\" %s>Auto</option>\n",
5802 ret += websWrite(wp, "\t\t\t<option value=\"off\" %s>Off</option>\n",
5804 ret += websWrite(wp, "\t\t</select>\n\t</td>");
5811 ej_wl_mimo_preamble(int eid, webs_t wp, int argc, char_t **argv)
5821 websError(wp, 400, "unit number variable doesn't exist\n");
5839 ret += websWrite(wp, "<th width=\"310\"\n\tonMouseOver=\"return overlib('Force to use Green-Field or Mixed-Mode preamble. in<b>Auto</b>"
5841 ret += websWrite(wp, "\tonMouseOut=\"return nd();\">\n\t%s Mimo PrEamble:&nbsp;&nbsp;"
5843 ret += websWrite(wp, "\t\t<select name=\"%s\">\n", prot_str);
5844 ret += websWrite(wp, "\t\t\t<option value=\"gfbcm\" %s>GF-BRCM</option>\n",
5846 ret += websWrite(wp, "\t\t\t<option value=\"auto\" %s>Auto</option>\n",
5848 ret += websWrite(wp, "\t\t\t<option value=\"gf\" %s>Green Field</option>\n",
5850 ret += websWrite(wp, "\t\t\t<option value=\"mm\" %s>Mixed Mode</option>\n",
5852 ret += websWrite(wp, "\t\t</select>\n\t</td>");
5859 ej_wl_legacy_string(int eid, webs_t wp, int argc, char_t **argv)
5864 if ((status = wl_phytype_get(wp, &phytype)) != 0)
5867 return websWrite(wp, "%s", ((phytype == WLC_PHY_TYPE_N) || (phytype == WLC_PHY_TYPE_SSN) ||
5875 ej_wl_nphy_comment_beg(int eid, webs_t wp, int argc, char_t **argv)
5880 if ((status = wl_phytype_get(wp, &phytype)) != 0)
5882 return websWrite(wp, "%s", ((phytype == WLC_PHY_TYPE_N) || (phytype == WLC_PHY_TYPE_SSN) ||
5888 ej_wl_nphy_comment_end(int eid, webs_t wp, int argc, char_t **argv)
5893 if ((status = wl_phytype_get(wp, &phytype)) != 0)
5895 return websWrite(wp, "%s", ((phytype == WLC_PHY_TYPE_N) || (phytype == WLC_PHY_TYPE_SSN) ||
5904 ej_wl_phytype_name(int eid, webs_t wp, int argc, char_t **argv)
5909 if ((status = wl_phytype_get(wp, &phytype)) != 0)
5912 return websWrite(wp, "%s", ((phytype == WLC_PHY_TYPE_N) || (phytype == WLC_PHY_TYPE_SSN) ||
5919 ej_wl_cur_band(int eid, webs_t wp, int argc, char_t **argv)
5926 websError(wp, 400, "unit number variable doesn't exist\n");
5935 return websWrite(wp, "Current: %s ", bandtype == WLC_BAND_5G ? "5 GHz" :
5940 ej_wl_crypto(int eid, webs_t wp, int argc, char_t **argv)
5949 websError(wp, 400, "Error getting wl_unit\n");
5954 websError(wp, 400, "Error getting unit/subunit\n");
5960 websWrite(wp, nvram_safe_get(nv_param));
5966 ej_wl_wep(int eid, webs_t wp, int argc, char_t **argv)
5975 websError(wp, 400, "Error getting wl_unit\n");
5980 websError(wp, 400, "Error getting unit/subunit\n");
5986 websWrite(wp, nvram_safe_get(nv_param));
6006 ej_wl_txbf_capable(int eid, webs_t wp, int argc, char_t **argv)
6014 websError(wp, 400, "unit number variable doesn't exist\n");
6038 return websWrite(wp, "%d", txbf_capable);
6048 ej_wl_invite_list(int eid, webs_t wp, int argc, char_t **argv)
6098 len = websWrite(wp, dest);
6105 ej_wl_wfi_mode(int eid, webs_t wp, int argc, char_t **argv)
6114 return websWrite(wp, "WPS mode is enabled on this BSS.");
6116 return websWrite(wp, "WPS mode is not enabled on this BSS.");
6137 ej_wan_list(int eid, webs_t wp, int argc, char_t **argv)
6147 ret += websWrite(wp, "<option value=\"%d\" %s>%s</option>", unit,
6158 ej_wps_current_mode(int eid, webs_t wp, int argc, char_t **argv, int wps_sta)
6163 websWrite(wp, "Station");
6165 websWrite(wp, "Unconfiged AP");
6167 websWrite(wp, "AP with Built-in Registrar");
6169 websWrite(wp, "Proxing");
6174 websWrite(wp, "Station Disabled");
6178 websWrite(wp, "AP Disabled");
6187 ej_wps_process(int eid, webs_t wp, int argc, char_t **argv)
6199 websWrite(wp, "Processing WPS start...");
6203 websWrite(wp, "Success");
6206 websWrite(wp, "Fail due to WPS message exchange error!");
6209 websWrite(wp, "Fail due to WPS time out!");
6212 websWrite(wp, "Fail due to WPS session overlap!");
6219 websWrite(wp, "Please place your NFC token now.");
6222 websWrite(wp, "NFC write token successful, please remove the tag.");
6225 websWrite(wp, "NFC read token successful, please remove the tag.");
6228 websWrite(wp, "Handover as selector.");
6231 websWrite(wp, "Handover as requester.");
6234 websWrite(wp, "Handover done, please remove the peer.");
6237 websWrite(wp, "Handover successful.");
6240 websWrite(wp, "NFC operation fail. Code %d", wps_nfc_err_code);
6243 websWrite(wp, "NFC operation stop.");
6246 websWrite(wp, "NFC operation timeout.");
6249 websWrite(wp, "Formating NFC, please place your NFC token now!.");
6252 websWrite(wp, "Format NFC successful, please remove the tag.");
6256 websWrite(wp, "Init");
6261 websWrite(wp, "&nbsp;&nbsp;<input type=\"submit\" name=\"action\" value=\"STOPWPS\">");
6265 websWrite(wp, "<input type=\"hidden\" name=\"wps_action\" value=\"AddEnrollee\">");
6266 websWrite(wp, "&nbsp;&nbsp;<input type=\"submit\" name=\"action\" value=\"PBC Again\">");
6272 websWrite(wp, "&nbsp;&nbsp;<input type=\"submit\" name=\"action\" value=\"Stop NFC Write\">");
6276 websWrite(wp, "&nbsp;&nbsp;<input type=\"submit\" name=\"action\" value=\"Stop NFC Read\">");
6280 websWrite(wp, "&nbsp;&nbsp;<input type=\"submit\" name=\"action\" value=\"Stop NFC Hand Over\">");
6364 ej_wps_credentials(int eid, webs_t wp, int argc, char_t **argv, int wps_sta)
6377 websError(wp, 400, "unit number variable doesn't exist\n");
6416 websWrite(wp, "<tr>");
6417 websWrite(wp, "<th width=\"310\">Current SSID:&nbsp;&nbsp;</th><td>&nbsp;&nbsp;</td>\n");
6418 websWrite(wp, "<td>%s</td>\n", translate_ssid(ssid));
6420 websWrite(wp, "<tr>");
6421 websWrite(wp, "<th width=\"310\">Current Authentication Type:&nbsp;&nbsp;</th>\n");
6422 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
6423 websWrite(wp, "<td>%s</td>\n", (akm == 0) ? "Open" : (akm == 2) ? "WPA2-PSK" : "WPA/WPA2-PSK");
6425 websWrite(wp, "<tr>");
6426 websWrite(wp, "<th width=\"310\">Current Encryption Type:&nbsp;&nbsp;</th>\n");
6427 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
6428 websWrite(wp, "<td>%s</td>\n", (akm == 0) ? "" : (crypto == 1) ? "AES" : "TKIP+AES");
6430 websWrite(wp, "<tr>");
6431 websWrite(wp, "<th width=\"310\">Current PSK:&nbsp;&nbsp;</th><td>&nbsp;&nbsp;</td>\n");
6432 websWrite(wp, "<td><A HREF=\"javascript:wps_current_psk_window();\">Click here to display</A></td>\n");
6433 websWrite(wp, "<tr><th width=\"310\"></th><td>&nbsp;&nbsp;</td><td></td></tr>\n");
6466 websWrite(wp, "<tr><th width=\"310\"");
6467 websWrite(wp, "onMouseOver=\"return overlib(\'Sets the Network Name (also known as SSID) of this network.\', LEFT);\"");
6468 websWrite(wp, "onMouseOut=\"return nd();\">SSID:&nbsp;&nbsp;</th>\n");
6469 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
6470 websWrite(wp, "<td><input name=\"wps_ssid\" value=\"%s\" size=\"32\" maxlength=\"32\"%s></td></tr>\n",
6474 websWrite(wp, "<tr><th onmouseover=\"return overlib(\'Select WPS Authentication Type\', LEFT);\" onmouseout=\"return nd();\" width=\"310\">");
6475 websWrite(wp, "Authentication Type:&nbsp;&nbsp;</th><td>&nbsp;&nbsp;</td>\n");
6476 websWrite(wp, "<td><select name=\"wps_akm\" onClick=\"wps_akm_change()\"%s>", configable ? "" : "disabled");
6477 websWrite(wp, "<option value=\"\"%s>Open</option>",
6479 websWrite(wp, "<option value=\"psk2\"%s>WPA2-PSK</option>",
6481 websWrite(wp, "<option value=\"psk psk2\"%s>WPA/WPA2-PSK</option></select>\n",
6483 websWrite(wp, "</td></tr>\n");
6485 websWrite(wp, "<tr><th onmouseover=\"return overlib(\'Select WPS Encryption Type\', LEFT);\" onmouseout=\"return nd();\" width=\"310\">");
6486 websWrite(wp, "Encryption Type:&nbsp;&nbsp;</th><td>&nbsp;&nbsp;</td>\n");
6487 websWrite(wp, "<td><select name=\"wps_crypto\"%s>", configable ? "" : "disabled");
6488 websWrite(wp, "<option value=\"aes\"%s>AES</option>",
6490 websWrite(wp, "<option value=\"tkip+aes\"%s>TKIP+AES</option></select>\n",
6492 websWrite(wp, "</td></tr>\n");
6495 websWrite(wp, "<tr><th width=\"310\"");
6496 websWrite(wp, " onMouseOver=\"return overlib(\'Sets the WPA passphrase.\', LEFT);\"onMouseOut=\"return nd();\">");
6497 websWrite(wp, "WPA passphrase:&nbsp;&nbsp;</th>\n");
6498 websWrite(wp, "<td>&nbsp;&nbsp;</td>\n");
6499 websWrite(wp, "<td><input name=\"wps_psk\" value=\"%s\" size=\"32\""
6502 websWrite(wp, "</tr>\n");
6505 websWrite(wp, "<tr><th width=\"310\"></th><td>&nbsp;&nbsp;</td>\n");
6506 websWrite(wp, "<td><input type=\"submit\" name=\"action\" value=\"Save Credentials\""
6513 ej_wps_start(int eid, webs_t wp, int argc, char_t **argv, int wps_sta)
6517 websWrite(wp, "<tr><th width=\"310\"></th><td>&nbsp;&nbsp;</td>");
6518 websWrite(wp, "<td><input type=\"submit\" name=\"action\" value=\"Add Enrollee\">");
6519 websWrite(wp, "</td> </tr>\n");
6522 websWrite(wp, "<tr><th width=\"310\"></th><td>&nbsp;&nbsp;</td>");
6523 websWrite(wp, "<td><input type=\"submit\" name=\"action\" value=\"Start\" onClick=\"return pre_submit();\"></td></tr>\n");
6831 ej_wps_enr_scan_result(int eid, webs_t wp, int argc, char_t **argv)
6838 websWrite(wp, "<option value=\"-1\" selected>None</option>");
6855 ret += websWrite(wp, "<option value=\"%d\" %s>%s (%s)</option>\n", i,
6861 ret += websWrite(wp, "<option value=\"%d\" %s>%s (%s)</option>\n", i,
6871 websWrite(wp, "<option value=\"-1\" selected>None</option>");
6878 ej_wps_enr_process(int eid, webs_t wp, int argc, char_t **argv)
6887 websWrite(wp, "Start enrolling...");
6890 websWrite(wp, "Succeeded...");
6893 websWrite(wp, "Failed...");
6896 websWrite(wp, "Failed (timeout)...");
6899 websWrite(wp, "Failed (pbc overlap)...");
6902 websWrite(wp, "Finding a pbc access point...");
6905 websWrite(wp, "Assciating with access point...");
6912 websWrite(wp, "Please place your NFC token now.");
6915 websWrite(wp, "NFC write token successful, please remove the tag.");
6918 websWrite(wp, "NFC read token successful, please remove the tag.");
6921 websWrite(wp, "Handover as selector.");
6924 websWrite(wp, "Handover as requester.");
6927 websWrite(wp, "Handover done, please remove the peer.");
6930 websWrite(wp, "Handover successful.");
6933 websWrite(wp, "NFC operation fail. Code %d", wps_nfc_err_code);
6936 websWrite(wp, "NFC operation stop.");
6939 websWrite(wp, "NFC operation timeout.");
6942 websWrite(wp, "Formating NFC, please place your NFC token now!");
6945 websWrite(wp, "Format NFC successful, please remove the tag.");
6949 websWrite(wp, "Init");
6955 websWrite(wp, "&nbsp;&nbsp;<input type=\"submit\" name=\"action\" value=\"STOPWPS\">");
6959 websWrite(wp, "<input type=\"hidden\" name=\"wps_action\" value=\"Enroll\">");
6960 websWrite(wp, "&nbsp;&nbsp;<input type=\"submit\" name=\"action\" value=\"PBC Again\">");
6966 websWrite(wp, "&nbsp;&nbsp;<input type=\"submit\" name=\"action\" value=\"Stop NFC Write\">");
6970 websWrite(wp, "&nbsp;&nbsp;<input type=\"submit\" name=\"action\" value=\"Stop NFC Read\">");
6974 websWrite(wp, "&nbsp;&nbsp;<input type=\"submit\" name=\"action\" value=\"Stop NFC Hand Over\">");
6986 ej_ure_list(int eid, webs_t wp, int argc, char_t **argv)
6993 websError(wp, 400, "Insufficient args\n");
7002 websWrite(wp, "selected" );
7009 websWrite(wp, "selected" );
7020 ej_ure_enabled(int eid, webs_t wp, int argc, char_t **argv)
7029 websError(wp, 400, "Error getting wl_unit\n");
7034 websError(wp, 400, "Error getting unit/subunit\n");
7041 websWrite(wp, "\"1\"");
7044 websWrite(wp, "\"0\"");
7061 ej_ure_any_enabled(int eid, webs_t wp, int argc, char_t **argv)
7064 websWrite(wp, "\"1\"");
7066 websWrite(wp, "\"0\"");
7076 ej_wl_ibss_mode(int eid, webs_t wp, int argc, char_t **argv)
7086 websError(wp, 400, "Error getting wl_unit\n");
7091 websError(wp, 400, "Error getting unit/subunit\n");
7108 websWrite(wp, "\"0\"");
7110 websWrite(wp, "\"1\"");
7112 websError(wp, 400, "Invalid wl%d_infra setting in NVRAM\n", unit);
7121 ej_dfs_reentry_display(int eid, webs_t wp, int argc, char_t **argv)
7175 websWrite(wp, table_start);
7182 websWrite(wp, table_entry, wins[i].description, wins[i].description,
7187 websWrite(wp, table_end);
7193 ej_trf_mgmt_display(int eid, webs_t wp, int argc, char_t **argv)
7209 websError(wp, 400, "unit number variable doesn't exist\n");
7232 websWrite(wp, "<p>");
7233 websWrite(wp, "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
7234 websWrite(wp, "<tr>");
7235 websWrite(wp, "<th width=\"310\" valign=\"top\" rowspan=\"11\"");
7236 websWrite(wp, "onMouseOver=\"return overlib('Adds up to 10 traffic management filters which specifies the TCP/UDP port, MAC and priority.', LEFT);\"");
7237 websWrite(wp, "onMouseOut=\"return nd();\">");
7238 websWrite(wp, "<input type=\"hidden\" name=\"trf_mgmt_port\" value=\"10\">");
7239 websWrite(wp, "Traffic Management Settings:&nbsp;&nbsp;");
7240 websWrite(wp, "</th>");
7241 websWrite(wp, "<td>&nbsp;&nbsp;</td>");
7242 websWrite(wp, "<td class=\"label\">Protocol</td>");
7243 websWrite(wp, "<td></td>");
7244 websWrite(wp, "<td class=\"label\">Src Port</td>");
7245 websWrite(wp, "<td></td>");
7246 websWrite(wp, "<td class=\"label\">Dst Port</td>");
7247 websWrite(wp, "<td></td>");
7248 websWrite(wp, "<td class=\"label\">Dst Mac Addr</td>");
7249 websWrite(wp, "<td></td>");
7250 websWrite(wp, "<td class=\"label\">Priority</td>");
7251 websWrite(wp, "<td></td>");
7252 websWrite(wp, "<td class=\"label\">Favored</td>");
7253 websWrite(wp, "<td></td>");
7254 websWrite(wp, "<td class=\"label\">Enabled</td>");
7255 websWrite(wp, "</tr>");
7260 ret += websWrite(wp, "<tr>");
7261 ret += websWrite(wp, "<td></td>");
7264 ret += websWrite(wp, "<td>");
7265 ret += websWrite(wp, "<select name=\"%strf_mgmt_port_proto%d\">", prefix, i);
7266 ret += websWrite(wp, "<option value=\"tcp\" %s>TCP</option>",
7268 ret += websWrite(wp, "<option value=\"udp\" %s>UDP</option>",
7270 ret += websWrite(wp, "<option value=\"mac\" %s>MAC</option>",
7272 ret += websWrite(wp, "</select>");
7273 ret += websWrite(wp, "</td>");
7274 ret += websWrite(wp, "<td></td>");
7282 ret += websWrite(wp, "<td><input name=\"%strf_mgmt_port_sport%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
7284 ret += websWrite(wp, "<td></td>");
7291 ret += websWrite(wp, "<td><input name=\"%strf_mgmt_port_dport%d\" value=\"%s\" size=\"5\" maxlength=\"5\"></td>",
7293 ret += websWrite(wp, "<td></td>");
7301 ret += websWrite(wp, "<td><input name=\"%strf_mgmt_port_macaddr%d\" value=\"%s\" size=\"17\" maxlength=\"17\"></td>",
7304 ret += websWrite(wp, "<td><input name=\"%strf_mgmt_port_macaddr%d\" value=\"%s\" size=\"17\" maxlength=\"17\"></td>",
7307 ret += websWrite(wp, "<td></td>");
7310 ret += websWrite(wp, "<td>");
7311 ret += websWrite(wp, "<select name=\"%strf_mgmt_port_prio%d\">", prefix, i);
7312 ret += websWrite(wp, "<option value=\"0\" %s>BK</option>",
7314 ret += websWrite(wp, "<option value=\"1\" %s>BE</option>",
7316 ret += websWrite(wp, "<option value=\"2\" %s>VI</option>",
7318 ret += websWrite(wp, "<option value=\"3\" %s>NOCHANGE</option>",
7321 ret += websWrite(wp, "</select>");
7322 ret += websWrite(wp, "</td>");
7323 ret += websWrite(wp, "<td></td>");
7326 ret += websWrite(wp, "<td><input type=\"checkbox\" name=\"%strf_mgmt_port_favored%d\" %s></td>",
7330 ret += websWrite(wp, "<td><input type=\"checkbox\" name=\"%strf_mgmt_port_enable%d\" %s></td>",
7333 ret += websWrite(wp, "</tr>\n");
7336 websWrite(wp, "</table>");
7404 validate_dfs_window(webs_t wp, char *value, struct variable *v, char *varname)
7410 value = websGetVar(wp, name, NULL);
7414 value = websGetVar(wp, name, NULL);
7421 websBufferWrite(wp, "Invalid <b>%s</b>: Seconds may be not zero<br>",
7434 validate_list(webs_t wp, char *value, struct variable *v,
7448 if (!(value = websGetVar(wp, name, NULL)))
7453 if (!valid(wp, value, v ))
7470 valid_ipaddr(webs_t wp, char *value, struct variable *v)
7478 websBufferWrite(wp, "Invalid <b>%s</b> %s: not an IP address<br>",
7491 websBufferWrite(wp, "Invalid <b>%s</b> %s: not in the %s/",
7493 websBufferWrite(wp, "%s network<br>", inet_ntoa(netmask));
7497 websBufferWrite(wp, "Invalid <b>%s</b> %s: cannot be the network address<br>",
7502 websBufferWrite(wp, "Invalid <b>%s</b> %s: cannot be the broadcast address<br>",
7512 validate_ipaddr(webs_t wp, char *value, struct variable *v , char *varname)
7519 if (!valid_ipaddr(wp, value, v) ) return;
7531 validate_ipaddrs(webs_t wp, char *value, struct variable *v, char *varname)
7534 validate_list(wp, value, v, valid_ipaddr, varname);
7538 valid_choice(webs_t wp, char *value, struct variable *v)
7549 websBufferWrite(wp, "Invalid <b>%s</b> %s: not one of ", v->longname, value);
7551 websBufferWrite(wp, "%s%s", choice == v->argv ? "" : "/", *choice);
7552 websBufferWrite(wp, "<br>");
7558 validate_choice(webs_t wp, char *value, struct variable *v, char *varname)
7565 if (!valid_choice(wp, value, v)) return;
7576 validate_router_disable(webs_t wp, char *value, struct variable *v,
7585 if (!valid_choice(wp, value, v)) return;
7603 valid_range(webs_t wp, char *value, struct variable *v)
7614 websBufferWrite(wp, "Invalid <b>%s</b> %s: out of range %d-%d<br>",
7623 validate_range(webs_t wp, char *value, struct variable *v , char *varname)
7630 if (!valid_range(wp, value, v)) return ;
7641 valid_octet(webs_t wp, char *value, struct variable *v)
7653 websBufferWrite(wp, "Invalid <b>%s</b> %s: out of range %d-%d<br>",
7664 valid_qos_var(webs_t wp, char *value, struct variable *v, char *varname )
7676 valid_name(webs_t wp, char *value, struct variable *v)
7687 websBufferWrite(wp, "Invalid <b>%s</b> %s: longer than %d characters<br>",
7692 websBufferWrite(wp, "Invalid <b>%s</b> %s: shorter than %d characters<br>",
7701 valid_hex(webs_t wp, char *value, struct variable *v)
7713 websBufferWrite(wp, "Invalid <b>%s</b> %s: longer than %d characters<br>",
7718 websBufferWrite(wp, "Invalid <b>%s</b> %s: shorter than %d characters<br>",
7724 websBufferWrite(wp, "Invalid <b>%s</b> %s: must be in even length<br>",
7731 websBufferWrite(wp, "Invalid <b>%s</b>: character %c is not a hexadecimal digit<br>",
7742 validate_guest_lan_ifname(webs_t wp, char *value, struct variable *v, char *varname )
7753 websBufferWrite(wp, "Guest LAN interface must be specified.<br>");
7758 websBufferWrite(wp, "Guest LAN interface index must be specified.<br>");
7766 websBufferWrite(wp, "Guest LAN interface index must be between 1 and 4.<br>");
7771 websBufferWrite(wp, "Unable to translate Guest LAN interface name: %s.<br>",value);
7777 websBufferWrite(wp, "Guest LAN interface %s is not a Wireless Interface.<br>",value);
7792 validate_vif_ssid(webs_t wp, char *value, struct variable *v, char *varname )
7820 wl_unit=websGetVar(wp, "wl_unit", NULL);
7839 if (!valid_name(wp, value, &local)) return;
7930 validate_name(webs_t wp, char *value, struct variable *v, char *varname )
7936 if (!valid_name(wp, value, v)) return;
7947 validate_names(webs_t wp, char *value, struct variable *v, char *varname )
7954 validate_list(wp, value, v, valid_name, varname);
7958 validate_bridge(webs_t wp, char *value, struct variable *v, char *varname )
7974 if ((wl_bssid = websGetVar(wp, "wl_bssid", NULL)) && (atoi(wl_bssid)))
7984 websError(wp, 400, "unit number variable doesn't exist\n");
8058 validate_ssid(webs_t wp, char *value, struct variable *v, char *varname )
8064 if ((wl_bssid = websGetVar(wp, "wl_bssid", NULL)) && (atoi(wl_bssid))){
8066 validate_vif_ssid(wp, value, v,varname);
8071 if (!valid_name(wp, value, v))
8081 validate_name(wp, value, v, varname);
8093 validate_wl_closed(webs_t wp, char *value, struct variable *v, char *varname )
8095 validate_choice(wp, value, v, varname);
8110 validate_wl_macmode(webs_t wp, char *value, struct variable *v, char *varname )
8112 validate_choice(wp, value, v, varname);
8127 wl_mac = websGetVar(wp, wl_maclist, "");
8138 websBufferWrite(wp, "Selecting <b>allow</b> with <b>empty</b> "
8149 validate_wps2_range(webs_t wp, char *value, struct variable *v , char *varname)
8169 if (!valid_range(wp, value, v)) return ;
8181 validate_wps_reg(webs_t wp, char *value, struct variable *v, char *varname)
8187 if((temp = websGetVar(wp, "wps_reg", NULL))) {
8207 websError(wp, 400, "Insufficient args\n");
8213 validate_wps_oob(webs_t wp, char *value, struct variable *v, char *varname)
8230 validate_wps_mode(webs_t wp, char *value, struct variable *v, char *varname)
8262 if((auth = websGetVar(wp, "wl_auth", NULL)) && (strcmp(auth, "1") == 0)) {
8263 websBufferWrite(wp, "WPS does not support <b>Shared</b> "
8269 wep = websGetVar(wp, "wl_wep", NULL);
8287 if ((wpa = websGetVar(wp, "wl_akm_wpa", NULL)) == NULL)
8289 if ((psk = websGetVar(wp, "wl_akm_psk", NULL)) == NULL)
8291 if ((wpa2 = websGetVar(wp, "wl_akm_wpa2", NULL)) == NULL)
8293 if ((psk2 = websGetVar(wp, "wl_akm_psk2", NULL)) == NULL)
8306 websBufferWrite(wp, "WPS only support <b>WPA2-PSK or "
8321 crypto = websGetVar(wp, "wl_crypto", NULL);
8326 websBufferWrite(wp, "<b>Crypto Algorithm</b> mode must be"
8331 websBufferWrite(wp, "WPS does not support <b>TKIP</b> only "
8341 websBufferWrite(wp, "WPS does not support <b>WEP</b> crypto "
8354 websBufferWrite(wp, "<br>Enable WPS will change the SSID "
8373 websBufferWrite(wp, "Enable WPS will <b>Disabled MAC Restrict Mode</b><br>");
8396 static char *get_ifname (webs_t wp)
8400 websError(wp, 400, "unit number variable doesn't exist<br>");
8407 validate_wl_chanspec(webs_t wp, char *value, struct variable *v, char *varname)
8415 validate_wl_country_code(webs_t wp, char *value, struct variable *v, char *varname)
8424 name = get_ifname(wp);
8426 rev = websGetVar(wp, "wl_country_rev", NULL);
8431 websError(wp, 400, "<br><b>ERROR:</b>Country");
8439 validate_wl_country_rev(webs_t wp, char *value, struct variable *v, char *varname)
8448 name = get_ifname(wp);
8449 country = websGetVar(wp, "wl_country_code", NULL);
8454 websError(wp, 400, "/Regulatory revision doesn't exist<br>");
8462 validate_ure(webs_t wp, char *value, struct variable *v, char *varname)
8486 if ((temp = websGetVar(wp, "wl_unit", NULL)))
8490 websError(wp, 400, "URE error getting wl_unit\n");
8498 websError(wp, 400, "URE can't be enabled for a virtual I/F\n");
8504 if((temp = websGetVar(wp, "wl_ure", NULL)))
8512 websError(wp, 400, "Insufficient args\n");
8550 websError(wp, 400, "Can not have more than one URE interface\n");
8596 websError(wp, 400, "string too long\n");
8614 websError(wp, 400, "string too long\n");
8639 websError(wp, 400, "string too long\n");
8650 websError(wp, 400, "Failed to add AP interface to lan_ifnames\n");
8664 websError(wp, 400, "string too long\n");
8743 websError(wp, 400, "string too long\n");
8770 websError(wp, 400, "string too long\n");
8810 valid_hwaddr(webs_t wp, char *value, struct variable *v)
8825 websBufferWrite(wp, "Invalid <b>%s</b> %s: not a MAC address<br>",
8834 validate_hwaddr(webs_t wp, char *value, struct variable *v, char *varname )
8839 if (!valid_hwaddr(wp, value, v)) return;
8852 validate_hwaddrs(webs_t wp, char *value, struct variable *v, char *varname )
8858 validate_list(wp, value, v, valid_hwaddr, varname);
8862 validate_dhcp(webs_t wp, char *value, struct variable *v, char *varname)
8903 if (!(start = websGetVar(wp, dhcp_start, NULL)) ||
8904 !(end = websGetVar(wp, dhcp_end, NULL)))
8909 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a range<br>", v->longname);
8912 if (!valid_ipaddr(wp, start, &dhcp_variables[0]) ||
8913 !valid_ipaddr(wp, end, &dhcp_variables[1]))
8916 websBufferWrite(wp, "Invalid <b>%s</b> %s: greater than <b>%s</b> %s<br>",
8928 validate_lan_ipaddr(webs_t wp, char *value, struct variable *v, char *varname)
8969 if (!(lan_ipaddr = websGetVar(wp, fields[0].name, NULL)) ||
8970 !(lan_netmask = websGetVar(wp, fields[1].name, NULL)) ||
8971 !valid_ipaddr(wp, lan_ipaddr, &fields[0]) ||
8972 !valid_ipaddr(wp, lan_netmask, &fields[1]))
8981 websBufferWrite(wp, "Invalid <b>%s</b> %s: cannot be the network address<br>",
8986 websBufferWrite(wp, "Invalid <b>%s</b> %s: cannot be the broadcast address<br>",
9046 validate_filter_client(webs_t wp, char *value, struct variable *v, char *varname)
9072 if (!valid_range(wp, value, v)){
9073 websBufferWrite(wp, "Invalid filter client string <b>%s</b><br>",value);
9082 if (!(*locals[j] = websGetVar(wp, name, NULL)))
9090 if (websGetVar(wp, name, NULL))
9105 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a LAN IP Address Range<br>", v->longname);
9109 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a Destination Port Range<br>", v->longname);
9113 if (!valid_ipaddr(wp, from_start, &fields[0]) ||
9114 !valid_ipaddr(wp, from_end, &fields[1]) ||
9115 !valid_choice(wp, proto, &fields[2]) ||
9116 !valid_range(wp, to_start, &fields[3]) ||
9117 !valid_range(wp, to_end, &fields[4]) ||
9118 !valid_range(wp, from_day, &fields[5]) ||
9119 !valid_range(wp, to_day, &fields[6]) ||
9120 !valid_range(wp, from_sec, &fields[7]) ||
9121 !valid_range(wp, to_sec, &fields[8]))
9125 websBufferWrite(wp, "Invalid <b>%s</b> %s: greater than <b>%s</b> %s<br>",
9130 websBufferWrite(wp, "Invalid <b>%s</b> %s: greater than <b>%s</b> %s<br>",
9164 validate_filter_url(webs_t wp, char *value, struct variable *v, char *varname)
9183 if (!valid_range(wp, value, v)){
9184 websBufferWrite(wp, "Invalid url filter string <b>%s</b><br>",value);
9193 if (!(*locals[j] = websGetVar(wp, name, NULL)))
9201 if (!(url_addr = websGetVar(wp, name, NULL))) {
9207 if (websGetVar(wp, name, NULL))
9220 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a LAN IP Address Range<br>", v->longname);
9224 if (!valid_ipaddr(wp, from_start, &fields[0]) ||
9225 !valid_ipaddr(wp, from_end, &fields[1]))
9229 websBufferWrite(wp, "Invalid <b>%s</b> %s: greater than <b>%s</b> %s<br>",
9254 validate_forward_port(webs_t wp, char *value, struct variable *v, char *varname)
9277 if (!valid_range(wp, value, v)){
9278 websBufferWrite(wp, "Invalid forward port string <b>%s</b><br>",value);
9287 if (!(*locals[j] = websGetVar(wp, name, NULL)))
9295 if (websGetVar(wp, name, NULL))
9312 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a LAN IP Address Range<br>", v->longname);
9316 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a LAN IP Address<br>", v->longname);
9320 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a Destination Port Range<br>", v->longname);
9324 if (!valid_choice(wp, proto, &fields[0]) ||
9325 !valid_range(wp, from_start, &fields[1]) ||
9326 !valid_range(wp, from_end, &fields[2]) ||
9327 !valid_ipaddr(wp, to_ip, &fields[3]) ||
9328 !valid_range(wp, to_start, &fields[4]) ||
9329 !valid_range(wp, to_end, &fields[5]))
9332 websBufferWrite(wp, "Invalid <b>%s</b> %s: greater than <b>%s</b> %s<br>",
9337 websBufferWrite(wp, "Invalid <b>%s</b> %s: greater than <b>%s</b> %s<br>",
9342 websBufferWrite(wp, "Invalid <b>%s</b>: WAN Port Range and LAN Port Range must be the same size<br>", v->longname);
9369 validate_autofw_port(webs_t wp, char *value, struct variable *v, char *varname)
9394 if (!valid_range(wp, value, v)){
9395 websBufferWrite(wp, "Invalid auto forward port string <b>%s</b><br>",value);
9404 if (!(*locals[j] = websGetVar(wp, name, NULL)))
9412 if (websGetVar(wp, name, NULL))
9431 websBufferWrite(wp, "Invalid <b>%s</b>: must specify an Outbound Port Range<br>", v->longname);
9435 websBufferWrite(wp, "Invalid <b>%s</b>: must specify an Inbound Port Range<br>", v->longname);
9439 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a To Port Range<br>", v->longname);
9443 if (!valid_choice(wp, out_proto, &fields[0]) ||
9444 !valid_range(wp, out_start, &fields[1]) ||
9445 !valid_range(wp, out_end, &fields[2]) ||
9446 !valid_choice(wp, in_proto, &fields[3]) ||
9447 !valid_range(wp, in_start, &fields[4]) ||
9448 !valid_range(wp, in_end, &fields[5]) ||
9449 !valid_range(wp, to_start, &fields[6]) ||
9450 !valid_range(wp, to_end, &fields[7]))
9454 websBufferWrite(wp, "Invalid <b>%s</b> %s: greater than <b>%s</b> %s<br>",
9459 websBufferWrite(wp, "Invalid <b>%s</b> %s: greater than <b>%s</b> %s<br>",
9464 websBufferWrite(wp, "Invalid <b>%s</b> %s: greater than <b>%s</b> %s<br>",
9469 websBufferWrite(wp, "Invalid <b>%s</b>: Inbound Port Range and To Port Range must be the same size<br>", v->longname);
9474 websBufferWrite(wp, "Invalid <b>%s</b>: Inbound Port Range must be less than 100<br>", v->longname);
9509 validate_trf_mgmt_port(webs_t wp, char *value, struct variable *v, char *varname)
9535 if (!valid_range(wp, value, v)){
9536 websBufferWrite(wp, "Invalid traffic management port string <b>%s</b><br>",value);
9545 if (!(*locals[j] = websGetVar(wp, name, NULL)))
9557 if (websGetVar(wp, name, NULL))
9564 if (websGetVar(wp, name, NULL))
9570 if (!valid_choice(wp, proto, &fields[0])) {
9587 websBufferWrite(wp, "Invalid <b>settings at index %d</b> MAC address<br>",i);
9593 if (!valid_hwaddr(wp, dmacaddr, &fields[3]) ||
9594 !valid_choice(wp, prio, &fields[4])) {
9605 websBufferWrite(wp, "Invalid <b>settings at index %d </b><br>",i);
9613 if (!valid_range(wp, sport, &fields[1])) {
9615 websBufferWrite(wp, "Invalid <b>settings at index %d </b><br>",i);
9624 if (!valid_range(wp, dport, &fields[2])) {
9626 websBufferWrite(wp, "Invalid <b>settings at index %d </b><br>",i);
9645 validate_lan_route(webs_t wp, char *value, struct variable *v, char *varname)
9690 if (!(ipaddr = websGetVar(wp, lan_route_ipaddr, NULL)) ||
9691 !(netmask = websGetVar(wp, lan_route_netmask, NULL)) ||
9692 !(gateway = websGetVar(wp, lan_route_gateway, NULL)) ||
9693 !(metric = websGetVar(wp, lan_route_metric, NULL)))
9706 websBufferWrite(wp, "Invalid <b>%s</b>: must specify an IP Address<br>", v->longname);
9710 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a Subnet Mask<br>", v->longname);
9719 if (!valid_ipaddr(wp, ipaddr, &lan_route_variables[0]) ||
9720 !valid_ipaddr(wp, netmask, &lan_route_variables[1]) ||
9721 !valid_ipaddr(wp, gateway, &lan_route_variables[2]) ||
9722 !valid_range(wp, metric, &lan_route_variables[3]))
9737 validate_emf_entry(webs_t wp, char *value, struct variable *v, char *varname)
9759 if (!(mgrp = websGetVar(wp, emf_entry_mgrp, NULL)) ||
9760 !(ifname = websGetVar(wp, emf_entry_if, NULL)))
9769 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a valid multicast IP Address<br>",
9775 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a LAN interface name<br>",
9783 websBufferWrite(wp, "Invalid <b>%s</b>: must specify one of the bridge interfaces<br>",
9808 validate_emf_uffp_entry(webs_t wp, char *value, struct variable *v, char *varname)
9826 if (!(ifname = websGetVar(wp, emf_uffp_entry_if, NULL)))
9833 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a LAN interface name<br>",
9841 websBufferWrite(wp, "Invalid <b>%s</b>: must specify one of the bridge interfaces<br>",
9865 validate_emf_rtport_entry(webs_t wp, char *value, struct variable *v, char *varname)
9883 if (!(ifname = websGetVar(wp, emf_rtport_entry_if, NULL)))
9890 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a LAN interface name<br>",
9898 websBufferWrite(wp, "Invalid <b>%s</b>: must specify one of the bridge interfaces<br>",
9924 validate_wan_route(webs_t wp, char *value, struct variable *v, char *varname)
9952 if (!(ipaddr = websGetVar(wp, wan_route_ipaddr, NULL)) ||
9953 !(netmask = websGetVar(wp, wan_route_netmask, NULL)) ||
9954 !(gateway = websGetVar(wp, wan_route_gateway, NULL)) ||
9955 !(metric = websGetVar(wp, wan_route_metric, NULL)))
9968 websBufferWrite(wp, "Invalid <b>%s</b>: must specify an IP Address<br>", v->longname);
9972 websBufferWrite(wp, "Invalid <b>%s</b>: must specify a Subnet Mask<br>", v->longname);
9975 if (!valid_ipaddr(wp, ipaddr, &wan_route_variables[0]) ||
9976 !valid_ipaddr(wp, netmask, &wan_route_variables[1]) ||
9977 !valid_ipaddr(wp, gateway, &wan_route_variables[2]) ||
9978 !valid_range(wp, metric, &wan_route_variables[3]))
9995 validate_ipv6mode(webs_t wp, char *value, struct variable *v , char *varname)
10001 if (!valid_range(wp, value, v)) {
10002 websBufferWrite(wp, "<p>Invalid <b>%s</b> %s: Unsupported IPv6 mode.<br>",
10019 validate_ipv6prefix(webs_t wp, char *value, struct variable *v , char *varname)
10030 websBufferWrite(wp, "<p>Invalid <b>%s</b> %s: IPv6 network prefix contains an IPv6 address followed by a slash(/) and then by the number of netmask bits.<br>",
10036 websBufferWrite(wp, "<p>Invalid <b>%s</b> %s: the number of netmask bits after shash(/) is between 1~127.<br>",
10042 websBufferWrite(wp, "<p>Invalid <b>%s</b> %s: Not a proper IPv6 address before slash(/).<br>",
10057 validate_ipv6addr(webs_t wp, char *value, struct variable *v , char *varname)
10064 websBufferWrite(wp, "<p>Invalid <b>%s</b> %s: Incorrect IPv6 address format.<br>",
10083 validate_wl_auth(webs_t wp, char *value, struct variable *v, char *varname)
10090 if (!valid_choice(wp, value, v)){
10091 websBufferWrite(wp, "Invalid auth value string <b>%s</b><br>",value);
10096 char *wep = websGetVar(wp, "wl_wep", "");
10098 websBufferWrite(wp, "Invalid <b>WEP Encryption</b>: must be <b>Enabled</b> when <b>802.11 Authentication</b> is <b>%s</b><br>", value);
10115 validate_wl_preauth(webs_t wp, char *value, struct variable *v, char *varname)
10134 validate_wl_auth_mode(webs_t wp, char *value, struct variable *v, char *varname)
10141 if (!valid_choice(wp, value, v)){
10142 websBufferWrite(wp, "Invalid auto mode string <b>%s</b>",value);
10147 char *wep = websGetVar(wp, "wl_wep", "");
10148 char *ipaddr = websGetVar(wp, "wl_radius_ipaddr", "");
10150 websBufferWrite(wp, "Invalid <b>WEP Encryption</b>: must be <b>Enabled</b> when <b>Network Authentication</b> is <b>%s</b><br>", value);
10154 websBufferWrite(wp, "Invalid <b>%s</b>: must first specify a valid <b>RADIUS Server</b><br>", v->longname);
10169 validate_wl_akm(webs_t wp, char *value, struct variable *v, char *varname)
10180 wpa = websGetVar(wp, "wl_akm_wpa", NULL);
10183 psk = websGetVar(wp, "wl_akm_psk", NULL);
10186 wpa2 = websGetVar(wp, "wl_akm_wpa2", NULL);
10189 psk2 = websGetVar(wp, "wl_akm_psk2", NULL);
10192 brcm_psk = websGetVar(wp, "wl_akm_brcm_psk", NULL);
10199 char *ipaddr = websGetVar(wp, "wl_radius_ipaddr", "");
10201 websBufferWrite(wp, "Invalid <b>%s</b>: must first specify a valid <b>RADIUS Server</b><br>", v->longname);
10209 char *key = websGetVar(wp, "wl_wpa_psk", "");
10211 websBufferWrite(wp, "Invalid <b>%s</b>: must first specify a valid <b>WPA Pre-Shared Key</b><br>", v->longname);
10219 char *crypto = websGetVar(wp, "wl_crypto", NULL);
10228 websBufferWrite(wp, "Invalid <b>%s</b>: <b>Crypto Algorithm</b> mode must be TKIP or AES or TKIP+AES<br>", v->longname);
10269 validate_wl_wpa_psk(webs_t wp, char *value, struct variable *v, char *varname)
10282 websBufferWrite(wp, "Invalid <b>%s</b>: character %c is not a hexadecimal digit<br>", v->longname, *c);
10287 websBufferWrite(wp, "Invalid <b>%s</b>: must be between 8 and 63 ASCII characters or 64 hexadecimal digits<br>", v->longname);
10306 validate_wl_key(webs_t wp, char *value, struct variable *v, char *varname)
10322 websBufferWrite(wp, "Invalid <b>%s</b>: character %c is not a hexadecimal digit<br>", v->longname, *c);
10328 websBufferWrite(wp, "Invalid <b>%s</b>: must be 5 or 13 ASCII characters or 10 or 26 hexadecimal digits<br>", v->longname);
10341 validate_wl_wep(webs_t wp, char *value, struct variable *v, char *varname)
10349 if (!valid_choice(wp, value, v)){
10350 websBufferWrite(wp, "Invalid wep string <b>%s</b>",value);
10360 auth = websGetVar(wp, "wl_auth", "");
10362 auth_mode = websGetVar(wp, "wl_auth_mode", NULL);
10378 websBufferWrite(wp, "Invalid <b>%s</b>: must first specify a valid <b>Network Key %s</b><br>",
10381 websBufferWrite(wp, "<b>%s</b> is <b>Disabled</b><br>", v->longname);
10388 if (strcmp(websGetVar(wp, "wl_wps_mode", ""), "enabled") == 0) {
10392 websError(wp, 400, "unit number variable doesn't exist\n");
10402 websBufferWrite(wp, "Invalid <b>WEP Encryption</b>: must be <b>Enabled</b> when <b>Network Authentication</b> is <b>%s</b><br>", auth_mode);
10413 validate_wl_crypto(webs_t wp, char *value, struct variable *v, char *varname)
10421 if (!valid_choice(wp, value, v)){
10422 websBufferWrite(wp, "Invalid crypto config string <b>%s</b>",value);
10442 validate_wl_mfp(webs_t wp, char *value, struct variable *v, char *varname)
10461 validate_wan_ifname(webs_t wp, char *value, struct variable *v, char *varname)
10474 websBufferWrite(wp, "Invalid <b>%s</b>: must be one of <b>%s</b><br>", v->longname, nvram_safe_get("wan_ifnames"));
10479 validate_wl_lazywds(webs_t wp, char *value, struct variable *v, char *varname)
10484 validate_choice(wp, value, v, varname);
10488 validate_wl_wds_hwaddrs(webs_t wp, char *value, struct variable *v, char *varname)
10493 validate_list(wp, value, v, valid_hwaddr, varname);
10502 validate_dpsta(webs_t wp, callfrom_e callfrom)
10516 if ((temp = websGetVar(wp, "wl_unit", NULL))) {
10521 websError(wp, 400, "psta can't be enabled for a virtual i/f\n");
10527 websError(wp, 400, "Insufficient args\n");
10538 wl_dwds = websGetVar(wp, "wl_dwds", NULL);
10551 mode[wl_unit]= websGetVar(wp, "wl_mode", NULL);
10591 validate_psta(webs_t wp, char *value, struct variable *v, char *varname)
10612 if ((temp = websGetVar(wp, "wl_unit", NULL))) {
10615 websError(wp, 400, "psta error getting wl_unit\n");
10622 websError(wp, 400, "psta can't be enabled for a virtual i/f\n");
10629 websError(wp, 400, "Insufficient args\n");
10634 wl_mode = websGetVar(wp, "wl_mode", NULL);
10673 websError(wp, 400, "string too long\n");
10758 websError(wp, 400, "string too long\n");
10790 validate_wl_mode(webs_t wp, char *value, struct variable *v, char *varname)
10796 if (!valid_choice(wp, value, v))
10800 if (!validate_psta(wp, value, v, varname))
10809 validate_dpsta(wp, CALLFROM_PSTA);
10815 validate_wl_dwds(webs_t wp, char *value, struct variable *v, char *varname)
10821 if (!valid_choice(wp, value, v))
10830 validate_dpsta(wp, CALLFROM_DWDS);
10836 validate_wme_bool(webs_t wp, char *value, struct variable *v,char *varname)
10845 if (!(wme = websGetVar(wp, "wl_wme", NULL))){
10853 validate_choice(wp, value, v, varname);
10861 validate_wl_wme_params(webs_t wp, char *value, struct variable *v, char *varname)
10873 if (!(s = websGetVar(wp, "wl_wme", NULL))) {
10892 if ((value = websGetVar(wp, strcat_r(v->name, "0", tmp), NULL)) != NULL)
10895 if ((value = websGetVar(wp, strcat_r(v->name, "1", tmp), NULL)) != NULL)
10908 if ((value = websGetVar(wp, strcat_r(v->name, "2", tmp), NULL)) != NULL)
10916 if ((value = websGetVar(wp, strcat_r(v->name, "3", tmp), NULL)) != NULL)
10919 if ((value = websGetVar(wp, strcat_r(v->name, "4", tmp), NULL)) != NULL)
10927 if ((value = websGetVar(wp, strcat_r(v->name, "5", tmp), NULL)) != NULL)
10933 if ((value = websGetVar(wp, strcat_r(v->name, "6", tmp), NULL)) != NULL)
10949 websBufferWrite(wp, "Error setting WME AC value: <b>");
10950 websBufferWrite(wp, errmsg);
10951 websBufferWrite(wp, "<b><br>");
11043 validate_wl_wme_tx_params(webs_t wp, char *value, struct variable *v, char *varname)
11054 if (!(s = websGetVar(wp, "wl_wme", NULL))) {
11072 if ((value = websGetVar(wp, strcat_r(v->name, "0", tmp), NULL)) != NULL)
11080 if ((value = websGetVar(wp, strcat_r(v->name, "1", tmp), NULL)) != NULL)
11088 if ((value = websGetVar(wp, strcat_r(v->name, "2", tmp), NULL)) != NULL)
11096 if ((value = websGetVar(wp, strcat_r(v->name, "3", tmp), NULL)) != NULL)
11104 if ((value = websGetVar(wp, strcat_r(v->name, "4", tmp), NULL)) != NULL)
11123 websBufferWrite(wp, "Error setting WME TX parameters value: <b>");
11124 websBufferWrite(wp, errmsg);
11125 websBufferWrite(wp, "<b><br>");
11129 validate_dfs_prefchan(webs_t wp, char *value, struct variable *v, char *varname)
11134 if ((value = websGetVar(wp, strcat_r(v->name, "0", tmp), NULL)) != NULL)
11138 if ((value = websGetVar(wp, strcat_r(v->name, "1", tmp), NULL)) != NULL)
11142 if ((value = websGetVar(wp, strcat_r(v->name, "2", tmp), NULL)) != NULL)
11146 if ((value = websGetVar(wp, strcat_r(v->name, "3", tmp), NULL)) != NULL)
11150 if ((value = websGetVar(wp, strcat_r(v->name, "4", tmp), NULL)) != NULL)
11154 if ((value = websGetVar(wp, strcat_r(v->name, "5", tmp), NULL)) != NULL)
11168 wl_unit(webs_t wp, char *value, struct variable *v, char *varname)
11181 if ((wl_bssid = websGetVar(wp, "wl_bssid", NULL)) && (atoi(wl_bssid))){
11207 wan_primary(webs_t wp)
11221 websBufferWrite(wp, "<br><b>%s</b> is set to primary.",
11229 wan_unit(webs_t wp, char *value, struct variable *v, char *varname)
11302 websBufferWrite(wp, "<br><b>%s</b> is <b>disabled</b> because both "
11321 websBufferWrite(wp, "<br><b>%s</b> is <b>disabled</b> because both its "
11333 websBufferWrite(wp, "<br><b>%s</b> is <b>disabled</b> because it can't "
11361 websBufferWrite(wp, "<br><b>%s</b> is disabled because it can't share "
11394 websBufferWrite(wp, "<br><b>MAC Address</b> in <b>%s</b> is changed to "
11436 websBufferWrite(wp, "<br><b>%s</b> is set to non-primary.",
11458 wan_primary(wp);
12071 validate_lan_cgi(webs_t wp)
12117 websBufferInit(wp);
12123 value = websGetVar(wp, "num_lan_ifaces" , NULL);
12146 value = websGetVar(wp, buf , NULL);
12209 value = websGetVar(wp, lanA_ipaddr , NULL);
12213 value = websGetVar(wp, lanB_ipaddr , NULL);
12217 value = websGetVar(wp, lanA_netmask , NULL);
12221 value = websGetVar(wp, lanB_netmask , NULL);
12232 valueA = websGetVar(wp , lanA_proto , NULL);
12233 valueB = websGetVar(wp , lanB_proto , NULL);
12242 value = websGetVar(wp, dhcpA_start , NULL);
12246 value = websGetVar(wp, dhcpB_start , NULL);
12259 value = websGetVar(wp, dhcpA_end , NULL);
12263 value = websGetVar(wp, dhcpB_end , NULL);
12311 value = websGetVar(wp, var, NULL);
12317 v->validate(wp, value, v, var);
12346 websWrite(wp, err_msg);
12348 websBufferFlush(wp);
12352 validate_cgi(webs_t wp)
12357 websBufferInit(wp);
12359 websWrite(wp, "out of memory<br>");
12360 websDone(wp, 0);
12367 if (!(value = websGetVar(wp, v->name, NULL)))
12376 v->validate(wp, value, v, NULL);
12379 websBufferFlush(wp);
12928 static int wps_get_credentials(webs_t wp, char *uibuf, int uilen)
12934 if ((value = websGetVar(wp, "wps_ssid", NULL)))
12939 websWrite(wp, "Unable to get SSID.");
12944 if ((value = websGetVar(wp, "wps_akm", NULL)))
12954 websWrite(wp, "Unable to get Authentication Type.");
12959 if ((value = websGetVar(wp, "wps_crypto", NULL)))
12965 websWrite(wp, "Unable to get Encryption Type.");
12971 if ((value = websGetVar(wp, "wps_psk", NULL)))
12977 websWrite(wp, "Unable to get Passphrase Key.");
12984 static int wps_cgi(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg,
12999 action_mode = websGetVar(wp, "action", NULL);
13002 websError(wp, 400, "action mode is not specified\n");
13007 websError(wp, 400, "unit number variable doesn't exist\n");
13012 websWrite(wp, "Reset to OOB ...");
13030 websWrite(wp, "Validating values...");
13032 if (!(wps_ssid = websGetVar(wp, "wps_ssid", NULL))) {
13033 websWrite(wp, "Unable to get WPS SSID.\n");
13037 if ((wps_akm = websGetVar(wp, "wps_akm", NULL))) {
13042 websWrite(wp, "Unable to get Authentication Type.\n");
13047 if (!(wps_crypto = websGetVar(wp, "wps_crypto", NULL))) {
13048 websWrite(wp, "Unable to get Encryption Type.\n");
13052 if (!(wps_psk = websGetVar(wp, "wps_psk", NULL))) {
13053 websWrite(wp, "Unable to get WPA passphrase.\n");
13062 websWrite(wp, "Invalid <b>WPA passphase</b>: character %c is not a hexadecimal digit<br>", *c);
13067 websWrite(wp, "Invalid <b>WPA passphase</b>: must be between 8 and 63 ASCII characters or 64 hexadecimal digits<br>");
13090 websWrite(wp, "done<br>");
13091 websWrite(wp, "Committing values...");
13095 websWrite(wp, "done<br>");
13100 websWrite(wp, "validate variable...\n");
13102 websWrite(wp, "WPS is preparing to Add Enrollee...\n");
13105 uilen = wps_get_credentials(wp, uibuf, uilen);
13110 if ((value = websGetVar(wp, "wps_sta_pin", NULL))) {
13121 websWrite(wp, "Warning: PIN checksum is invalid.\n");
13126 value = websGetVar(wp, "wps_autho_sta_mac", NULL);
13137 websWrite(wp, "Invalid <b>Authorized Station MAC</b> "
13150 websWrite(wp, "OK");
13168 websWrite(wp, "validate variable...\n");
13170 if (!(value = websGetVar(wp, "wps_action", NULL))) {
13171 websWrite(wp, "Unable to get wps action.\n");
13184 websWrite(wp, "WPS is preparing to %s...\n", value);
13190 value = websGetVar(wp, "wps_method", NULL);
13204 websWrite(wp, "<br><br>Please place your NFC token now!<br>\n");
13214 uilen = wps_get_credentials(wp, uibuf, uilen);
13223 value = websGetVar(wp, "wps_method", NULL);
13230 websWrite(wp, "<br><br>Please place your NFC password token now!<br>\n");
13239 if ((value = websGetVar(wp, "wps_ap_pin", NULL)))
13241 websWrite(wp, "Input AP PIN is invalidated.");
13261 if ((value = websGetVar(wp, "wps_ap_list", NULL)) == NULL ||
13265 websWrite(wp, "Unable to get selected WPS AP.");
13278 websWrite(wp, "OK");
13294 websWrite(wp, "Re-Scanning WPS supported AP(s)...");
13296 websWrite(wp, "OK");
13301 websWrite(wp, "validate variable...\n");
13306 if ((value = websGetVar(wp, "wps_action", NULL)) == NULL) {
13307 websError(wp, 400, "wps_action does not exist\n");
13321 websWrite(wp, "OK");
13337 websWrite(wp, "OK");
13363 websWrite(wp, "Generating WPS PIN number...");
13367 websWrite(wp, "OK");
13376 websWrite(wp, "WPS process stopped");
13381 websWrite(wp, "Please place your NFC token now!");
13388 uilen = wps_get_credentials(wp, uibuf, uilen);
13400 websWrite(wp, "Please place your configured NFC token now!");
13412 websWrite(wp, "Stopping NFC writing....");
13425 websWrite(wp, "Stopping NFC reading....");
13438 websWrite(wp, "Please place your NFC password token now!");
13449 uilen = wps_get_credentials(wp, uibuf, uilen);
13465 websWrite(wp, "Please place your NFC token now!");
13476 uilen = wps_get_credentials(wp, uibuf, uilen);
13493 websWrite(wp, "Please place your NFC portable device now!");
13500 uilen = wps_get_credentials(wp, uibuf, uilen);
13512 websWrite(wp, "Please place your NFC device to AP now!");
13524 websWrite(wp, "Stopping NFC Hand Over....");
13545 websWrite(wp, "Validating values...");
13547 invite_name = websGetVar(wp, "invite_name", "");
13548 invite_mac = websGetVar(wp, "invite_mac", "");
13552 websWrite(wp, "done<br>");
13554 websWrite(wp, "Committing values...");
13555 websWrite(wp, "done<br>");
13557 websWrite(wp, "Inviting the STA...<p>");
13584 websWrite(wp, "<script type=\"text/javascript\">\n");
13585 websWrite(wp, "<!--\n");
13586 websWrite(wp, "window.location = \"%s\"\n", "cancelinvite.asp");
13587 websWrite(wp, "//-->\n");
13588 websWrite(wp, "</script>\n");
13590 websFooter(wp);
13591 websDone(wp, 200);
13616 websWrite(wp, "<p>Action is canceled <p>\n");
13617 websWrite(wp, "<script type=\"text/javascript\">\n");
13618 websWrite(wp, "<!--\n");
13619 websWrite(wp, "window.location = \"%s\"\n", "invite.asp");
13620 websWrite(wp, "//-->\n");
13621 websWrite(wp, "</script>\n");
13623 websFooter(wp);
13624 websDone(wp, 200);
13632 wfi_count = websGetVar(wp, "count", "");
13677 websWrite(wp, " Invite successful.\n");
13682 websWrite(wp, " The station did not respond.\n");
13686 websWrite(wp, " The station rejected the invitation.\n");
13689 websWrite(wp, " Cancelled.\n");
13692 websWrite(wp, " WPS Failed.\n");
13693 websWrite(wp, (char_t *) apply_footer, "invite.asp");
13694 websFooter(wp);
13695 websDone(wp, 200);
13702 websWrite(wp, "<script type=\"text/javascript\">\n");
13703 websWrite(wp, "<!--\n");
13704 websWrite(wp, "window.location = \"%s\"\n", "cancelinvite.asp");
13705 websWrite(wp, "//-->\n");
13706 websWrite(wp, "</script>\n");
13708 websFooter(wp);
13709 websDone(wp, 200);
13716 wps_sta_pin = websGetVar(wp, "wps_sta_pin", "");
13735 apply_cgi(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg,
13743 websHeader(wp);
13744 websWrite(wp, (char_t *) apply_header);
13746 page = websGetVar(wp, "page", "");
13748 value = websGetVar(wp, "action", "");
13753 websWrite(wp, "Validating values...");
13756 validate_cgi(wp);
13758 validate_lan_cgi(wp);
13761 websWrite(wp, "<br>");
13764 websWrite(wp, "done<br>");
13765 websWrite(wp, "Committing values...");
13769 websWrite(wp, "done<br>");
13775 websWrite(wp, "Restoring defaults...");
13782 websWrite(wp, "done<br>");
13788 websWrite(wp, "Releasing lease...");
13790 websWrite(wp, "error<br>");
13792 websWrite(wp, "done<br>");
13798 websWrite(wp, "Renewing lease...");
13800 websWrite(wp, "error<br>");
13802 websWrite(wp, "done<br>");
13808 websWrite(wp, "Rebooting...");
13815 char *os_server = websGetVar(wp, "os_server", nvram_safe_get("os_server"));
13816 char *os_version = websGetVar(wp, "os_version", "current");
13822 websWrite(wp, "Retrieving %s...", upgrade_url);
13824 websWrite(wp, "error<br>");
13827 websWrite(wp, "done<br>");
13834 char *server = websGetVar(wp, "stats_server", nvram_safe_get("stats_server"));
13835 websWrite(wp, "Contacting %s...", server);
13837 websWrite(wp, "error<br>");
13840 websWrite(wp, "done<br>");
13846 websWrite(wp, "Turing Off Radio...");
13847 wl_radio_onoff(wp, 1);
13851 websWrite(wp, "Radio on...");
13852 wl_radio_onoff(wp, 0);
13859 if (!(value = websGetVar(wp, "wan_unit", NULL)) ||
13861 websWrite(wp, "Unable to delete connection, index error.");
13880 websWrite(wp, "Can not delete the last connection.");
13887 websWrite(wp, "Deleting connection...");
13920 wan_primary(wp);
13925 websWrite(wp, "done<br>");
13933 value = websGetVar(wp, "sn", NULL);
13935 websWrite(wp, "Invalid Revoke action<br>");
13938 cert_revoke(wp, value);
13945 wps_cgi(wp, urlPrefix, webDir, arg, url, path, query);
13951 websWrite(wp, "Invalid action %s<br>", value);
13954 websWrite(wp, (char_t *) apply_footer, websGetVar(wp, "page", ""));
13955 websFooter(wp);
13956 websDone(wp, 200);
13967 copy_wl_index_to_unindex(webs_t wp, char_t *urlPrefix, char_t *webDir,
13981 if ((value = websGetVar(wp, "action", NULL))) {
13988 if ((value = websGetVar(wp, "wl_unit", NULL))) {
13989 if ((wl_bssid = websGetVar(wp, "wl_bssid", NULL)) && (atoi(wl_bssid))){
13994 return apply_cgi(wp, urlPrefix, webDir, arg, url, path, query);
14001 if ((value = websGetVar(wp, "wl_unit", NULL))) {
14002 if ((wl_bssid = websGetVar(wp, "wl_bssid", NULL)) && (atoi(wl_bssid))){
14011 return websDefaultHandler(wp, urlPrefix, webDir, arg, url, path, query);
14023 websError(wp, 400, "Unable to remove duplicate interfaces from ifname list<br>");
14069 return apply_cgi(wp, urlPrefix, webDir, arg, url, path, query);
14072 return websDefaultHandler(wp, urlPrefix, webDir, arg, url, path, query);
14077 wan_asp(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg,
14088 if ((value = websGetVar(wp, "action", NULL))) {
14097 websHeader(wp);
14098 websWrite(wp, (char_t *) apply_header);
14099 websWrite(wp, "Unable to create new connection. Maximum %d.", MAX_NVPARSE);
14100 websWrite(wp, (char_t *) apply_footer, websGetVar(wp, "page", ""));
14101 websFooter(wp);
14102 websDone(wp, 200);
14123 if ((value = websGetVar(wp, "wan_unit", NULL)))
14129 return apply_cgi(wp, urlPrefix, webDir, arg, url, path, query);
14131 else if ((value = websGetVar(wp, "wan_unit", NULL)))
14159 return websDefaultHandler(wp, urlPrefix, webDir, arg, url, path, query);
15333 cert_revoke(webs_t wp, char *sn_str)
15343 websWrite(wp, "Communicate to AS server failed<br>");
15347 websWrite(wp, "Revoke certificate(%s) failed<br>", sn_str);
15349 websWrite(wp, "%s<br>", rbuf);
15359 ej_as_cer_display(int eid, webs_t wp, int argc, char_t **argv)
15390 websWrite(wp, "<tr>");
15391 websWrite(wp, "<td>%s</td>", na);
15392 websWrite(wp, "<td>%s</td>", sn);
15393 websWrite(wp, "<td>%s</td>", dur);
15394 websWrite(wp, "<td>%s</td>", remain);
15395 websWrite(wp, "<td>%s</td>", type);
15396 websWrite(wp, "<td>%s</td>", status);
15399 websWrite(wp, "<form method=\"post\" action=\"apply.cgi\">");
15400 websWrite(wp, "<td>");
15401 websWrite(wp, "<input type=\"hidden\" name=\"sn\" value=\"%s\">", sn);
15402 websWrite(wp, "<input type=\"hidden\" name=\"page\" value=\"as.asp\">");
15403 websWrite(wp, "<input type=\"submit\" name=\"action\" value=\"Revoke\">");
15404 websWrite(wp, "</td>");
15405 websWrite(wp, "</form>");
15408 websWrite(wp, "<td></td>");
15411 websWrite(wp, "</tr>");
16319 do_storage(webs_t wp, char_t *urlPrefix, char_t *webDir,
16323 if ((websGetVar(wp, "action", NULL))) {
16327 return apply_cgi(wp, urlPrefix, webDir, arg, url, path, query);
16330 return websDefaultHandler(wp, urlPrefix, webDir, arg, url, path, query);