#include <glib.h>
+#include "wifi-aware.h"
#include "wifi-aware-gdbus.h"
#include "wifi-aware-log.h"
#include "wifi-aware-peer.h"
} wifi_aware_s;
typedef struct {
- wifi_aware_publish_request_s req;
-} wifi_aware_publish_s;
-
-typedef struct {
- wifi_aware_subscribe_request_s req;
-} wifi_aware_subscribe_s;
-
-typedef struct {
uint16_t pub_sub_id;
wifi_aware_session_type_e session_type;
- wifi_aware_publish_s *publish_config;
- wifi_aware_subscribe_s *subscribe_config;
+ wifi_aware_publish_h publish_config;
+ wifi_aware_subscribe_h subscribe_config;
bool is_requested;
wifi_aware_published_cb published_cb;
return session->session_type == WIFI_AWARE_SESSION_SUBSCRIBE;
}
-static wifi_aware_subscribe_s *__session_get_subscribe_config(wifi_aware_session_h session_handle)
-{
- wifi_aware_session_s *session = (wifi_aware_session_s *)session_handle;
- return session->subscribe_config;
-}
-
static void __session_deregister_signals(wifi_aware_session_h session)
{
_wifi_aware_unset_service_discovered_cb(session);
handle->subscribed_cb(session, error, handle->subscribed_cb_data);
}
-wifi_aware_subscribe_request_s *_wifi_aware_subscribe_get_request(wifi_aware_subscribe_h subscribe)
-{
- RET_VAL_IF(subscribe == NULL, NULL, "wifi_aware_subscribe_h is NULL");
-
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- return &(handle->req);
-}
-
static void __subscribe_request_reply(GObject *src, GAsyncResult *res, gpointer user_data)
{
wifi_aware_session_h session = (wifi_aware_session_h)user_data;
int _wifi_aware_publish_handle_create(wifi_aware_publish_h *publish)
{
- wifi_aware_publish_s *pub_handle =
- (wifi_aware_publish_s *)g_try_malloc0(sizeof(wifi_aware_publish_s));
- RET_VAL_IF(pub_handle == NULL, WIFI_AWARE_ERROR_OUT_OF_MEMORY, "Out of memory");
+ wifi_aware_publish_request_s *req =
+ (wifi_aware_publish_request_s *)g_try_malloc0(sizeof(wifi_aware_publish_request_s));
+ RET_VAL_IF(req == NULL, WIFI_AWARE_ERROR_OUT_OF_MEMORY, "Out of memory");
- *publish = (wifi_aware_publish_h)pub_handle;
+ *publish = (wifi_aware_publish_h)req;
return WIFI_AWARE_ERROR_NONE;
}
-void _wifi_aware_publish_request_set_default_values(wifi_aware_publish_h publish)
+void _wifi_aware_publish_set_default_values(wifi_aware_publish_h publish)
{
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- handle->req.ttl = 0;
- handle->req.publish_type = WIFI_AWARE_PUBLISH_TYPE_UNSOLICITED;
- //memset(req->specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN], 0, WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN);
- handle->req.specific_info_len = 0;
- //memset(req->match_filter[WIFI_AWARE_MAX_MATCH_FILTER_LEN], 0, WIFI_AWARE_MAX_MATCH_FILTER_LEN);
- handle->req.match_filter_len = 0;
- handle->req.enable_termination_event = false;
- handle->req.enable_ranging = false;
+ wifi_aware_publish_request_s *req = (wifi_aware_publish_request_s *)publish;
+ req->ttl = 0;
+ req->publish_type = WIFI_AWARE_PUBLISH_TYPE_UNSOLICITED;
+ req->specific_info_len = 0;
+ req->match_filter_len = 0;
+ req->enable_termination_event = false;
+ req->enable_ranging = false;
}
void _wifi_aware_publish_set_ttl(wifi_aware_publish_h publish, unsigned short ttl)
{
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- handle->req.ttl = ttl;
+ wifi_aware_publish_request_s *req = (wifi_aware_publish_request_s *)publish;
+ req->ttl = ttl;
}
void _wifi_aware_publish_set_type(wifi_aware_publish_h publish,
wifi_aware_publish_type_e publish_type)
{
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- handle->req.publish_type = publish_type;
+ wifi_aware_publish_request_s *req = (wifi_aware_publish_request_s *)publish;
+ req->publish_type = publish_type;
}
void _wifi_aware_publish_set_service_name(wifi_aware_publish_h publish, const char *service_name)
{
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- strncpy(handle->req.service_name, service_name, WIFI_AWARE_MAX_SERVICE_NAME_LEN);
+ wifi_aware_publish_request_s *req = (wifi_aware_publish_request_s *)publish;
+ strncpy(req->service_name, service_name, WIFI_AWARE_MAX_SERVICE_NAME_LEN);
}
void _wifi_aware_publish_set_service_specific_info(wifi_aware_publish_h publish,
unsigned char *service_specific_info, size_t len)
{
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- memcpy(handle->req.specific_info, service_specific_info, len);
- handle->req.specific_info_len = len;
+ wifi_aware_publish_request_s *req = (wifi_aware_publish_request_s *)publish;
+ memcpy(req->specific_info, service_specific_info, len);
+ req->specific_info_len = len;
}
void _wifi_aware_publish_set_match_filter(wifi_aware_publish_h publish,
unsigned char *match_filter, size_t len)
{
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- memcpy(handle->req.match_filter, match_filter, len);
- handle->req.match_filter_len = len;
+ wifi_aware_publish_request_s *req = (wifi_aware_publish_request_s *)publish;
+ memcpy(req->match_filter, match_filter, len);
+ req->match_filter_len = len;
}
void _wifi_aware_publish_set_enable_termination_event(wifi_aware_publish_h publish, bool enable)
{
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- handle->req.enable_termination_event = enable;
+ wifi_aware_publish_request_s *req = (wifi_aware_publish_request_s *)publish;
+ req->enable_termination_event = enable;
}
void _wifi_aware_publish_set_enable_ranging(wifi_aware_publish_h publish, bool enable)
{
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- handle->req.enable_ranging = enable;
-}
-
-wifi_aware_publish_request_s *_wifi_aware_publish_get_request(wifi_aware_publish_h publish)
-{
- RET_VAL_IF(publish == NULL, NULL, "wifi_aware_publish_h is NULL");
-
- wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
- return &(handle->req);
+ wifi_aware_publish_request_s *req = (wifi_aware_publish_request_s *)publish;
+ req->enable_ranging = enable;
}
static void __session_set_publish_config(wifi_aware_session_h session_handle,
wifi_aware_publish_h publish)
{
wifi_aware_session_s *session = (wifi_aware_session_s *)session_handle;
- session->publish_config = (wifi_aware_publish_s *)publish;
+ session->publish_config = publish;
}
int _wifi_aware_publish_request(wifi_aware_session_h session,
int _wifi_aware_subscribe_handle_create(wifi_aware_subscribe_h *subscribe)
{
- wifi_aware_subscribe_s *sub_handle =
- (wifi_aware_subscribe_s *)g_try_malloc0(sizeof(wifi_aware_subscribe_s));
- RET_VAL_IF(sub_handle == NULL, WIFI_AWARE_ERROR_OUT_OF_MEMORY, "Out of memory");
+ wifi_aware_subscribe_request_s *req =
+ (wifi_aware_subscribe_request_s *)g_try_malloc0(sizeof(wifi_aware_subscribe_request_s));
+ RET_VAL_IF(req == NULL, WIFI_AWARE_ERROR_OUT_OF_MEMORY, "Out of memory");
- *subscribe = (wifi_aware_subscribe_h)sub_handle;
+ *subscribe = (wifi_aware_subscribe_h)req;
return WIFI_AWARE_ERROR_NONE;
}
void _wifi_aware_subscribe_set_default_values(
wifi_aware_subscribe_h subscribe)
{
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- handle->req.ttl = 0;
- handle->req.subscribe_type = WIFI_AWARE_SUBSCRIBE_TYPE_PASSIVE;
+ wifi_aware_subscribe_request_s *req = (wifi_aware_subscribe_request_s *)subscribe;
+ req->ttl = 0;
+ req->subscribe_type = WIFI_AWARE_SUBSCRIBE_TYPE_PASSIVE;
//memset(req->specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN], 0, WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN);
- handle->req.specific_info_len = 0;
+ req->specific_info_len = 0;
//memset(req->match_filter[WIFI_AWARE_MAX_MATCH_FILTER_LEN], 0, WIFI_AWARE_MAX_MATCH_FILTER_LEN);
- handle->req.match_filter_len = 0;
- handle->req.enable_termination_event = false;
+ req->match_filter_len = 0;
+ req->enable_termination_event = false;
}
void _wifi_aware_subscribe_set_ttl(wifi_aware_subscribe_h subscribe, unsigned short ttl)
{
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- handle->req.ttl = ttl;
+ wifi_aware_subscribe_request_s *req = (wifi_aware_subscribe_request_s *)subscribe;
+ req->ttl = ttl;
}
void _wifi_aware_subscribe_set_type(wifi_aware_subscribe_h subscribe,
wifi_aware_subscribe_type_e subscribe_type)
{
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- handle->req.subscribe_type = subscribe_type;
+ wifi_aware_subscribe_request_s *req = (wifi_aware_subscribe_request_s *)subscribe;
+ req->subscribe_type = subscribe_type;
}
void _wifi_aware_subscribe_set_service_name(wifi_aware_subscribe_h subscribe, const char *service_name)
{
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- strncpy(handle->req.service_name, service_name, WIFI_AWARE_MAX_SERVICE_NAME_LEN);
+ wifi_aware_subscribe_request_s *req = (wifi_aware_subscribe_request_s *)subscribe;
+ strncpy(req->service_name, service_name, WIFI_AWARE_MAX_SERVICE_NAME_LEN);
}
void _wifi_aware_subscribe_set_service_specific_info(wifi_aware_subscribe_h subscribe,
unsigned char *service_specific_info, size_t len)
{
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- memcpy(handle->req.specific_info, service_specific_info, len);
- handle->req.specific_info_len = len;
+ wifi_aware_subscribe_request_s *req = (wifi_aware_subscribe_request_s *)subscribe;
+ memcpy(req->specific_info, service_specific_info, len);
+ req->specific_info_len = len;
}
void _wifi_aware_subscribe_set_match_filter(wifi_aware_subscribe_h subscribe,
unsigned char *match_filter, size_t len)
{
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- memcpy(handle->req.match_filter, match_filter, len);
- handle->req.match_filter_len = len;
+ wifi_aware_subscribe_request_s *req = (wifi_aware_subscribe_request_s *)subscribe;
+ memcpy(req->match_filter, match_filter, len);
+ req->match_filter_len = len;
}
void _wifi_aware_subscribe_set_enable_termination_event(wifi_aware_subscribe_h subscribe, bool enable)
{
- wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe;
- handle->req.enable_termination_event = enable;
+ wifi_aware_subscribe_request_s *req = (wifi_aware_subscribe_request_s *)subscribe;
+ req->enable_termination_event = enable;
}
static void __session_set_subscribe_config(wifi_aware_session_h session_handle,
wifi_aware_subscribe_h subscribe)
{
wifi_aware_session_s *session = (wifi_aware_session_s *)session_handle;
- session->subscribe_config = (wifi_aware_subscribe_s *)subscribe;
+ session->subscribe_config = subscribe;
}
int _wifi_aware_subscribe_request(wifi_aware_session_h session,
wifi_aware_session_h session = (wifi_aware_session_h)user_data;
wifi_aware_peer_h peer = NULL;
- wifi_aware_subscribe_s *subscribe_config = __session_get_subscribe_config(session);
- RET_IF(subscribe_config == NULL, "wifi_aware_subscribe_h is NULL");
RET_IF(!__is_subscribe_session(session), "This session is not for Subscribe");
__parsing_service_discovered_event(parameters,