#define MAC_ADDR_LEN 18
#define MAX_BUF_SIZE 80
+#ifdef TIZEN_TV_EXT
+#define VCONFKEY_WIFI_TXPOWER "db/dnet/txpower" /**< VCONFKEY for TX Power */
+#define VCONFKEY_WIFI_CHANNEL "db/dnet/channel" /**< VCONFKEY for Channel */
+#define VCONFKEY_WIFI_SSID "db/dnet/ssid" /**< VCONFKEY for ssid */
+
+#define DBUS_DEFAULT_REPLY_TIMEOUT 15000
+#endif /* TIZEN_TV_EXT */
+
#define IPTABLES "/usr/sbin/iptables"
#define TABLE_NAT "nat"
#define TETH_NAT_PRE "teth_nat_pre"
return TETHERING_ERROR_INVALID_PARAMETER;
}
- char *ptr = NULL;
- char *ptr_tmp = NULL;
+#ifdef TIZEN_TV_EXT
+ if (__get_ssid_from_vconf(VCONFKEY_WIFI_SSID, ssid, size))
+ return TETHERING_ERROR_NONE;
+ else
+ ERR("vconf key get failed for ssid or invalid ssid is found");
+#endif /* TIZEN_TV_EXT */
- ptr = vconf_get_str(VCONFKEY_SETAPPL_DEVICE_NAME_STR);
- if (ptr == NULL) {
+ if (__get_ssid_from_vconf(VCONFKEY_SETAPPL_DEVICE_NAME_STR,
+ ssid, size) == false) {
ERR("vconf_get_str is failed and set default ssid");
g_strlcpy(ssid, TETHERING_DEFAULT_SSID, size);
- } else
- g_strlcpy(ssid, ptr, size);
-
- free(ptr);
-
- if (!g_utf8_validate(ssid, -1, (const char **)&ptr_tmp))
- *ptr_tmp = '\0';
+ }
return TETHERING_ERROR_NONE;
}
return FALSE;
}
+#ifdef TIZEN_TV_EXT
+static void __set_vconf_values_for_tv(__tethering_h *tethering)
+{
+ int ret, channel, txpower;
+ __tethering_h *th = tethering;
+
+ if (th == NULL)
+ return;
+
+ ret = vconf_get_int(VCONFKEY_WIFI_CHANNEL, &channel);
+ if (ret < 0) {
+ ERR("vconf key get failed for channel !!");
+ channel = TETHERING_WIFI_CHANNEL;
+ }
+
+ ret = vconf_get_int(VCONFKEY_WIFI_TXPOWER, &txpower);
+ if (ret < 0) {
+ ERR("vconf key get failed for txpower !!");
+ txpower = TETHERING_WIFI_MAX_TXPOWER;
+ }
+
+ th->channel = channel;
+ th->txpower = txpower;
+}
+#endif /* TIZEN_TV_EXT */
+
/**
* @internal
* @brief Creates the handle of tethering.
return TETHERING_ERROR_OPERATION_FAILED;
}
+#ifdef TIZEN_TV_EXT
+ __set_vconf_values_for_tv(th);
+#endif /* TIZEN_TV_EXT */
SINFO("ssid: %s, key: %s, channel: %d, mode: %d, txpower: %d, security: %d max_device: %d\n",
ssid, th->passphrase, th->channel, th->mode_type, th->txpower, th->sec_type,
th->wifi_max_connected);
GDBusProxy *proxy = th->client_bus_proxy;
GDBusConnection *connection = th->client_bus;
+#ifdef TIZEN_TV_EXT
+ g_dbus_proxy_set_default_timeout(proxy, DBUS_DEFAULT_REPLY_TIMEOUT);
+#else /* TIZEN_TV_EXT */
g_dbus_proxy_set_default_timeout(proxy, DBUS_TIMEOUT_INFINITE);
+#endif /* TIZEN_TV_EXT */
if (__check_precondition(type) == FALSE) {
INFO("-\n");
g_dbus_connection_signal_unsubscribe(connection,
sigs[E_SIGNAL_WIFI_TETHER_OFF].sig_id);
+ SINFO("Disable Wi-Fi Tethering !");
+
g_dbus_proxy_call(proxy, "disable_wifi_tethering",
g_variant_new("(i)", TETHERING_ADDRESS_FAMILY_IPV4),
G_DBUS_CALL_FLAGS_NONE, -1, th->cancellable,
_retvm_if(p_ssid == NULL, TETHERING_ERROR_OUT_OF_MEMORY,
"strdup is failed\n");
+#ifdef TIZEN_TV_EXT
+ GDBusProxy *proxy = th->client_bus_proxy;
+ GVariant *parameters;
+ GError *error = NULL;
+ tethering_error_e ret = TETHERING_ERROR_NONE;
+
+ parameters = g_dbus_proxy_call_sync(proxy, "set_wifi_tethering_ssid",
+ g_variant_new("(s)", ssid), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+
+ if (error) {
+ ERR("g_dbus_proxy_call_sync failed because %s\n", error->message);
+
+ if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ ret = TETHERING_ERROR_PERMISSION_DENIED;
+ else
+ ret = TETHERING_ERROR_OPERATION_FAILED;
+
+ g_error_free(error);
+ return ret;
+ }
+
+ if (parameters != NULL) {
+ g_variant_get(parameters, "(u)", &ret);
+ g_variant_unref(parameters);
+ }
+
+ SINFO("set tethering ssid : %s", ssid);
+#endif /* TIZEN_TV_EXT */
+
if (th->ssid)
free(th->ssid);
th->ssid = p_ssid;
__tethering_h *th = (__tethering_h *)tethering;
char val[TETHERING_WIFI_SSID_MAX_LEN + 1] = {0, };
+#ifdef TIZEN_TV_EXT
+ if (__get_ssid_from_vconf(VCONFKEY_WIFI_SSID,
+ val, sizeof(val)) == true) {
+ *ssid = strdup(val);
+ SINFO("get tethering ssid : %s", *ssid);
+ return TETHERING_ERROR_NONE;
+ }
+#endif /* TIZEN_TV_EXT */
+
if (!tethering_is_enabled(NULL, TETHERING_TYPE_WIFI)) {
if (th->ssid != NULL) {
DBG("Private SSID is set\n");
"parameter(tethering) is NULL\n");
__tethering_h *th = (__tethering_h *)tethering;
+
+#ifdef TIZEN_TV_EXT
+ GDBusProxy *proxy = th->client_bus_proxy;
+ GVariant *parameters;
+ GError *error = NULL;
+ tethering_error_e ret = TETHERING_ERROR_NONE;
+
+ parameters = g_dbus_proxy_call_sync(proxy, "set_wifi_tethering_channel",
+ g_variant_new("(i)", channel), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+
+ if (error) {
+ ERR("g_dbus_proxy_call_sync failed because %s\n", error->message);
+
+ if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ ret = TETHERING_ERROR_PERMISSION_DENIED;
+ else
+ ret = TETHERING_ERROR_OPERATION_FAILED;
+
+ g_error_free(error);
+ return ret;
+ }
+
+ if (parameters != NULL) {
+ g_variant_get(parameters, "(u)", &ret);
+ g_variant_unref(parameters);
+ }
+
+ SINFO("set channel : %d", channel);
+#endif /* TIZEN_TV_EXT */
+
th->channel = channel;
return TETHERING_ERROR_NONE;
"parameter(channel) is NULL\n");
__tethering_h *th = (__tethering_h *)tethering;
+#ifdef TIZEN_TV_EXT
+ GDBusProxy *proxy = th->client_bus_proxy;
+ GVariant *parameters;
+ GError *error = NULL;
+ int ch, vconf_channel;
+ tethering_error_e ret = TETHERING_ERROR_NONE;
+
+ parameters = g_dbus_proxy_call_sync(proxy, "get_wifi_tethering_channel",
+ NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+
+ if (error) {
+ ERR("g_dbus_proxy_call_sync failed because %s\n", error->message);
+
+ if (error->code == G_DBUS_ERROR_ACCESS_DENIED)
+ ret = TETHERING_ERROR_PERMISSION_DENIED;
+ else
+ ret = TETHERING_ERROR_OPERATION_FAILED;
+
+ g_error_free(error);
+ return ret;
+ }
+
+ if (parameters != NULL) {
+ g_variant_get(parameters, "(iu)", &ch, &ret);
+ g_variant_unref(parameters);
+ }
+
+ if (ch < 0) {
+ ERR("failed to get Hostapd channel, set th->channel");
+ *channel = th->channel;
+ } else
+ *channel = ch;
+
+ if (vconf_get_int(VCONFKEY_WIFI_CHANNEL, &vconf_channel) < 0)
+ ERR("Failed to get vconf key for channel");
+ else
+ *channel = vconf_channel;
+
+ SINFO("get tethering channel : %d", *channel);
+#else /* TIZEN_TV_EXT */
*channel = th->channel;
+#endif /* TIZEN_TV_EXT */
return TETHERING_ERROR_NONE;
}