Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
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);
}
Ejemplo n.º 3
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);
}
Ejemplo n.º 4
0
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();
	}
}
Ejemplo n.º 5
0
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);
}
Ejemplo n.º 6
0
void
stop_lpd(void)
{
	char* svcs[] = { "lpd", NULL };
	kill_services(svcs, 3, 1);

	unlink("/var/run/lpdparent.pid");
}
Ejemplo n.º 7
0
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;
	}
}
Ejemplo n.º 8
0
void stop_dms(void)
{
	char* svcs[] = { "minidlnad", NULL };

	if (!is_dms_support())
		return;

	kill_services(svcs, 5, 1);
}
Ejemplo n.º 9
0
void stop_itunes(void)
{
	char* svcs[] = { "mt-daapd", NULL };

	if (!is_itunes_support())
		return;

	kill_services(svcs, 5, 1);
}
Ejemplo n.º 10
0
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;
}
Ejemplo n.º 11
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();
}
Ejemplo n.º 12
0
void
stop_misc(void)
{
	char* svcs[] = {
		"ntpd",
		"tcpcheck",
		"detect_wan",
		"watchdog",
		NULL
	};

	kill_services(svcs, 3, 1);
}
Ejemplo n.º 13
0
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);
}
Ejemplo n.º 14
0
void
stop_rstats(void)
{
	char* svcs[] = { "rstats", NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 15
0
void
stop_lltd(void)
{
	char* svcs[] = { "lld2d", NULL };
	kill_services(svcs, 2, 1);
}
Ejemplo n.º 16
0
void
stop_httpd(void)
{
	char* svcs[] = { "httpd", NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 17
0
void
stop_telnetd(void)
{
	char* svcs[] = { "telnetd", NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 18
0
void stop_dhcp6c(void)
{
	char *svcs[] = { "dhcp6c", NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 19
0
void
stop_u2ec(void)
{
	char* svcs[] = { "u2ec",  NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 20
0
void
stop_logger(void)
{
	char* svcs[] = { "klogd", "syslogd", NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 21
0
void
stop_infosvr(void)
{
	char* svcs[] = { "infosvr", NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 22
0
void stop_auth_kabinet(void)
{
	char *svcs[] = { "lanauth", NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 23
0
void stop_auth_eapol(void)
{
	char *svcs[] = { "wpa_cli", "wpa_supplicant",  NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 24
0
void
stop_ftp(void)
{
	char* svcs[] = { "vsftpd", NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 25
0
void
stop_p910nd(void)
{
	char* svcs[] = { "p910nd", NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 26
0
void
stop_klogd(void)
{
	char* svcs[] = { "klogd", NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 27
0
void stop_radvd(void)
{
	char* svcs[] = { "radvd", NULL };
	kill_services(svcs, 3, 1);
}
Ejemplo n.º 28
0
void
stop_networkmap(void)
{
	char* svcs[] = { "networkmap", NULL };
	kill_services(svcs, 3, 1);
}