void full_restart_ipv6(int ipv6_type_old) { int ipv6_type = get_ipv6_type(); int ipv6_toggled = ((ipv6_type == IPV6_DISABLED || ipv6_type_old == IPV6_DISABLED) && (ipv6_type != ipv6_type_old)) ? 1 : 0; if (ipv6_toggled) { stop_lltd(); stop_httpd(); } stop_upnp(); stop_dhcp6c(); stop_dns_dhcpd(); if (ipv6_type == IPV6_DISABLED) { clear_all_route6(); clear_all_addr6(); clear_if_neigh6(IFNAME_BR); stop_sit_tunnel(); reset_lan6_vars(); reset_wan6_vars(); control_if_ipv6_all(0); set_libc_gai(1); update_resolvconf(0, 1); reload_nat_modules(); restart_firewall(); start_dns_dhcpd(0); } else { set_libc_gai(0); control_if_ipv6_all(1); clear_all_addr6(); reset_lan6_vars(); reload_lan_addr6(); full_restart_wan(); if (!is_dns_dhcpd_run()) start_dns_dhcpd(0); } if (ipv6_toggled) { start_httpd(0); start_lltd(); } }
int start_services_once(int is_ap_mode) { start_8021x_wl(); start_8021x_rt(); start_httpd(0); start_telnetd(); #if defined(APP_SSHD) start_sshd(); #endif start_vpn_server(); start_watchdog(); start_infosvr(); if (!is_ap_mode) { if (!is_upnp_run()) start_upnp(); if (!nvram_match("lan_stp", "0")) { doSystem("brctl stp %s %d", IFNAME_BR, 1); doSystem("brctl setfd %s %d", IFNAME_BR, 15); } } else { start_udpxy(IFNAME_BR); #if defined(APP_XUPNPD) start_xupnpd(IFNAME_BR); #endif } start_lltd(); start_watchdog_cpu(); start_networkmap(1); start_rstats(); return 0; }
void restart_lltd(void) { stop_lltd(); start_lltd(); }