void safe_remove_usb_modem(void) { char* svcs[] = { "pppd", NULL }; if (nvram_match("modem_type", "3")) { if (pids("udhcpc")) { system("killall -SIGUSR2 udhcpc"); usleep(250000); svcs[0] = "udhcpc"; kill_services(svcs, 3, 1); } stop_modem_ndis(); } else { kill_services(svcs, 10, 1); stop_modem_ras(); } set_usb_modem_dev_wan(0, 0); }
void safe_remove_usb_modem(void) { doSystem("killall %s %s", "-q", "usb_modeswitch"); doSystem("killall %s %s", "-q", "eject"); if (nvram_get_int("modem_type") == 3) { char* svcs[] = { "udhcpc", NULL }; if (pids(svcs[0])) { doSystem("killall %s %s", "-SIGUSR2", svcs[0]); usleep(300000); kill_services(svcs, 3, 1); } stop_wan_usbnet(); // unlink_modem_ndis(); } else { char* svcs_ppp[] = { "pppd", NULL }; kill_services(svcs_ppp, 10, 1); // unlink_modem_ras(); } set_usb_modem_dev_wan(0, 0); }
static void refresh_ntp(void) { char *svcs[] = { "ntpd", NULL }; char *ntp_addr[2], *ntp_server; kill_services(svcs, 3, 1); ntp_addr[0] = nvram_safe_get("ntp_server0"); ntp_addr[1] = nvram_safe_get("ntp_server1"); if (strlen(ntp_addr[0]) < 3) ntp_addr[0] = ntp_addr[1]; else if (strlen(ntp_addr[1]) < 3) ntp_addr[1] = ntp_addr[0]; if (strlen(ntp_addr[0]) < 3) { ntp_addr[0] = "pool.ntp.org"; ntp_addr[1] = ntp_addr[0]; } ntp_server = (ntpc_server_idx) ? ntp_addr[1] : ntp_addr[0]; ntpc_server_idx = (ntpc_server_idx + 1) % 2; eval("/usr/sbin/ntpd", "-qt", "-S", NTPC_DONE_SCRIPT, "-p", ntp_server); logmessage("NTP Client", "Synchronizing time to %s.", ntp_server); }
static void flash_firmware(void) { char* svcs[] = { "l2tpd", "xl2tpd", "pppd", "wpa_cli", "wpa_supplicant", NULL }; stop_misc(); stop_services(0); // don't stop httpd/telnetd/sshd/vpn #if (BOARD_NUM_USB_PORTS > 0) stop_usb_printer_spoolers(); safe_remove_usb_device(0, NULL, 0); #endif stop_igmpproxy(NULL); kill_services(svcs, 6, 1); /* save storage (if changed) */ storage_save_time(60); write_storage_to_mtd(); sync(); sleep(1); if (eval("/tmp/mtd_write", "-r", "write", FW_IMG_NAME, FW_MTD_NAME) != 0) { start_watchdog(); } }
void stop_vpn_server(void) { int i; char pppd_pid[32]; char* svcs[] = { "bcrelay", "pptpd", NULL, NULL }; if (get_xl2tpd_vpns_active()) { svcs[2] = "xl2tpd"; xl2tpd_killed_vpns = 1; } kill_services(svcs, 5, 1); /* force kill all clients pppd */ for (i=0; i<MAX_CLIENTS_NUM; i++) { sprintf(pppd_pid, "/var/run/ppp%d.pid", VPN_SERVER_PPP_UNIT+i); kill_pidfile_s(pppd_pid, SIGKILL); } nvram_set_int_temp("l2tp_srv_t", 0); unlink(VPNS_PPP_UP_SCRIPT); unlink(VPNS_PPP_DW_SCRIPT); #if defined(APP_OPENVPN) stop_openvpn_server(); #endif unlink(VPN_SERVER_LEASE_FILE); }
void stop_lpd(void) { char* svcs[] = { "lpd", NULL }; kill_services(svcs, 3, 1); unlink("/var/run/lpdparent.pid"); }
static void stop_vpn_client_force(void) { if (get_xl2tpd_vpnc_active()) { char* svcs[] = { "xl2tpd", NULL }; kill_services(svcs, 5, 1); xl2tpd_killed_vpnc = 1; } }
void stop_dms(void) { char* svcs[] = { "minidlnad", NULL }; if (!is_dms_support()) return; kill_services(svcs, 5, 1); }
void stop_itunes(void) { char* svcs[] = { "mt-daapd", NULL }; if (!is_itunes_support()) return; kill_services(svcs, 5, 1); }
int ipdown_vpns_main(int argc, char **argv) { FILE *fp1, *fp2; int i_clients; char ifname[16], addr_l[64], addr_r[64], name_p[64]; char *peer_name; char *clients_l1 = VPN_SERVER_LEASE_FILE; char *clients_l2 = "/tmp/.vpns.leases"; char *script_name = VPN_SERVER_UPDOWN_SCRIPT; char *svcs[] = { "bcrelay", NULL }; if (argc < 7) return -1; peer_name = safe_getenv("PEERNAME"); logmessage(VPNS_LOG_NAME, "peer %s (%s) disconnected", argv[6], peer_name); umask(0000); vpns_firewall_permission(argv[1], 0); vpns_route_to_remote_lan(peer_name, argv[1], NULL, 0); i_clients = 0; fp1 = fopen(clients_l1, "r"); fp2 = fopen(clients_l2, "w"); if (fp1) { while(fscanf(fp1, "%15s %63s %63s %63[^\n]\n", ifname, addr_l, addr_r, name_p) == 4) { if (strcmp(ifname, argv[1])) { i_clients++; if (fp2) fprintf(fp2, "%s %s %s %s\n", ifname, addr_l, addr_r, name_p); } } fclose(fp1); } if (fp2) { fclose(fp2); rename(clients_l2, clients_l1); unlink(clients_l2); } if (check_if_file_exist(script_name)) doSystem("%s %s %s %s %s %s", script_name, "down", argv[1], argv[5], argv[6], peer_name); if (i_clients == 0 && pids(svcs[0])) kill_services(svcs, 3, 1); return 0; }
void stop_samba(int force_stop) { char* svcs[] = { "smbd", "nmbd", NULL }; if (!force_stop && nvram_match("wins_enable", "1")) svcs[1] = NULL; kill_services(svcs, 5, 1); clean_smbd_trash(); }
void stop_misc(void) { char* svcs[] = { "ntpd", "tcpcheck", "detect_wan", "watchdog", NULL }; kill_services(svcs, 3, 1); }
static void refresh_ntp(void) { char *ntp_server; char* svcs[] = { "ntpd", NULL }; kill_services(svcs, 3, 1); if (ntpc_server_idx) ntp_server = nvram_safe_get("ntp_server1"); else ntp_server = nvram_safe_get("ntp_server0"); ntpc_server_idx = (ntpc_server_idx + 1) % 2; if (!(*ntp_server)) ntp_server = "pool.ntp.org"; logmessage("NTP Scheduler", "Synchronizing time to %s ...", ntp_server); eval("/usr/sbin/ntpd", "-qt", "-p", ntp_server); }
void stop_rstats(void) { char* svcs[] = { "rstats", NULL }; kill_services(svcs, 3, 1); }
void stop_lltd(void) { char* svcs[] = { "lld2d", NULL }; kill_services(svcs, 2, 1); }
void stop_httpd(void) { char* svcs[] = { "httpd", NULL }; kill_services(svcs, 3, 1); }
void stop_telnetd(void) { char* svcs[] = { "telnetd", NULL }; kill_services(svcs, 3, 1); }
void stop_dhcp6c(void) { char *svcs[] = { "dhcp6c", NULL }; kill_services(svcs, 3, 1); }
void stop_u2ec(void) { char* svcs[] = { "u2ec", NULL }; kill_services(svcs, 3, 1); }
void stop_logger(void) { char* svcs[] = { "klogd", "syslogd", NULL }; kill_services(svcs, 3, 1); }
void stop_infosvr(void) { char* svcs[] = { "infosvr", NULL }; kill_services(svcs, 3, 1); }
void stop_auth_kabinet(void) { char *svcs[] = { "lanauth", NULL }; kill_services(svcs, 3, 1); }
void stop_auth_eapol(void) { char *svcs[] = { "wpa_cli", "wpa_supplicant", NULL }; kill_services(svcs, 3, 1); }
void stop_ftp(void) { char* svcs[] = { "vsftpd", NULL }; kill_services(svcs, 3, 1); }
void stop_p910nd(void) { char* svcs[] = { "p910nd", NULL }; kill_services(svcs, 3, 1); }
void stop_klogd(void) { char* svcs[] = { "klogd", NULL }; kill_services(svcs, 3, 1); }
void stop_radvd(void) { char* svcs[] = { "radvd", NULL }; kill_services(svcs, 3, 1); }
void stop_networkmap(void) { char* svcs[] = { "networkmap", NULL }; kill_services(svcs, 3, 1); }