From 412810bc263951b59d4e56efbe1fa0fbd8f6d225 Mon Sep 17 00:00:00 2001 From: Seonah Moon Date: Mon, 19 Feb 2018 19:43:14 +0900 Subject: [PATCH] Enable IPv6 tethering for USB Change-Id: Ib6c61fc9332bd5ea1c6b6bc51a14af292d480621 --- src/tethering.c | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/src/tethering.c b/src/tethering.c index 0d7fe50..9afcb84 100755 --- a/src/tethering.c +++ b/src/tethering.c @@ -1584,7 +1584,8 @@ API int tethering_enable(tethering_h tethering, tethering_type_e type) g_dbus_connection_signal_unsubscribe(connection, sigs[E_SIGNAL_USB_TETHER_ON].sig_id); - g_dbus_proxy_call(proxy, "enable_usb_tethering", NULL, + g_dbus_proxy_call(proxy, "enable_usb_tethering", + g_variant_new("(i)", TETHERING_ADDRESS_FAMILY_IPV4), G_DBUS_CALL_FLAGS_NONE, -1, th->cancellable, (GAsyncReadyCallback) __usb_enabled_cfm_cb, (gpointer)tethering); break; @@ -1652,7 +1653,8 @@ API int tethering_enable(tethering_h tethering, tethering_type_e type) g_dbus_connection_signal_unsubscribe(connection, sigs[E_SIGNAL_USB_TETHER_ON].sig_id); - g_dbus_proxy_call(proxy, "enable_usb_tethering", NULL, + g_dbus_proxy_call(proxy, "enable_usb_tethering", + g_variant_new("(i)", TETHERING_ADDRESS_FAMILY_IPV4), G_DBUS_CALL_FLAGS_NONE, -1, th->cancellable, (GAsyncReadyCallback) __usb_enabled_cfm_cb, (gpointer)tethering); @@ -1718,6 +1720,17 @@ API int tethering_ipv6_enable(tethering_h tethering, tethering_type_e type) } switch (type) { + case TETHERING_TYPE_USB: { + g_dbus_connection_signal_unsubscribe(connection, + sigs[E_SIGNAL_USB_TETHER_ON].sig_id); + + g_dbus_proxy_call(proxy, "enable_usb_tethering", + g_variant_new("(i)", TETHERING_ADDRESS_FAMILY_IPV6), + G_DBUS_CALL_FLAGS_NONE, -1, th->cancellable, + (GAsyncReadyCallback) __usb_enabled_cfm_cb, (gpointer)tethering); + break; + } + case TETHERING_TYPE_WIFI: { _softap_settings_t set = {"", "", "", 0, false, false, 0, 0}; @@ -1735,12 +1748,13 @@ API int tethering_ipv6_enable(tethering_h tethering, tethering_type_e type) (GAsyncReadyCallback) __wifi_enabled_cfm_cb, (gpointer)tethering); break; } + case TETHERING_TYPE_BT: { g_dbus_connection_signal_unsubscribe(connection, sigs[E_SIGNAL_BT_TETHER_ON].sig_id); - /* For TEST */ - g_dbus_proxy_call(proxy, "enable_bt_tethering", g_variant_new("(i)", TETHERING_ADDRESS_FAMILY_IPV6), + g_dbus_proxy_call(proxy, "enable_bt_tethering", + g_variant_new("(i)", TETHERING_ADDRESS_FAMILY_IPV6), G_DBUS_CALL_FLAGS_NONE, -1, th->cancellable, (GAsyncReadyCallback) __bt_enabled_cfm_cb, (gpointer)tethering); @@ -1778,6 +1792,16 @@ API int tethering_ipv6_disable(tethering_h tethering, tethering_type_e type) GDBusConnection *connection = th->client_bus; switch (type) { + case TETHERING_TYPE_USB: + g_dbus_connection_signal_unsubscribe(connection, + sigs[E_SIGNAL_USB_TETHER_OFF].sig_id); + + g_dbus_proxy_call(proxy, "disable_usb_tethering", + g_variant_new("(i)", TETHERING_ADDRESS_FAMILY_IPV6), + G_DBUS_CALL_FLAGS_NONE, -1, th->cancellable, + (GAsyncReadyCallback) __disabled_cfm_cb, (gpointer)tethering); + break; + case TETHERING_TYPE_WIFI: DBG("Disable wifi tethering.."); g_dbus_connection_signal_unsubscribe(connection, @@ -1788,6 +1812,7 @@ API int tethering_ipv6_disable(tethering_h tethering, tethering_type_e type) G_DBUS_CALL_FLAGS_NONE, -1, th->cancellable, (GAsyncReadyCallback) __disabled_cfm_cb, (gpointer)tethering); break; + case TETHERING_TYPE_BT: g_dbus_connection_signal_unsubscribe(connection, sigs[E_SIGNAL_BT_TETHER_OFF].sig_id); @@ -1843,7 +1868,8 @@ API int tethering_disable(tethering_h tethering, tethering_type_e type) sigs[E_SIGNAL_USB_TETHER_OFF].sig_id); g_dbus_proxy_call(proxy, "disable_usb_tethering", - NULL, G_DBUS_CALL_FLAGS_NONE, -1, th->cancellable, + g_variant_new("(i)", TETHERING_ADDRESS_FAMILY_IPV4), + G_DBUS_CALL_FLAGS_NONE, -1, th->cancellable, (GAsyncReadyCallback) __disabled_cfm_cb, (gpointer)tethering); break; @@ -1883,7 +1909,8 @@ API int tethering_disable(tethering_h tethering, tethering_type_e type) sigs[E_SIGNAL_USB_TETHER_OFF].sig_id); g_dbus_proxy_call(proxy, "disable_usb_tethering", - NULL, G_DBUS_CALL_FLAGS_NONE, -1, th->cancellable, + g_variant_new("(i)", TETHERING_ADDRESS_FAMILY_IPV4), + G_DBUS_CALL_FLAGS_NONE, -1, th->cancellable, (GAsyncReadyCallback) __disabled_cfm_cb, (gpointer)tethering); g_dbus_connection_signal_unsubscribe(connection, -- 2.7.4