GAsyncReadyCallback cb, void *user_data);
int wifi_aware_gdbus_open_ndp(wifi_aware_data_path_h data_path,
- uint16_t pub_sub_id, unsigned int peer_id,
+ int client_id, uint16_t pub_sub_id, unsigned int peer_id,
wifi_aware_data_path_role_e role, int port,
GAsyncReadyCallback cb);
int wifi_aware_gdbus_open_ndp_psk(wifi_aware_data_path_h data_path,
- uint16_t pub_sub_id, unsigned int peer_id,
+ int client_id, uint16_t pub_sub_id, unsigned int peer_id,
wifi_aware_data_path_role_e role, int port,
const char *psk, GAsyncReadyCallback cb);
int wifi_aware_gdbus_open_ndp_pmk(wifi_aware_data_path_h data_path,
- uint16_t pub_sub_id, unsigned int peer_id,
+ int client_id, uint16_t pub_sub_id, unsigned int peer_id,
wifi_aware_data_path_role_e role, int port,
const unsigned char *pmk,
GAsyncReadyCallback cb);
switch (ndp->security_type) {
case WIFI_AWARE_SECURITY_TYPE_OPEN:
return wifi_aware_gdbus_open_ndp(data_path,
+ _wifi_aware_get_client_id(),
_wifi_aware_session_get_pub_sub_id(ndp->session),
_wifi_aware_peer_get_id(ndp->peer),
ndp->role,
__data_path_open_reply);
case WIFI_AWARE_SECURITY_TYPE_PSK:
return wifi_aware_gdbus_open_ndp_psk(data_path,
+ _wifi_aware_get_client_id(),
_wifi_aware_session_get_pub_sub_id(ndp->session),
_wifi_aware_peer_get_id(ndp->peer),
ndp->role,
__data_path_open_reply);
case WIFI_AWARE_SECURITY_TYPE_PMK:
return wifi_aware_gdbus_open_ndp_pmk(data_path,
+ _wifi_aware_get_client_id(),
_wifi_aware_session_get_pub_sub_id(ndp->session),
_wifi_aware_peer_get_id(ndp->peer),
ndp->role,
return params;
}
+static GVariant *__create_data_path_request_param(int client_id, uint16_t pub_sub_id,
+ unsigned int peer_id, wifi_aware_data_path_role_e role, int port)
+{
+ return g_variant_new("iquii", client_id, pub_sub_id, peer_id, role, port);
+}
+
+static GVariant *__append_psk(GVariant *params, const char *psk)
+{
+ return g_variant_new("vs", params, psk);
+}
+
+static GVariant *__append_pmk(GVariant *params, const unsigned char *pmk)
+{
+ return g_variant_new("vv", params, __pack_byte_array(pmk, WIFI_AWARE_PMK_LEN));
+}
+
int wifi_aware_gdbus_enable(wifi_aware_enable_request_s *req, GAsyncReadyCallback cb)
{
__WIFI_AWARE_FUNC_ENTER__;
}
int wifi_aware_gdbus_open_ndp(wifi_aware_data_path_h data_path,
- uint16_t pub_sub_id, unsigned int peer_id,
+ int client_id, uint16_t pub_sub_id, unsigned int peer_id,
wifi_aware_data_path_role_e role, int port,
GAsyncReadyCallback cb)
{
- return WIFI_AWARE_ERROR_NONE;
+ __WIFI_AWARE_FUNC_ENTER__;
+ GVariant *params = NULL;
+ int ret = WIFI_AWARE_ERROR_NONE;
+
+ params = __create_data_path_request_param(client_id, pub_sub_id, peer_id, role, port);
+ WIFI_AWARE_LOGD("created parameters");
+ DBUS_DEBUG_VARIANT(params);
+
+ ret = __wifi_aware_dbus_method_call_async(
+ WIFI_AWARE_DISCOVERY_INTERFACE,
+ WIFI_AWARE_DISCOVERY_PATH,
+ "OpenDataPath", params, cb, NULL);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return ret;
}
int wifi_aware_gdbus_open_ndp_psk(wifi_aware_data_path_h data_path,
- uint16_t pub_sub_id, unsigned int peer_id,
+ int client_id, uint16_t pub_sub_id, unsigned int peer_id,
wifi_aware_data_path_role_e role, int port, const char *psk,
GAsyncReadyCallback cb)
{
- return WIFI_AWARE_ERROR_NONE;
+ __WIFI_AWARE_FUNC_ENTER__;
+ GVariant *params = NULL;
+ GVariant *params_psk = NULL;
+ int ret = WIFI_AWARE_ERROR_NONE;
+
+ params = __create_data_path_request_param(client_id, pub_sub_id, peer_id, role, port);
+ params_psk = __append_psk(params, psk);
+ g_variant_unref(params);
+ WIFI_AWARE_LOGD("created parameters");
+ DBUS_DEBUG_VARIANT(params_psk);
+
+ ret = __wifi_aware_dbus_method_call_async(
+ WIFI_AWARE_DISCOVERY_INTERFACE,
+ WIFI_AWARE_DISCOVERY_PATH,
+ "OpenDataPathPSK", params_psk, cb, NULL);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return ret;
}
int wifi_aware_gdbus_open_ndp_pmk(wifi_aware_data_path_h data_path,
- uint16_t pub_sub_id, unsigned int peer_id,
+ int client_id, uint16_t pub_sub_id, unsigned int peer_id,
wifi_aware_data_path_role_e role, int port, const unsigned char *pmk,
GAsyncReadyCallback cb)
{
- return WIFI_AWARE_ERROR_NONE;
+ __WIFI_AWARE_FUNC_ENTER__;
+ GVariant *params = NULL;
+ GVariant *params_pmk = NULL;
+ int ret = WIFI_AWARE_ERROR_NONE;
+
+ params = __create_data_path_request_param(client_id, pub_sub_id, peer_id, role, port);
+ params_pmk = __append_pmk(params, pmk);
+ g_variant_unref(params);
+ WIFI_AWARE_LOGD("created parameters");
+ DBUS_DEBUG_VARIANT(params_pmk);
+
+ ret = __wifi_aware_dbus_method_call_async(
+ WIFI_AWARE_DISCOVERY_INTERFACE,
+ WIFI_AWARE_DISCOVERY_PATH,
+ "OpenDataPathPMK", params_pmk, cb, NULL);
+
+ __WIFI_AWARE_FUNC_EXIT__;
+ return ret;
}
int wifi_aware_gdbus_ndp_close(wifi_aware_data_path_h data_path,
return session->is_requested;
}
-static int __get_client_id()
+int _wifi_aware_get_client_id()
{
return g_wifi_aware->client_id;
}
__session_set_requested(session, true);
ret = wifi_aware_gdbus_publish(session, publish,
- __get_client_id(),
+ _wifi_aware_get_client_id(),
__publish_request_reply);
if (ret != WIFI_AWARE_ERROR_NONE) {
__session_set_requested(session, true);
ret = wifi_aware_gdbus_update_publish(session, publish,
- __get_client_id(),
+ _wifi_aware_get_client_id(),
__publish_request_reply);
if (ret != WIFI_AWARE_ERROR_NONE) {
__session_set_requested(session, true);
ret = wifi_aware_gdbus_subscribe(session, subscribe,
- __get_client_id(),
+ _wifi_aware_get_client_id(),
__subscribe_request_reply);
if (ret != WIFI_AWARE_ERROR_NONE) {
int ret = WIFI_AWARE_ERROR_NONE;
ret = wifi_aware_gdbus_update_subscribe(session, subscribe,
- __get_client_id(),
+ _wifi_aware_get_client_id(),
__subscribe_request_reply);
if (ret != WIFI_AWARE_ERROR_NONE) {
"The publish is not done yet");
__session_deregister_signals(session);
- return wifi_aware_gdbus_cancel_publish(session, __get_client_id());
+ return wifi_aware_gdbus_cancel_publish(session, _wifi_aware_get_client_id());
}
static int __wifi_aware_cancel_subscribe_request(wifi_aware_session_h session)
__session_deregister_signals(session);
return wifi_aware_gdbus_cancel_subscribe(session,
- __get_client_id());
+ _wifi_aware_get_client_id());
}
int _wifi_aware_session_cancel(wifi_aware_session_h session)
return wifi_aware_gdbus_followup(
session,
- __get_client_id(),
+ _wifi_aware_get_client_id(),
pub_sub_id,
_wifi_aware_peer_get_id(peer),
message, len,