static int retry = 0;
static int is_dualband_support = DUAL_BAND_NONE;
-static __thread tethering_request_table_t request_table[TETHERING_TYPE_MAX];
static void __reset_dualband_support(void)
{
{
if (tethering_is_enabled(tethering, TETHERING_TYPE_USB) ||
tethering_is_enabled(tethering, TETHERING_TYPE_WIFI) ||
- tethering_is_enabled(tethering, TETHERING_TYPE_WIFI_SHARING) ||
tethering_is_enabled(tethering, TETHERING_TYPE_BT) ||
tethering_is_enabled(tethering, TETHERING_TYPE_P2P))
return true;
if (ap_type == MOBILE_AP_TYPE_USB)
type = TETHERING_TYPE_USB;
- else if (ap_type == MOBILE_AP_TYPE_WIFI) {
- if (request_table[TETHERING_TYPE_WIFI_SHARING].flag)
- type = TETHERING_TYPE_WIFI_SHARING;
- else
- type = TETHERING_TYPE_WIFI;
- } else if (ap_type == MOBILE_AP_TYPE_BT)
+ else if (ap_type == MOBILE_AP_TYPE_WIFI)
+ type = TETHERING_TYPE_WIFI;
+ else if (ap_type == MOBILE_AP_TYPE_BT)
type = TETHERING_TYPE_BT;
else if (ap_type == MOBILE_AP_TYPE_P2P)
type = TETHERING_TYPE_P2P;
GError *g_error = NULL;
GVariant *g_var;
guint info;
- tethering_type_e type = 0;
+ tethering_type_e type = TETHERING_TYPE_WIFI;
tethering_error_e error;
__tethering_h *th = (__tethering_h *)user_data;
- if (request_table[TETHERING_TYPE_WIFI_SHARING].flag)
- type = TETHERING_TYPE_WIFI_SHARING;
- else
- type = TETHERING_TYPE_WIFI;
-
tethering_enabled_cb ecb = th->enabled_cb[type];
void *data = th->enabled_user_data[type];
return TETHERING_ERROR_NONE;
}
-static bool __check_precondition(tethering_type_e type)
+static bool __check_precondition(__tethering_h *th, tethering_type_e type)
{
int dnet_status = 0;
int cellular_state = 0;
vconf_get_int(VCONFKEY_NETWORK_STATUS, &dnet_status);
if ((dnet_status == VCONFKEY_NETWORK_WIFI
&& type != TETHERING_TYPE_WIFI)
- || (dnet_status == VCONFKEY_NETWORK_ETHERNET
- && type != TETHERING_TYPE_WIFI_SHARING))
+ || (th->wifi_sharing && dnet_status == VCONFKEY_NETWORK_WIFI
+ && type == TETHERING_TYPE_WIFI)
+ || dnet_status == VCONFKEY_NETWORK_ETHERNET)
return TRUE;
ERR("Network is not available!");
INFO("+ type : %d\n", type);
CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE);
if (type == TETHERING_TYPE_USB) CHECK_FEATURE_SUPPORTED(TETHERING_USB_FEATURE);
- else if (type == TETHERING_TYPE_WIFI || type == TETHERING_TYPE_WIFI_SHARING)
- CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
+ else if (type == TETHERING_TYPE_WIFI) CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
else if (type == TETHERING_TYPE_BT) CHECK_FEATURE_SUPPORTED(TETHERING_BT_FEATURE);
_retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
g_dbus_proxy_set_default_timeout(proxy, DBUS_TIMEOUT_INFINITE);
#endif /* TIZEN_TV_EXT */
- if (__check_precondition(type) == FALSE) {
+ if (__check_precondition(th, type) == FALSE) {
INFO("-\n");
g_dbus_proxy_set_default_timeout(proxy, DBUS_TIMEOUT_USE_DEFAULT);
return TETHERING_ERROR_OPERATION_FAILED;
(GAsyncReadyCallback) __usb_enabled_cfm_cb, (gpointer)tethering);
break;
- case TETHERING_TYPE_WIFI:
- case TETHERING_TYPE_WIFI_SHARING: {
+ case TETHERING_TYPE_WIFI: {
_softap_settings_t set = {"", "", "", 0, false};
ret = __prepare_wifi_settings(tethering, &set);
set.ssid, set.key, set.channel, set.mode, set.txpower, set.sec_type,
set.max_connected);
- char key[TETHERING_WIFI_KEY_MAX_LEN + 1] = {0, };
- if (type == TETHERING_TYPE_WIFI_SHARING) {
- g_strlcpy(key, "wifi_sharing", TETHERING_WIFI_KEY_MAX_LEN);
- request_table[TETHERING_TYPE_WIFI_SHARING].flag = true;
- } else {
- g_strlcpy(key, "wifi_tether", TETHERING_WIFI_KEY_MAX_LEN);
- request_table[TETHERING_TYPE_WIFI].flag = true;
- }
+ char key[TETHERING_WIFI_KEY_MAX_LEN + 1] = "wifi_tether";
+ if (th->wifi_sharing)
+ g_strlcpy(key, "wifi_sharing", TETHERING_WIFI_KEY_MAX_LEN + 1);
+ SINFO("enable_wifi_tethering key: %s", key);
g_dbus_proxy_call(proxy, "enable_wifi_tethering",
g_variant_new("(ssssiiiiiii)", key, set.ssid, set.key, set.mode,
set.channel, set.visibility, set.mac_filter, set.max_connected,
g_dbus_proxy_set_default_timeout(proxy, DBUS_TIMEOUT_INFINITE);
- if (__check_precondition(type) == FALSE) {
+ if (__check_precondition(th, type) == FALSE) {
DBG("-\n");
g_dbus_proxy_set_default_timeout(proxy, DBUS_TIMEOUT_USE_DEFAULT);
return TETHERING_ERROR_OPERATION_FAILED;
break;
}
- case TETHERING_TYPE_WIFI:
- case TETHERING_TYPE_WIFI_SHARING: {
+ case TETHERING_TYPE_WIFI: {
_softap_settings_t set = {"", "", "", 0, false, false, 0, 0};
ret = __prepare_wifi_settings(tethering, &set);
set.ssid, set.key, set.channel, set.mode, set.txpower, set.sec_type,
set.max_connected);
- char key[TETHERING_WIFI_KEY_MAX_LEN + 1] = {0, };
- if (type == TETHERING_TYPE_WIFI_SHARING) {
- g_strlcpy(key, "wifi_sharing", TETHERING_WIFI_KEY_MAX_LEN);
- request_table[TETHERING_TYPE_WIFI_SHARING].flag = true;
- } else {
- g_strlcpy(key, "wifi_tether", TETHERING_WIFI_KEY_MAX_LEN);
- request_table[TETHERING_TYPE_WIFI].flag = true;
- }
+ char key[TETHERING_WIFI_KEY_MAX_LEN + 1] = "wifi_tether";
+ if (th->wifi_sharing)
+ g_strlcpy(key, "wifi_sharing", TETHERING_WIFI_KEY_MAX_LEN + 1);
+ SINFO("enable_wifi_tethering key: %s", key);
g_dbus_proxy_call(proxy, "enable_wifi_tethering",
g_variant_new("(ssssiiiiiii)", key, set.ssid, set.key, set.mode,
set.channel, set.visibility, set.mac_filter, set.max_connected,
break;
case TETHERING_TYPE_WIFI:
- case TETHERING_TYPE_WIFI_SHARING:
DBG("Disable wifi tethering..");
g_dbus_connection_signal_unsubscribe(connection,
sigs[E_SIGNAL_WIFI_TETHER_OFF].sig_id);
break;
case TETHERING_TYPE_WIFI:
- case TETHERING_TYPE_WIFI_SHARING:
-
g_dbus_connection_signal_unsubscribe(connection,
sigs[E_SIGNAL_WIFI_TETHER_OFF].sig_id);
break;
case TETHERING_TYPE_WIFI:
- case TETHERING_TYPE_WIFI_SHARING:
vconf_type = VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI;
break;
API int tethering_is_dualband_supported(tethering_h tethering, tethering_type_e type, bool *supported)
{
CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE);
- if (type == TETHERING_TYPE_WIFI || type == TETHERING_TYPE_WIFI_SHARING)
- CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
+ CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
_retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
"parameter(tethering) is NULL\n");
{
CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE);
if (type == TETHERING_TYPE_USB) CHECK_FEATURE_SUPPORTED(TETHERING_USB_FEATURE);
- else if (type == TETHERING_TYPE_WIFI || type == TETHERING_TYPE_WIFI_SHARING)
- CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
+ else if (type == TETHERING_TYPE_WIFI) CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
else if (type == TETHERING_TYPE_BT) CHECK_FEATURE_SUPPORTED(TETHERING_BT_FEATURE);
_retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
interface = g_variant_get_int32(value);
if (interface == MOBILE_AP_TYPE_USB)
client.interface = TETHERING_TYPE_USB;
- else if (interface == MOBILE_AP_TYPE_WIFI) {
- if (request_table[TETHERING_TYPE_WIFI_SHARING].flag)
- client.interface = TETHERING_TYPE_WIFI_SHARING;
- else
- client.interface = TETHERING_TYPE_WIFI;
-
- } else if (interface == MOBILE_AP_TYPE_BT)
+ else if (interface == MOBILE_AP_TYPE_WIFI)
+ client.interface = TETHERING_TYPE_WIFI;
+ else if (interface == MOBILE_AP_TYPE_BT)
client.interface = TETHERING_TYPE_BT;
else if (interface == MOBILE_AP_TYPE_P2P)
client.interface = TETHERING_TYPE_P2P;
INFO("+ type: %d\n", type);
CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE);
if (type == TETHERING_TYPE_USB) CHECK_FEATURE_SUPPORTED(TETHERING_USB_FEATURE);
- else if (type == TETHERING_TYPE_WIFI || type == TETHERING_TYPE_WIFI_SHARING)
- CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
+ else if (type == TETHERING_TYPE_WIFI) CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
else if (type == TETHERING_TYPE_BT) CHECK_FEATURE_SUPPORTED(TETHERING_BT_FEATURE);
_retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
{
CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE);
if (type == TETHERING_TYPE_USB) CHECK_FEATURE_SUPPORTED(TETHERING_USB_FEATURE);
- else if (type == TETHERING_TYPE_WIFI || type == TETHERING_TYPE_WIFI_SHARING)
- CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
+ else if (type == TETHERING_TYPE_WIFI) CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
else if (type == TETHERING_TYPE_BT) CHECK_FEATURE_SUPPORTED(TETHERING_BT_FEATURE);
_retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
INFO("+ type: %d\n", type);
CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE);
if (type == TETHERING_TYPE_USB) CHECK_FEATURE_SUPPORTED(TETHERING_USB_FEATURE);
- else if (type == TETHERING_TYPE_WIFI || type == TETHERING_TYPE_WIFI_SHARING)
- CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
+ else if (type == TETHERING_TYPE_WIFI) CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
else if (type == TETHERING_TYPE_BT) CHECK_FEATURE_SUPPORTED(TETHERING_BT_FEATURE);
_retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
{
CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE);
if (type == TETHERING_TYPE_USB) CHECK_FEATURE_SUPPORTED(TETHERING_USB_FEATURE);
- else if (type == TETHERING_TYPE_WIFI || type == TETHERING_TYPE_WIFI_SHARING)
- CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
+ else if (type == TETHERING_TYPE_WIFI) CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
else if (type == TETHERING_TYPE_BT) CHECK_FEATURE_SUPPORTED(TETHERING_BT_FEATURE);
_retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
INFO("+ type: %d\n", type);
CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE);
if (type == TETHERING_TYPE_USB) CHECK_FEATURE_SUPPORTED(TETHERING_USB_FEATURE);
- else if (type == TETHERING_TYPE_WIFI || type == TETHERING_TYPE_WIFI_SHARING)
- CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
+ else if (type == TETHERING_TYPE_WIFI) CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
else if (type == TETHERING_TYPE_BT) CHECK_FEATURE_SUPPORTED(TETHERING_BT_FEATURE);
_retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
{
CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE);
if (type == TETHERING_TYPE_USB) CHECK_FEATURE_SUPPORTED(TETHERING_USB_FEATURE);
- else if (type == TETHERING_TYPE_WIFI || type == TETHERING_TYPE_WIFI_SHARING)
- CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
+ else if (type == TETHERING_TYPE_WIFI) CHECK_FEATURE_SUPPORTED(TETHERING_WIFI_FEATURE);
else if (type == TETHERING_TYPE_BT) CHECK_FEATURE_SUPPORTED(TETHERING_BT_FEATURE);
_retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
g_strlcpy(str_buf, "P2P Tethering", sizeof(str_buf));
break;
- case TETHERING_TYPE_WIFI_SHARING:
- g_strlcpy(str_buf, "Wi-Fi Sharing", sizeof(str_buf));
- break;
-
default:
g_strlcpy(str_buf, "Unknown", sizeof(str_buf));
break;
int sel;
int ret;
- printf("Select tethering type (1:Wi-Fi, 2:Wi-Fi Sharing, 3:BT, 4:USB 5:P2P 6:ALL)\n");
+ printf("Select tethering type (1:Wi-Fi, 2:BT, 3:USB 4:P2P 5:ALL)\n");
ret = scanf("%9d", &sel);
if (ret < 0) {
printf("scanf is failed!!\n");
*type = TETHERING_TYPE_WIFI;
break;
case 2:
- *type = TETHERING_TYPE_WIFI_SHARING;
- break;
- case 3:
*type = TETHERING_TYPE_BT;
break;
- case 4:
+ case 3:
*type = TETHERING_TYPE_USB;
break;
- case 5:
+ case 4:
*type = TETHERING_TYPE_P2P;
break;
- case 6:
+ case 5:
*type = TETHERING_TYPE_ALL;
break;
default:
int ret = TETHERING_ERROR_NONE;
tethering_type_e type;
int address_type = 0;
+ bool supported = false;
+ int choice = 0;
tethering_h handle = _get_tethering_handle();
if (!__get_tethering_type(&type))
return -1;
- if (type == TETHERING_TYPE_WIFI_SHARING) {
- bool supported = false;
+ if (type != TETHERING_TYPE_WIFI)
+ return -1;
+
+ printf("Select 1: Wi-Fi sharing, 2: Dual band hotspot\n");
+ ret = scanf("%d", &choice);
+ if (choice == 1) {
ret = tethering_wifi_is_sharing_supported(th, &supported);
if (__is_err(ret) == true) {
if (!supported) {
printf("wifi_sharing is not supported.\n");
return -1;
+ } else {
+
+ printf("wifi_sharing is supported.\n");
+ ret = tethering_wifi_set_sharing(th, true);
+ if (__is_err(ret) == true) {
+ printf("Fail to set wifi sharing\n");
+ return -1;
+ }
}
+ } else if (choice == 2) {
+ ret = tethering_is_dualband_supported(handle, type, &supported);
- printf("wifi_sharing is supported.\n");
+ if (__is_err(ret) == true) {
+ printf("Fail to get is dubalband supported\n");
+ return -1;
+ } else
+ printf("DualBand is %s\n", supported ? "Supported" : "Not Supported");
+ } else {
+ printf("Invalid!!\n");
+ return -1;
}
if (address_type)
printf("Fail to disable tethering\n");
return -1;
}
+
+ tethering_wifi_set_sharing(th, false);
+
return 1;
}