Example #1
0
void
notify_modem_on_internet_state_changed(int has_internet)
{
	if (has_internet)
		return;

	if (nvram_get_int("modem_prio") != 3)
		return;

	if (get_usb_modem_wan(0))
		return;

	if (!get_modem_devnum())
		return;

	notify_rc("auto_wan_reconnect");
}
Example #2
0
void
notify_modem_on_wan_ether_link_changed(int has_link)
{
	int modem_used, link_wan;

	if (nvram_get_int("modem_prio") != 2)
		return;

	if (get_wan_wisp_active(NULL))
		return;

	if (!get_modem_devnum())
		return;

	link_wan = (has_link) ? 1 : 0;
	modem_used = (get_usb_modem_wan(0)) ? 1 : 0;

	if (modem_used == link_wan)
		notify_rc("auto_wan_reconnect");
}
Example #3
0
static void
try_start_usb_modem_to_wan(void)
{
	int modem_prio, has_link;

	if (get_ap_mode())
		return;

	/* check modem prio mode  */
	modem_prio = nvram_get_int("modem_prio");
	if (modem_prio < 1)
		return;

	/* check modem already selected to WAN */
	if (get_usb_modem_wan(0))
		return;

	/* check modem enabled and ready */
	if (!get_modem_devnum())
		return;

	if (modem_prio == 2) {
		if (get_apcli_wisp_ifname())
			return;
		
		has_link = get_wan_ether_link_direct(0);
		if (has_link < 0)
			has_link = 0;
		
		if (has_link)
			return;
	}

	logmessage("USB hotplug", "try start USB Modem as WAN connection...");

	try_wan_reconnect(1, 0);
}