.cancel_seek_service = ws_cancel_seek_service,
.asp_prov_disc_req = ws_asp_prov_disc_req,
+ .set_eapol_ip_config = ws_set_eapol_ip_config,
+
.add_vsie = ws_add_vsie,
.get_vsie = ws_get_vsie,
.remove_vsie = ws_remove_vsie,
static unsigned char peer_dev[WS_MACSTR_LEN] = {'\0',};
const char *path = NULL;
char *loc = NULL;
-#ifdef TIZEN_FEATURE_IP_OVER_EAPOL
int i = 0;
-#endif /* TIZEN_FEATURE_IP_OVER_EAPOL */
g_variant_get(parameter, "(&oay)", &path, &iter);
g_strlcpy(peer_path, path, DBUS_OBJECT_PATH_MAX);
__ws_mac_compact_to_normal(loc + 1, peer_dev);
__ws_txt_to_mac(peer_dev, dev_addr);
WDP_LOGD("peer mac [" MACSTR "]", MAC2STR(dev_addr));
-#ifdef TIZEN_FEATURE_IP_OVER_EAPOL
for (i = 0; i < OEM_IPADDR_LEN; i++)
g_variant_iter_loop(iter, "y", &ip_addr[i]);
g_variant_iter_free(iter);
WDP_LOGD("peer ip [" IPSTR "]", IP2STR(ip_addr));
-#endif /* TIZEN_FEATURE_IP_OVER_EAPOL */
__WDP_LOG_FUNC_EXIT__;
return;
g_variant_get(value, "b", &group->is_persistent);
WDP_LOGD("Is Persistent : [%s]", group->is_persistent ? "YES" : "NO");
-#ifdef TIZEN_FEATURE_IP_OVER_EAPOL
} else if (g_strcmp0(key, "IpAddr") == 0) {
if (__ws_unpack_ay(group->ip_addr, value, OEM_IPADDR_LEN))
if (__ws_unpack_ay(group->ip_addr_go, value, OEM_IPADDR_LEN))
WDP_LOGD("GO IP address [" IPSTR "]", IP2STR(group->ip_addr_go));
-#endif /* TIZEN_FEATURE_IP_OVER_EAPOL */
} else if (g_strcmp0(key, "group_object") == 0) {
static char group_path[DBUS_OBJECT_PATH_MAX] = {'\0',};
const char *g_path;
dbus_method_param_s params;
const char *primary_device_type = PRIMARY_DEVICE_TYPE;
-
-#ifdef TIZEN_FEATURE_IP_OVER_EAPOL
- const char *ip_addr_go = DEFAULT_IP_GO;
- const char *ip_addr_mask = DEFAULT_IP_MASK;
- const char *ip_addr_start = DEFAULT_IP_START;
- const char *ip_addr_end = DEFAULT_IP_END;
-#endif /* TIZEN_FEATURE_IP_OVER_EAPOL */
int i = 0;
int res = 0;
g_variant_builder_add(builder, "{sv}", "PrimaryDeviceType",
g_variant_new("ay", type_builder));
g_variant_builder_unref(type_builder);
-#ifdef TIZEN_FEATURE_IP_OVER_EAPOL
- type_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
- for (i = 0; i < OEM_IPADDR_LEN; i++)
- g_variant_builder_add(type_builder, "y", ip_addr_go[i]);
- g_variant_builder_add(builder, "{sv}", "IpAddrGO",
- g_variant_new("ay", type_builder));
- g_variant_builder_unref(type_builder);
-
- type_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
- for (i = 0; i < OEM_IPADDR_LEN; i++)
- g_variant_builder_add(type_builder, "y", ip_addr_mask[i]);
- g_variant_builder_add(builder, "{sv}", "IpAddrMask",
- g_variant_new("ay", type_builder));
- g_variant_builder_unref(type_builder);
-
- type_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
- for (i = 0; i < OEM_IPADDR_LEN; i++)
- g_variant_builder_add(type_builder, "y", ip_addr_start[i]);
- g_variant_builder_add(builder, "{sv}", "IpAddrStart",
- g_variant_new("ay", type_builder));
- g_variant_builder_unref(type_builder);
-
- type_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
- for (i = 0; i < OEM_IPADDR_LEN; i++)
- g_variant_builder_add(type_builder, "y", ip_addr_end[i]);
- g_variant_builder_add(builder, "{sv}", "IpAddrEnd",
- g_variant_new("ay", type_builder));
- g_variant_builder_unref(type_builder);
-#endif /* TIZEN_FEATURE_IP_OVER_EAPOL */
value = g_variant_new("a{sv}", builder);
g_variant_builder_unref(builder);
return res;
}
+int ws_set_eapol_ip_config(int enable)
+{
+ __WDP_LOG_FUNC_ENTER__;
+ GDBusConnection *g_dbus = NULL;
+
+ GVariant *value = NULL;
+ GVariant *param = NULL;
+ GVariantBuilder *builder = NULL;
+ GVariantBuilder *type_builder = NULL;
+ dbus_method_param_s params;
+ int res = 0;
+ int i = 0;
+ enum {
+ IP_GO,
+ IP_MASK,
+ IP_START,
+ IP_END,
+ };
+ unsigned char eapol_ip[IP_END + 1][OEM_IPADDR_LEN + 1] = {0,};
+
+ if (!g_pd) {
+ WDP_LOGE("ws_dbus_plugin_data_s is not created yet");
+ __WDP_LOG_FUNC_EXIT__;
+ return -1;
+ }
+
+ g_dbus = g_pd->g_dbus;
+ if (!g_dbus) {
+ WDP_LOGE("DBus connection is NULL");
+ __WDP_LOG_FUNC_EXIT__;
+ return -1;
+ }
+ memset(¶ms, 0x0, sizeof(dbus_method_param_s));
+
+ dbus_set_method_param(¶ms, DBUS_PROPERTIES_METHOD_SET, g_pd->iface_path,
+ g_dbus);
+
+ builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+
+ memset(&eapol_ip, 0x0, (IP_END + 1) * (OEM_IPADDR_LEN + 1));
+ if (enable == 1) {
+ memcpy(eapol_ip[IP_GO], DEFAULT_IP_GO, OEM_IPADDR_LEN);
+ memcpy(eapol_ip[IP_MASK], DEFAULT_IP_MASK, OEM_IPADDR_LEN);
+ memcpy(eapol_ip[IP_START], DEFAULT_IP_START, OEM_IPADDR_LEN);
+ memcpy(eapol_ip[IP_END], DEFAULT_IP_END, OEM_IPADDR_LEN);
+ }
+
+ type_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
+ for (i = 0; i < OEM_IPADDR_LEN; i++)
+ g_variant_builder_add(type_builder, "y", eapol_ip[IP_GO][i]);
+ g_variant_builder_add(builder, "{sv}", "IpAddrGO",
+ g_variant_new("ay", type_builder));
+ g_variant_builder_unref(type_builder);
+
+ type_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
+ for (i = 0; i < OEM_IPADDR_LEN; i++)
+ g_variant_builder_add(type_builder, "y", eapol_ip[IP_MASK][i]);
+ g_variant_builder_add(builder, "{sv}", "IpAddrMask",
+ g_variant_new("ay", type_builder));
+ g_variant_builder_unref(type_builder);
+
+ type_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
+ for (i = 0; i < OEM_IPADDR_LEN; i++)
+ g_variant_builder_add(type_builder, "y", eapol_ip[IP_START][i]);
+ g_variant_builder_add(builder, "{sv}", "IpAddrStart",
+ g_variant_new("ay", type_builder));
+ g_variant_builder_unref(type_builder);
+
+ type_builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
+ for (i = 0; i < OEM_IPADDR_LEN; i++)
+ g_variant_builder_add(type_builder, "y", eapol_ip[IP_END][i]);
+ g_variant_builder_add(builder, "{sv}", "IpAddrEnd",
+ g_variant_new("ay", type_builder));
+ g_variant_builder_unref(type_builder);
+
+ value = g_variant_new("a{sv}", builder);
+ g_variant_builder_unref(builder);
+
+ param = g_variant_new("(ssv)", SUPPLICANT_P2PDEVICE, "P2PDeviceConfig", value);
+
+ params.params = param;
+
+ DEBUG_G_VARIANT("Params : ", param);
+ res = dbus_method_call(¶ms, DBUS_PROPERTIES_INTERFACE, NULL, NULL);
+ if (res < 0) {
+ WDP_LOGE("Failed to send command to wpa_supplicant");
+ } else {
+ WDP_LOGI("Succeeded to set eapol IP");
+ }
+ __WDP_LOG_FUNC_EXIT__;
+ return res;
+}
+
int ws_add_vsie(wfd_oem_vsie_frames_e frame_id, const char* vsie)
{
__WDP_LOG_FUNC_ENTER__;