• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/rc/

Lines Matching defs:wan_unit

37 int update_wan_leds(int wan_unit)
41 int mode = sw_mode, l = link_wan[wan_unit], state;
44 if (wan_unit < 0 || wan_unit >= WAN_UNIT_MAX)
56 if (wan_unit)
80 if (wan_primary_ifunit() != wan_unit)
83 sprintf(s, "wan%d_state_t", wan_unit);
85 if (dualwan_unit__nonusbif(wan_unit))
86 l = get_wanports_status(wan_unit);
106 if (link_wan[wan_unit]) {
421 int do_ping_detect(int wan_unit)
429 sprintf(prefix_wan, "wan%d_", wan_unit);
562 int do_tcp_dns_detect(int wan_unit){
574 sprintf(prefix_wan, "wan%d_", wan_unit);
604 int detect_internet(int wan_unit){
612 sprintf(prefix_wan, "wan%d_", wan_unit);
615 strcpy(wan_ifname, get_wan_ifname(wan_unit));
621 !found_default_route(wan_unit)
627 else if(!isFirstUse && (!do_dns_detect() && !do_tcp_dns_detect(wan_unit) && !do_ping_detect(wan_unit)))
632 && wandog_enable == 1 && !isFirstUse && !do_ping_detect(wan_unit))
642 record_wan_state_nvram(wan_unit, -1, -1, WAN_AUXSTATE_NO_INTERNET_ACTIVITY);
655 record_wan_state_nvram(wan_unit, -1, -1, WAN_AUXSTATE_NONE);
753 unsigned long long get_wan_flow(int wan_unit){
756 if(dualwan_unit__usbif(wan_unit)){
765 total = (unsigned long long)traffic_limiter_get_realtime(wan_unit) * 1024 * 1024 * 1024;
766 if(test_log) _dprintf("[TRAFFIC LIMITER] /tmp/tl%d_realtime = %lld\n", wan_unit, total);
775 int chk_proto(int wan_unit){
776 int wan_sbstate = nvram_get_int(nvram_sbstate[wan_unit]);
780 unsigned long long total = get_wan_flow(wan_unit);
784 sprintf(prefix_wan, "wan%d_", wan_unit);
801 disconn_case[wan_unit] = CASE_DATALIMIT;
808 if(current_state[wan_unit] == WAN_STATE_STOPPED) {
810 disconn_case[wan_unit] = CASE_THESAMESUBNET;
811 else disconn_case[wan_unit] = CASE_DHCPFAIL;
814 else if(current_state[wan_unit] == WAN_STATE_INITIALIZING){
815 disconn_case[wan_unit] = CASE_DHCPFAIL;
818 else if(current_state[wan_unit] == WAN_STATE_CONNECTING){
819 disconn_case[wan_unit] = CASE_DHCPFAIL;
822 else if(current_state[wan_unit] == WAN_STATE_DISCONNECTED){
823 disconn_case[wan_unit] = CASE_DHCPFAIL;
831 if (dualwan_unit__usbif(wan_unit)) {
841 if(current_state[wan_unit] != WAN_STATE_STOPPED || wan_sbstate != WAN_STOPPED_REASON_DATALIMIT){
842 csprintf("wanduck(%d): chk_proto() detect the data limit.\n", wan_unit);
843 record_wan_state_nvram(wan_unit, WAN_STATE_STOPPED, WAN_STOPPED_REASON_DATALIMIT, -1);
844 current_state[wan_unit] = WAN_STATE_STOPPED;
868 if(current_state[wan_unit] == WAN_STATE_INITIALIZING){
869 disconn_case[wan_unit] = CASE_PPPFAIL;
872 else if(current_state[wan_unit] == WAN_STATE_CONNECTING){
876 record_wan_state_nvram(wan_unit, -1, WAN_STOPPED_REASON_PPP_AUTH_FAIL, -1);
878 record_wan_state_nvram(wan_unit, -1, WAN_STOPPED_REASON_PPP_LACK_ACTIVITY, -1);
880 record_wan_state_nvram(wan_unit, -1, WAN_STOPPED_REASON_PPP_NO_ACTIVITY, -1);
882 disconn_case[wan_unit] = CASE_PPPFAIL;
885 else if(current_state[wan_unit] == WAN_STATE_DISCONNECTED){
886 disconn_case[wan_unit] = CASE_PPPFAIL;
889 else if(current_state[wan_unit] == WAN_STATE_STOPPED){
892 disconn_case[wan_unit] = CASE_DATALIMIT;
896 disconn_case[wan_unit] = CASE_THESAMESUBNET;
898 disconn_case[wan_unit] = CASE_DHCPFAIL;
900 disconn_case[wan_unit] = CASE_PPPFAIL;
913 if(traffic_limiter_wanduck_check(wan_unit)){
914 if(current_state[wan_unit] != WAN_STATE_STOPPED || wan_sbstate != WAN_STOPPED_REASON_DATALIMIT){
915 csprintf("wanduck(%d): chk_proto() detect the data limit - dhcp / static.\n", wan_unit);
916 record_wan_state_nvram(wan_unit, WAN_STATE_STOPPED, WAN_STOPPED_REASON_DATALIMIT, -1);
917 current_state[wan_unit] = WAN_STATE_STOPPED;
923 if(current_state[wan_unit] == WAN_STATE_INITIALIZING){
924 disconn_case[wan_unit] = CASE_DHCPFAIL;
927 else if(current_state[wan_unit] == WAN_STATE_CONNECTING){
931 if (!strcmp(wan_proto, "static") && link_wan[wan_unit]) {
936 disconn_case[wan_unit] = r;
939 disconn_case[wan_unit] = CASE_DHCPFAIL;
943 else if(current_state[wan_unit] == WAN_STATE_DISCONNECTED){
944 disconn_case[wan_unit] = CASE_DHCPFAIL;
947 else if(current_state[wan_unit] == WAN_STATE_STOPPED) {
950 disconn_case[wan_unit] = CASE_DATALIMIT;
954 disconn_case[wan_unit] = CASE_THESAMESUBNET;
956 disconn_case[wan_unit] = CASE_DHCPFAIL;
970 if(traffic_limiter_wanduck_check(wan_unit)){
971 if(current_state[wan_unit] != WAN_STATE_STOPPED || wan_sbstate != WAN_STOPPED_REASON_DATALIMIT){
972 csprintf("wanduck(%d): chk_proto() detect the data limit - pppoe / pptp / l2tp.\n", wan_unit);
973 record_wan_state_nvram(wan_unit, WAN_STATE_STOPPED, WAN_STOPPED_REASON_DATALIMIT, -1);
974 current_state[wan_unit] = WAN_STATE_STOPPED;
980 if(current_state[wan_unit] != WAN_STATE_CONNECTED
983 if(current_state[wan_unit] == WAN_STATE_STOPPED) // Sometimes ip_down() didn't set it.
984 record_wan_state_nvram(wan_unit, -1, WAN_STOPPED_REASON_PPP_LACK_ACTIVITY, -1);
986 else if(current_state[wan_unit] == WAN_STATE_INITIALIZING){
987 disconn_case[wan_unit] = CASE_PPPFAIL;
990 else if(current_state[wan_unit] == WAN_STATE_CONNECTING){
992 record_wan_state_nvram(wan_unit, -1, WAN_STOPPED_REASON_PPP_AUTH_FAIL, -1);
994 record_wan_state_nvram(wan_unit, -1, WAN_STOPPED_REASON_PPP_LACK_ACTIVITY, -1);
996 record_wan_state_nvram(wan_unit, -1, WAN_STOPPED_REASON_PPP_NO_ACTIVITY, -1);
998 disconn_case[wan_unit] = CASE_PPPFAIL;
1001 else if(current_state[wan_unit] == WAN_STATE_DISCONNECTED){
1002 disconn_case[wan_unit] = CASE_PPPFAIL;
1005 else if(current_state[wan_unit] == WAN_STATE_STOPPED){
1008 disconn_case[wan_unit] = CASE_DATALIMIT;
1011 disconn_case[wan_unit] = CASE_PPPFAIL;
1019 int if_wan_phyconnected(int wan_unit){
1036 if(wan_unit == WAN_UNIT_FIRST && dualwan_unit__nonusbif(wan_unit) && get_dualwan_by_unit(other_wan_unit) == WANS_DUALWAN_IF_NONE){
1132 if(dualwan_unit__usbif(wan_unit)){
1133 snprintf(prefix, sizeof(prefix), "wan%d_", wan_unit);
1136 wan_state = nvram_get_int(nvram_state[wan_unit]);
1166 csprintf("wanduck(%d): detect the USB scan.\n", wan_unit);
1167 link_wan[wan_unit] = 4;
1178 link_wan[wan_unit] = is_usb_modem_ready(); // include find_modem_type.sh
1179 if(link_wan[wan_unit] && strlen(modem_type) <= 0)
1185 if(link_wan[wan_unit] == 1){
1188 csprintf("wanduck(%d): Sleep 3 seconds to wait modem nodes.\n", wan_unit);
1192 csprintf("wanduck(%d): Sleep 2 seconds to wait modem nodes.\n", wan_unit);
1196 wan_state = nvram_get_int(nvram_state[wan_unit]); // after sleep(), wan_state is changed.
1206 csprintf("wanduck(%d): finding the second tty node...\n", wan_unit);
1224 if(sim_state == 3 || !strcmp(nvram_safe_get("modem_pincode"), "") || nvram_get_int(nvram_auxstate[wan_unit]) == WAN_STOPPED_REASON_PINCODE_ERR)
1225 link_wan[wan_unit] = 3;
1228 link_wan[wan_unit] = 0;
1234 if(sim_state == 1 && is_wan_connect(wan_unit)){
1248 nvram_set_int(strcat_r(prefix, "is_usb_modem_ready", tmp), link_wan[wan_unit]);
1250 _dprintf("# wanduck: if_wan_phyconnected: x_Setting=%d, link_modem=%d, sim_state=%d.\n", !isFirstUse, link_wan[wan_unit], sim_state);
1253 update_wan_leds(wan_unit);
1256 if(wan_unit == WAN_UNIT_FIRST)
1259 snprintf(wired_link_nvram, 16, "link_wan%d", wan_unit);
1261 if(link_wan[wan_unit] != nvram_get_int(wired_link_nvram)){
1262 nvram_set_int(wired_link_nvram, link_wan[wan_unit]);
1263 if(link_wan[wan_unit] != 0)
1264 record_wan_state_nvram(wan_unit, -1, -1, WAN_AUXSTATE_NONE);
1266 if(link_wan[wan_unit] == 3){
1272 else if(link_wan[wan_unit] == 4){
1280 if(link_wan[wan_unit] == 3)
1282 else if(link_wan[wan_unit] == 4)
1288 snprintf(prefix, sizeof(prefix), "wan%d_", wan_unit);
1292 link_wan[wan_unit] = get_wanports_status(wan_unit);
1294 if (get_dualwan_by_unit(wan_unit) == WANS_DUALWAN_IF_WAN
1296 || get_dualwan_by_unit(wan_unit) == WANS_DUALWAN_IF_LAN
1300 update_wan_leds(wan_unit);
1303 if(wan_unit == WAN_UNIT_FIRST)
1306 snprintf(wired_link_nvram, 16, "link_wan%d", wan_unit);
1308 if(link_wan[wan_unit] != nvram_get_int(wired_link_nvram)){
1309 if(link_wan[wan_unit]){
1311 record_wan_state_nvram(wan_unit, -1, -1, WAN_AUXSTATE_NONE);
1315 record_wan_state_nvram(wan_unit, -1, -1, WAN_AUXSTATE_NOPHY);
1322 if(!link_wan[wan_unit])
1323 record_wan_state_nvram(wan_unit, -1, -1, WAN_AUXSTATE_NOPHY);
1348 if(dualwan_unit__usbif(wan_unit)){
1349 if(link_wan[wan_unit]){
1352 record_wan_state_nvram(wan_unit, WAN_STATE_INITIALIZING, WAN_STOPPED_REASON_NONE, WAN_AUXSTATE_NONE);
1355 csprintf("wanduck(%d): PHY_RECONN.\n", wan_unit);
1359 record_wan_state_nvram(wan_unit, WAN_STATE_STOPPED, -1, WAN_AUXSTATE_NOPHY);
1360 csprintf("wanduck(%d): SIM or modem is pulled off.\n", wan_unit);
1367 if(!link_setup[wan_unit] && !link_wan[wan_unit]){
1368 link_setup[wan_unit] = 1;
1371 else if(link_setup[wan_unit]){
1372 link_setup[wan_unit] = 0;
1376 disconn_case[wan_unit] = CASE_DISWAN;
1380 disconn_case[wan_unit] = CASE_DHCPFAIL;
1385 else if(!link_wan[wan_unit]){
1394 disconn_case[wan_unit] = CASE_DISWAN;
1397 max_disconn_count[wan_unit] = max_disconn_count[wan_unit]/2;
1398 if(max_disconn_count[wan_unit] < 1)
1399 max_disconn_count[wan_unit] = 1;
1400 max_wait_time[wan_unit] = scan_interval*max_disconn_count[wan_unit];
1407 if(!link_wan[wan_unit]){
1411 record_wan_state_nvram(wan_unit, -1, -1, WAN_AUXSTATE_NOPHY);
1414 disconn_case[wan_unit] = CASE_DISWAN;
1424 disconn_case[wan_unit] = CASE_DISWAN;
1439 record_wan_state_nvram(wan_unit, -1, -1, WAN_AUXSTATE_NOPHY);
1441 disconn_case[wan_unit] = CASE_AP_DISCONN;
1464 int if_wan_connected(int wan_unit){
1465 if(chk_proto(wan_unit) != CONNED)
1468 return detect_internet(wan_unit);
1473 void handle_wan_line(int wan_unit, int action){
1486 else if(conn_changed_state[wan_unit] == D2C || conn_changed_state[wan_unit] == CONNED){
1490 snprintf(prefix_wan, 8, "wan%d_", wan_unit);
1518 else{ // conn_changed_state[wan_unit] == PHY_RECONN
1520 snprintf(cmd, 32, "restart_wan_if %d", wan_unit);
1555 void send_page(int wan_unit, int sfd, char *file_dest, char *url){
1621 else if(conn_changed_state[wan_unit] == C2D || conn_changed_state[wan_unit] == DISCONN){
1623 if(disconn_case[wan_unit] == CASE_DATALIMIT)
1624 sprintf(buf, "%s%s%s%s%s%d%s%s" ,buf , "Connection: close\r\n", "", redirection, "/blocking.asp?flag=", disconn_case[wan_unit], "\r\nContent-Type: text/plain\r\n", "");
1629 if(wan_unit == WAN_UNIT_FIRST && dualwan_unit__nonusbif(wan_unit) && get_dualwan_by_unit(other_wan_unit) == WANS_DUALWAN_IF_NONE && link_wan[other_wan_unit])
1634 if(disconn_case[wan_unit] == CASE_THESAMESUBNET)
1635 sprintf(buf, "%s%s%s%s%s%d%s%s" ,buf , "Connection: close\r\n", "", redirection, "/error_page.htm?flag=", disconn_case[wan_unit], "\r\nContent-Type: text/plain\r\n", "");
1637 sprintf(buf, "%s%s%s%s%s%d%s%s" ,buf , "Connection: close\r\n", "", redirection, "/error_page.htm?flag=", disconn_case[wan_unit], "\r\nContent-Type: text/plain\r\n", "");
1880 void record_wan_state_nvram(int wan_unit, int state, int sbstate, int auxstate){
1881 if(state != -1 && state != nvram_get_int(nvram_state[wan_unit]))
1882 nvram_set_int(nvram_state[wan_unit], state);
1884 if(sbstate != -1 && sbstate != nvram_get_int(nvram_sbstate[wan_unit]))
1885 nvram_set_int(nvram_sbstate[wan_unit], sbstate);
1887 if(auxstate != -1 && auxstate != nvram_get_int(nvram_auxstate[wan_unit]))
1888 nvram_set_int(nvram_auxstate[wan_unit], auxstate);
1891 void record_conn_status(int wan_unit){
1898 sprintf(log_title, "WAN(%d) Connection", wan_unit);
1904 sprintf(prefix_wan, "wan%d_", wan_unit);
1909 if(conn_changed_state[wan_unit] == DISCONN || conn_changed_state[wan_unit] == C2D){
1911 if(disconn_case[wan_unit] == CASE_AP_DISCONN){
1912 if(disconn_case_old[wan_unit] == CASE_AP_DISCONN)
1914 disconn_case_old[wan_unit] = CASE_AP_DISCONN;
1920 if(disconn_case[wan_unit] == CASE_DISWAN){
1921 if(disconn_case_old[wan_unit] == CASE_DISWAN)
1923 disconn_case_old[wan_unit] = CASE_DISWAN;
1927 else if(disconn_case[wan_unit] == CASE_PPPFAIL){
1928 if(disconn_case_old[wan_unit] == CASE_PPPFAIL)
1930 disconn_case_old[wan_unit] = CASE_PPPFAIL;
1941 else if(disconn_case[wan_unit] == CASE_DHCPFAIL){
1942 if(disconn_case_old[wan_unit] == CASE_DHCPFAIL)
1944 disconn_case_old[wan_unit] = CASE_DHCPFAIL;
1957 else if(disconn_case[wan_unit] == CASE_MISROUTE){
1958 if(disconn_case_old[wan_unit] == CASE_MISROUTE)
1960 disconn_case_old[wan_unit] = CASE_MISROUTE;
1964 else if(disconn_case[wan_unit] == CASE_THESAMESUBNET){
1965 if(disconn_case_old[wan_unit] == CASE_THESAMESUBNET)
1967 disconn_case_old[wan_unit] = CASE_THESAMESUBNET;
1990 else if(disconn_case[wan_unit] == CASE_DATALIMIT){
1991 if(disconn_case_old[wan_unit] == CASE_DATALIMIT)
1993 disconn_case_old[wan_unit] = CASE_DATALIMIT;
1998 else{ // disconn_case[wan_unit] == CASE_OTHERS
1999 if(disconn_case_old[wan_unit] == CASE_OTHERS)
2001 disconn_case_old[wan_unit] = CASE_OTHERS;
2006 else if(conn_changed_state[wan_unit] == D2C){
2007 if(disconn_case_old[wan_unit] == 10)
2009 disconn_case_old[wan_unit] = 10;
2013 else if(conn_changed_state[wan_unit] == PHY_RECONN){
2018 int get_disconn_count(int wan_unit){
2019 return changed_count[wan_unit];
2022 void set_disconn_count(int wan_unit, int flag){
2023 changed_count[wan_unit] = flag;
2026 int get_next_unit(int wan_unit){
2027 int next = (wan_unit+1)%WAN_UNIT_MAX;
2032 int get_last_unit(int wan_unit){
2033 int last = wan_unit-1;
2041 int switch_wan_line(const int wan_unit, const int restart_other){
2050 if(unit == wan_unit)
2055 if(wan_primary_ifunit() == wan_unit) // Already have no running modem.
2058 else if (dualwan_unit__usbif(wan_unit)) {
2059 if(!link_wan[wan_unit]) {
2060 snprintf(prefix, sizeof(prefix), "wan%d_", wan_unit);
2061 nvram_set_int(strcat_r(prefix, "is_usb_modem_ready", tmp), link_wan[wan_unit]);
2067 csprintf("%s: wan(%d) Starting...\n", __FUNCTION__, wan_unit);
2069 set_wan_primary_ifunit(wan_unit);
2072 if (nvram_invmatch("modem_enable", "4") && dualwan_unit__usbif(wan_unit)) {
2079 csprintf("(%d): No pppd conf file and turn off the state of USB Modem.\n", wan_unit);
2080 set_wan_primary_ifunit(get_last_unit(wan_unit));
2093 if(unit == wan_unit)
2105 if(unit == wan_unit)
2130 if (get_wan_state(wan_unit) == WAN_STATE_CONNECTED
2137 snprintf(cmd, 32, "restart_wan_line %d", wan_unit);
2139 snprintf(cmd, 32, "restart_wan_if %d", wan_unit);
2151 csprintf("%s: wan(%d) End.\n", __FUNCTION__, wan_unit);
2161 int wan_unit, wan_sbstate;
2252 for(wan_unit = WAN_UNIT_FIRST; wan_unit < WAN_UNIT_MAX; ++wan_unit){
2253 if(wan_unit != WAN_UNIT_FIRST)
2254 snprintf(tmp, 100, "link_wan%d", wan_unit);
2259 link_setup[wan_unit] = 0;
2260 link_wan[wan_unit] = 0;
2262 changed_count[wan_unit] = S_IDLE;
2263 disconn_case[wan_unit] = CASE_NONE;
2266 sprintf(prefix_wan, "wan%d_", wan_unit);
2268 strcat_r(prefix_wan, "state_t", nvram_state[wan_unit]);
2269 strcat_r(prefix_wan, "sbstate_t", nvram_sbstate[wan_unit]);
2270 strcat_r(prefix_wan, "auxstate_t", nvram_auxstate[wan_unit]);
2272 set_disconn_count(wan_unit, S_IDLE);
2274 nvram_set_int(strcat_r(prefix_wan, "is_usb_modem_ready", tmp), link_wan[wan_unit]);
2306 for(wan_unit = WAN_UNIT_FIRST; wan_unit < WAN_UNIT_MAX; ++wan_unit){
2307 conn_state[wan_unit] = if_wan_phyconnected(wan_unit);
2308 if(conn_state[wan_unit] == CONNED){
2309 current_state[wan_unit] = nvram_get_int(nvram_state[wan_unit]);
2311 if(!(dualwan_unit__usbif(wan_unit) && current_state[wan_unit] == WAN_STATE_INITIALIZING))
2313 conn_state[wan_unit] = if_wan_connected(wan_unit);
2316 conn_state[wan_unit] = DISCONN;
2318 conn_changed_state[wan_unit] = conn_state[wan_unit];
2320 if(conn_state[wan_unit] == CONNED && cross_state != CONNED)
2323 conn_state_old[wan_unit] = conn_state[wan_unit];
2325 record_conn_status(wan_unit);
2328 set_disconn_count(wan_unit, S_IDLE);
2330 set_disconn_count(wan_unit, S_COUNT);
2343 for(wan_unit = WAN_UNIT_FIRST; wan_unit < WAN_UNIT_MAX; ++wan_unit){
2344 if(get_dualwan_by_unit(wan_unit) != WANS_DUALWAN_IF_NONE)
2345 conn_state[wan_unit] = if_wan_phyconnected(wan_unit);
2532 for(wan_unit = WAN_UNIT_FIRST; wan_unit < WAN_UNIT_MAX; ++wan_unit){
2535 if(dualwan_unit__usbif(wan_unit) && !link_wan[wan_unit]){
2536 if_wan_phyconnected(wan_unit);
2542 current_state[wan_unit] = nvram_get_int(nvram_state[wan_unit]);
2544 if(current_state[wan_unit] == WAN_STATE_DISABLED){
2545 //record_wan_state_nvram(wan_unit, WAN_STATE_STOPPED, WAN_STOPPED_REASON_MANUAL, -1);
2547 disconn_case[wan_unit] = CASE_OTHERS;
2548 conn_state[wan_unit] = DISCONN;
2551 else if(dualwan_unit__usbif(wan_unit)
2554 _dprintf("wanduck(%d): detect the modem to be reset...\n", wan_unit);
2555 disconn_case[wan_unit] = CASE_OTHERS;
2556 conn_state[wan_unit] = DISCONN;
2557 set_disconn_count(wan_unit, S_IDLE);
2561 conn_state[wan_unit] = if_wan_phyconnected(wan_unit);
2562 if(conn_state[wan_unit] == CONNED){
2564 if(!(dualwan_unit__usbif(wan_unit) && current_state[wan_unit] == WAN_STATE_INITIALIZING))
2566 conn_state[wan_unit] = if_wan_connected(wan_unit);
2570 wan_sbstate = nvram_get_int(nvram_sbstate[wan_unit]);
2573 if(disconn_case_old[wan_unit] != CASE_DATALIMIT && wan_sbstate == WAN_STOPPED_REASON_DATALIMIT){
2574 csprintf("wanduck(%d)(lb): detect the data limit.\n", wan_unit);
2575 conn_state[wan_unit] = DISCONN;
2579 if(conn_state[wan_unit] == CONNED && cross_state != CONNED)
2583 if(wan_sbstate != WAN_STOPPED_REASON_DATALIMIT && dualwan_unit__usbif(wan_unit)){
2584 if(link_wan[wan_unit] == 1 && current_state[wan_unit] == WAN_STATE_INITIALIZING && boot_end == 1){
2585 csprintf("wanduck: start_wan_if %d.\n", wan_unit);
2586 snprintf(cmd, 32, "start_wan_if %d", wan_unit);
2590 else if(!link_wan[wan_unit] && current_state[wan_unit] != WAN_STATE_INITIALIZING){
2591 csprintf("wanduck2: stop_wan_if %d.\n", wan_unit);
2592 snprintf(cmd, 32, "stop_wan_if %d", wan_unit);
2598 if(conn_state[wan_unit] == SET_PIN){
2599 conn_changed_state[wan_unit] = SET_PIN;
2600 set_disconn_count(wan_unit, S_IDLE);
2602 else if(conn_state[wan_unit] == SET_USBSCAN){
2603 conn_changed_state[wan_unit] = SET_USBSCAN;
2604 set_disconn_count(wan_unit, S_IDLE);
2608 if(conn_state[wan_unit] != conn_state_old[wan_unit]){
2609 conn_state_old[wan_unit] = conn_state[wan_unit];
2611 if(conn_state[wan_unit] == PHY_RECONN){
2612 conn_changed_state[wan_unit] = PHY_RECONN;
2614 else if(conn_state[wan_unit] == DISCONN){
2615 conn_changed_state[wan_unit] = C2D;
2618 if (dualwan_unit__usbif(wan_unit))
2619 set_disconn_count(wan_unit, max_disconn_count[wan_unit]);
2623 if(disconn_case[wan_unit] == CASE_DATALIMIT)
2624 set_disconn_count(wan_unit, max_disconn_count[wan_unit]);
2627 set_disconn_count(wan_unit, S_COUNT);
2629 else if(conn_state[wan_unit] == CONNED){
2630 conn_changed_state[wan_unit] = D2C;
2632 set_disconn_count(wan_unit, S_IDLE);
2635 conn_changed_state[wan_unit] = CONNED;
2637 record_conn_status(wan_unit);
2640 if(get_disconn_count(wan_unit) != S_IDLE){
2641 if(conn_state[wan_unit] == PHY_RECONN)
2642 set_disconn_count(wan_unit, max_disconn_count[wan_unit]);
2644 if(get_disconn_count(wan_unit) >= max_disconn_count[wan_unit]){
2645 set_disconn_count(wan_unit, S_IDLE);
2648 if(dualwan_unit__usbif(wan_unit))
2650 if(dualwan_unit__usbif(wan_unit) &&
2653 csprintf("\n# wanduck(usb): skip to run restart_wan_if %d.\n", wan_unit);
2654 if(!link_wan[wan_unit] && strlen(modem_type) > 0)
2660 csprintf("\n# wanduck(%d): run restart_wan_if.\n", wan_unit);
2662 sprintf(cmd, "restart_wan_if %d", wan_unit);
2666 if(get_wan_state(get_next_unit(wan_unit)) == WAN_STATE_CONNECTED){
2668 sprintf(cmd, "restart_wan_line %d", get_next_unit(wan_unit));
2673 set_disconn_count(wan_unit, get_disconn_count(wan_unit)+1);
2675 csprintf("%s: wan(%d) disconn count = %d/%d ...\n", __FUNCTION__, wan_unit, get_disconn_count(wan_unit), max_disconn_count[wan_unit]);
2690 for(wan_unit = WAN_UNIT_FIRST; wan_unit < WAN_UNIT_MAX; ++wan_unit){
2691 if(get_dualwan_by_unit(wan_unit) != WANS_DUALWAN_IF_NONE)
2692 conn_state[wan_unit] = if_wan_phyconnected(wan_unit);
2851 for(wan_unit = WAN_UNIT_FIRST; wan_unit < WAN_UNIT_MAX; ++wan_unit){
2852 if(get_dualwan_by_unit(wan_unit) != WANS_DUALWAN_IF_NONE)
2853 conn_state[wan_unit] = if_wan_phyconnected(wan_unit);
3036 for(wan_unit = WAN_UNIT_FIRST; wan_unit < WAN_UNIT_MAX; ++wan_unit)
3037 conn_state[wan_unit] = if_wan_phyconnected(wan_unit);
3225 for(wan_unit = WAN_UNIT_FIRST; wan_unit < WAN_UNIT_MAX; ++wan_unit){
3226 if(is_wan_connect(wan_unit)) //since not update current_state[wan_unit] in USB modem case