From: Cheoleun Moon Date: Tue, 3 Mar 2020 06:46:12 +0000 (+0900) Subject: Change the type of publish_id and subscribe_id from uint32_t to uint16_t X-Git-Tag: submit/tizen/20200403.050222~2^2~48^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3ce12dd2180886c90f346c9c4944c78bfce440ed;p=platform%2Fcore%2Fapi%2Fwifi-aware.git Change the type of publish_id and subscribe_id from uint32_t to uint16_t --- diff --git a/include/wifi-aware.h b/include/wifi-aware.h index f80207d..9e3eccf 100644 --- a/include/wifi-aware.h +++ b/include/wifi-aware.h @@ -138,6 +138,12 @@ typedef void *wifi_aware_subscribe_h; */ typedef void *wifi_aware_peer_h; +/** + * @brief Handle for Wi-Fi Aware Data Path. + * @since_tizen 6.0 + */ +typedef void *wifi_aware_data_path_h; + /** * @brief @@ -579,6 +585,130 @@ int wifi_aware_set_message_received_cb(wifi_aware_session_h session, */ int wifi_aware_unset_message_received_cb(wifi_aware_session_h session); + +typedef enum { + WIFI_AWARE_SECURITY_TYPE_OPEN, + WIFI_AWARE_SECURITY_TYPE_PSK, + WIFI_AWARE_SECURITY_TYPE_PMK, +} wifi_aware_security_type_e; + +typedef enum { + WIFI_AWARE_DATA_PATH_INITIATOR, + WIFI_AWARE_DATA_PATH_RESPONDER, +} wifi_aware_data_path_role_e; + +typedef enum { + WIFI_AWARE_TERMINATION_REASON_UNKNOWN = 0, +} wifi_aware_termination_reason_e; + +/** + * @brief Create a handle to be used for Wi-Fi Aware Data Path + * @since_tizen 6.0 + * @param[in] session + * @param[in] peer + * @param[in] role + * @param[out] data_path + */ +int wifi_aware_data_path_create(wifi_aware_session_h session, wifi_aware_peer_h peer, + wifi_aware_data_path_role_e role, wifi_aware_data_path_h *data_path); + +/** + * @brief Set a security type + * @since_tizen 6.0 + * @param[in] data_path + * @param[in] security_type + */ +int wifi_aware_data_path_set_security(wifi_aware_data_path_h data_path, wifi_aware_security_type_e security_type); + +/** + * @brief Set a passphrase for Wi-Fi Aware Data Path. It can be used only when secury_type is WIFI_AWARE_SECURITY_TYPE_PSK. + * @since_tizen 6.0 + * @param[in] data_path + * @param[in] key + */ +int wifi_aware_data_path_set_psk(wifi_aware_data_path_h data_path, char *key); + +/** + * @brief Set a PMK for Wi-Fi Aware Data Path. It can be used only when secury_type is WIFI_AWARE_SECURITY_TYPE_PMK. + * @since_tizen 6.0 + * @param[in] data_path + * @param[in] key + * @param[in] key_len + */ +int wifi_aware_data_path_set_pmk(wifi_aware_data_path_h data_path, unsigned char *key, size_t key_len); + +// only for responder +/** + * @brief Set a service specific information which is contained in Data Path Response Frame. + * @remarks The service specific information can be set only when the role is WIFI_AWARE_DATA_PATH_RESPONDER. + * @since_tizen 6.0 + * @param[in] data_path + * @param[in] key + * @param[in] key_len + */ +int wifi_aware_data_path_set_service_specific_info(wifi_aware_data_path_h data_path, unsigned char *service_specific_info, size_t service_specific_info_len); + +/** + * @brief Destroy a handle for Wi-Fi Aware Data Path + * @since_tizen 6.0 + * @param[in] data_path + */ +int wifi_aware_data_path_destroy(wifi_aware_data_path_h data_path); + + +/** + * @brief This callback is invoked when wifi_aware_data_path_open is done with a result (success/failure) + * @since_tizen 6.0 + * @param[in] data_path + * @param[in] error + * @param[in] mac + * @param[in] service_specific_info + * @param[in] service_specific_info_len + * @param[in] user_data + */ +typedef void(*wifi_aware_data_path_open_cb)(wifi_aware_data_path_h data_path, wifi_aware_error_e error, + unsigned char *mac, unsigned char *service_specific_info, size_t service_specific_info_len, void *user_data); + +/** + * @brief Start to open a Wi-Fi Aware Data Path. + * @remarks If role is WIFI_AWARE_DATA_PATH_INITIATOR, the device will send a DataRequest Frame. + * If role is WIFI_AWARE_DATA_PATH_RESPONDER, the device will wait for a DataRequest and send DataResponse on receiving DataRequest from its peer + * @remarks The @a callback will be always invoked whether the open request succeeds or fails. + * @since_tizen 6.0 + * @param[in] data_path + * @param[in] callback + * @param[in] user_data + */ +int wifi_aware_data_path_open(wifi_aware_data_path_h data_path, wifi_aware_data_path_open_cb callback, void *user_data); + +/** + * @brief Close a Wi-Fi Aware Data Path. + * @since_tizen 6.0 + * @param[in] data_path + */ +int wifi_aware_data_path_close(wifi_aware_data_path_h data_path); + + +/** + * @brief Callback to notify that the Wi-Fi Aware Data Path has been lost. + * @since_tizen 6.0 + * @param[in] data_path + * @param[in] reason + * @param[in] user_data + */ +typedef void(*wifi_aware_data_path_terminated_cb)(wifi_aware_data_path_h data_path, wifi_aware_termination_reason_e reason, void *user_data); + +/** + * @brief Close a Wi-Fi Aware Data Path. + * @since_tizen 6.0 + * @param[in] data_path + */ +int wifi_aware_data_path_set_terminated_cb(wifi_aware_data_path_h data_path, wifi_aware_data_path_terminated_cb callback, void *user_data); + +// TODO +// DataUpdate + + // Can APIs to get peer information using wifi_aware_peer_h? // wifi_aware_peer_get_mac_address(): Which mac address should this API show, NMI or NDI? diff --git a/src/include/wifi-aware-config.h b/src/include/wifi-aware-config.h index 8ec749d..702c245 100644 --- a/src/include/wifi-aware-config.h +++ b/src/include/wifi-aware-config.h @@ -51,7 +51,6 @@ typedef struct { typedef struct { - uint32_t subscribe_id; // Get it from return value of Subscribe dbus method call uint16_t ttl; uint8_t subscribe_type; char service_name[WIFI_AWARE_MAX_SERVICE_NAME_LEN + 1]; diff --git a/src/include/wifi-aware-gdbus.h b/src/include/wifi-aware-gdbus.h index f983960..fe7de45 100644 --- a/src/include/wifi-aware-gdbus.h +++ b/src/include/wifi-aware-gdbus.h @@ -71,23 +71,23 @@ int wifi_aware_gdbus_update_subscribe(wifi_aware_session_h session, wifi_aware_subscribe_h subscribe, int client_id, GAsyncReadyCallback cb); int wifi_aware_gdbus_followup(wifi_aware_session_h session, - int client_id, unsigned int pub_sub_id, unsigned int peer_id, + int client_id, uint16_t pub_sub_id, unsigned int peer_id, const unsigned char *message, size_t len, GAsyncReadyCallback cb, void *user_data); int wifi_aware_gdbus_ndp_open(wifi_aware_data_path_h data_path, - unsigned int pub_sub_id, unsigned int peer_id, wifi_aware_data_path_role_e role, + uint16_t pub_sub_id, unsigned int peer_id, wifi_aware_data_path_role_e role, const unsigned char *specific_info, size_t specific_info_len, GAsyncReadyCallback cb); int wifi_aware_gdbus_ndp_close(wifi_aware_data_path_h data_path, - unsigned int ndp_id, unsigned int pub_sub_id, unsigned int peer_id); + unsigned int ndp_id, uint16_t pub_sub_id, unsigned int peer_id); int wifi_aware_gdbus_ndp_psk(wifi_aware_data_path_h data_path, - unsigned int pub_sub_id, unsigned int peer_id, wifi_aware_data_path_role_e role, + uint16_t pub_sub_id, unsigned int peer_id, wifi_aware_data_path_role_e role, unsigned char *specific_info, size_t specific_info_len, const char *psk, GAsyncReadyCallback cb); int wifi_aware_gdbus_ndp_pmk(wifi_aware_data_path_h data_path, - unsigned int pub_sub_id, unsigned int peer_id, wifi_aware_data_path_role_e role, + uint16_t pub_sub_id, unsigned int peer_id, wifi_aware_data_path_role_e role, unsigned char *specific_info, size_t specific_info_len, const unsigned char *pmk, size_t pmk_len, GAsyncReadyCallback cb); diff --git a/src/include/wifi-aware-private.h b/src/include/wifi-aware-private.h index 0fe1034..c391d67 100644 --- a/src/include/wifi-aware-private.h +++ b/src/include/wifi-aware-private.h @@ -41,7 +41,7 @@ int _wifi_aware_disable_request(); int _wifi_aware_session_handle_create(wifi_aware_session_type_e session_type, wifi_aware_session_h *session_handle); void _wifi_aware_session_handle_destroy(wifi_aware_session_h session_handle); wifi_aware_session_type_e _wifi_aware_session_get_type(wifi_aware_session_h session_handle); -unsigned int _wifi_aware_session_get_pubsub_id(wifi_aware_session_h session); +uint16_t _wifi_aware_session_get_pubsub_id(wifi_aware_session_h session); int _wifi_aware_publish_handle_create(wifi_aware_publish_h *publish); void _wifi_aware_publish_request_set_default_values(wifi_aware_publish_h publish); @@ -56,7 +56,7 @@ void _wifi_aware_publish_set_match_filter(wifi_aware_publish_h publish, void _wifi_aware_publish_set_enable_termination_event(wifi_aware_publish_h publish, bool enable); void _wifi_aware_publish_set_enable_ranging(wifi_aware_publish_h publish, bool enable); wifi_aware_publish_request_s *_wifi_aware_publish_get_request(wifi_aware_publish_h publish_handle); -unsigned int _wifi_aware_session_get_publish_id(wifi_aware_session_h session); +uint16_t _wifi_aware_session_get_publish_id(wifi_aware_session_h session); int _wifi_aware_subscribe_handle_create(wifi_aware_publish_h *publish); void _wifi_aware_subscribe_set_default_values(wifi_aware_subscribe_h subscribe); @@ -70,7 +70,7 @@ void _wifi_aware_subscribe_set_match_filter(wifi_aware_subscribe_h subscribe, unsigned char *match_filter, size_t len); void _wifi_aware_subscribe_set_enable_termination_event(wifi_aware_subscribe_h subscribe, bool enable); wifi_aware_subscribe_request_s *_wifi_aware_subscribe_get_request(wifi_aware_subscribe_h subscribe_handle); -unsigned int _wifi_aware_session_get_subscribe_id(wifi_aware_session_h session); +uint16_t _wifi_aware_session_get_subscribe_id(wifi_aware_session_h session); int _wifi_aware_publish_request(wifi_aware_session_h session, wifi_aware_publish_h publish, wifi_aware_published_cb callback, void *user_data); diff --git a/src/wifi-aware-gdbus.c b/src/wifi-aware-gdbus.c index 8a36936..6908cf4 100644 --- a/src/wifi-aware-gdbus.c +++ b/src/wifi-aware-gdbus.c @@ -266,13 +266,13 @@ static GVariant *__create_publish_request_param(int client_id, wifi_aware_publis return params; } -static GVariant *__create_cancel_publish_request_param(int client_id, unsigned int pub_id) +static GVariant *__create_cancel_publish_request_param(int client_id, uint16_t pub_id) { - return g_variant_new("(iu)", client_id, pub_id); + return g_variant_new("(iq)", client_id, pub_id); } static GVariant *__create_update_publish_request_param(int client_id, - unsigned int pub_id, wifi_aware_publish_request_s *req) + uint16_t pub_id, wifi_aware_publish_request_s *req) { GVariantBuilder *builder = NULL; GVariant *params = NULL; @@ -292,7 +292,7 @@ static GVariant *__create_update_publish_request_param(int client_id, g_variant_builder_add(builder, "{sv}", "enable_termination_event", g_variant_new("b", req->enable_termination_event)); g_variant_builder_add(builder, "{sv}", "enable_ranging", g_variant_new("b", req->enable_ranging)); - params = g_variant_new("(iua{sv})", client_id, pub_id, builder); + params = g_variant_new("(iqa{sv})", client_id, pub_id, builder); g_variant_builder_unref(builder); return params; } @@ -321,13 +321,13 @@ static GVariant *__create_subscribe_request_param(int client_id, wifi_aware_subs return params; } -static GVariant *__create_cancel_subscribe_request_param(int client_id, unsigned int sub_id) +static GVariant *__create_cancel_subscribe_request_param(int client_id, uint16_t sub_id) { return g_variant_new("(iu)", client_id, sub_id); } static GVariant *__create_update_subscribe_request_param(int client_id, - unsigned int sub_id, wifi_aware_subscribe_request_s *req) + uint16_t sub_id, wifi_aware_subscribe_request_s *req) { GVariantBuilder *builder = NULL; GVariant *params = NULL; @@ -351,7 +351,7 @@ static GVariant *__create_update_subscribe_request_param(int client_id, return params; } -static GVariant *__create_followup_request_param(int client_id, unsigned int pub_sub_id, +static GVariant *__create_followup_request_param(int client_id, uint16_t pub_sub_id, unsigned int peer_id, const unsigned char *message, size_t len) { GVariantBuilder *builder = NULL; @@ -460,7 +460,7 @@ int wifi_aware_gdbus_cancel_publish(wifi_aware_session_h session, int client_id) GVariant *params = NULL; GVariant *reply = NULL; int ret = WIFI_AWARE_ERROR_NONE; - unsigned int pub_id = _wifi_aware_session_get_publish_id(session); + uint16_t pub_id = _wifi_aware_session_get_publish_id(session); if (pub_id == 0) { WIFI_AWARE_LOGE("Invalid Publish Id"); @@ -492,7 +492,7 @@ int wifi_aware_gdbus_update_publish(wifi_aware_session_h session, GVariant *params = NULL; int ret = WIFI_AWARE_ERROR_NONE; wifi_aware_publish_request_s *req = _wifi_aware_publish_get_request(publish); - unsigned int pub_id = _wifi_aware_session_get_publish_id(session); + uint16_t pub_id = _wifi_aware_session_get_publish_id(session); if (pub_id == 0) { WIFI_AWARE_LOGE("Invalid Publish Id."); @@ -550,7 +550,7 @@ int wifi_aware_gdbus_cancel_subscribe(wifi_aware_session_h session, int client_i GVariant *params = NULL; GVariant *reply = NULL; int ret = WIFI_AWARE_ERROR_NONE; - unsigned int sub_id = _wifi_aware_session_get_subscribe_id(session); + uint16_t sub_id = _wifi_aware_session_get_subscribe_id(session); if (sub_id == 0) { WIFI_AWARE_LOGE("Invalid Subscribe Id"); @@ -582,7 +582,7 @@ int wifi_aware_gdbus_update_subscribe(wifi_aware_session_h session, GVariant *params = NULL; int ret = WIFI_AWARE_ERROR_NONE; wifi_aware_subscribe_request_s *req = _wifi_aware_subscribe_get_request(subscribe); - unsigned int sub_id = _wifi_aware_session_get_subscribe_id(session); + uint16_t sub_id = _wifi_aware_session_get_subscribe_id(session); if (sub_id == 0) { WIFI_AWARE_LOGE("Invalid Publish Id."); @@ -604,7 +604,7 @@ int wifi_aware_gdbus_update_subscribe(wifi_aware_session_h session, } int wifi_aware_gdbus_followup(wifi_aware_session_h session, - int client_id, unsigned int pub_sub_id, unsigned int peer_id, + int client_id, uint16_t pub_sub_id, unsigned int peer_id, const unsigned char *message, size_t len, GAsyncReadyCallback cb, void *user_data) { @@ -628,7 +628,7 @@ int wifi_aware_gdbus_followup(wifi_aware_session_h session, } int wifi_aware_gdbus_ndp_open(wifi_aware_data_path_h data_path, - unsigned int pub_sub_id, unsigned int peer_id, wifi_aware_data_path_role_e role, + uint16_t pub_sub_id, unsigned int peer_id, wifi_aware_data_path_role_e role, const unsigned char *specific_info, size_t specific_info_len, GAsyncReadyCallback cb) { @@ -636,13 +636,13 @@ int wifi_aware_gdbus_ndp_open(wifi_aware_data_path_h data_path, } int wifi_aware_gdbus_ndp_close(wifi_aware_data_path_h data_path, - unsigned int ndp_id, unsigned int pub_sub_id, unsigned int peer_id) + unsigned int ndp_id, uint16_t pub_sub_id, unsigned int peer_id) { return WIFI_AWARE_ERROR_NONE; } int wifi_aware_gdbus_ndp_psk(wifi_aware_data_path_h data_path, - unsigned int pub_sub_id, unsigned int peer_id, wifi_aware_data_path_role_e role, + uint16_t pub_sub_id, unsigned int peer_id, wifi_aware_data_path_role_e role, unsigned char *specific_info, size_t specific_info_len, const char *psk, GAsyncReadyCallback cb) @@ -651,7 +651,7 @@ int wifi_aware_gdbus_ndp_psk(wifi_aware_data_path_h data_path, } int wifi_aware_gdbus_ndp_pmk(wifi_aware_data_path_h data_path, - unsigned int pub_sub_id, unsigned int peer_id, wifi_aware_data_path_role_e role, + uint16_t pub_sub_id, unsigned int peer_id, wifi_aware_data_path_role_e role, unsigned char *specific_info, size_t specific_info_len, const unsigned char *pmk, size_t pmk_len, GAsyncReadyCallback cb) diff --git a/src/wifi-aware-private.c b/src/wifi-aware-private.c index 75adcb8..8f822c1 100644 --- a/src/wifi-aware-private.c +++ b/src/wifi-aware-private.c @@ -61,12 +61,12 @@ typedef struct { } wifi_aware_s; typedef struct { - uint32_t publish_id; + uint16_t publish_id; wifi_aware_publish_request_s req; } wifi_aware_publish_s; typedef struct { - uint32_t subscribe_id; + uint16_t subscribe_id; wifi_aware_subscribe_request_s req; } wifi_aware_subscribe_s; @@ -273,7 +273,7 @@ static int __is_published(wifi_aware_publish_h publish) return handle->publish_id > 0; } -static void __wifi_aware_publish_set_id(wifi_aware_publish_h publish, unsigned int publish_id) +static void __wifi_aware_publish_set_id(wifi_aware_publish_h publish, uint16_t publish_id) { RET_IF(publish == NULL, "wifi_aware_publish_h is NULL"); wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish; @@ -314,7 +314,7 @@ static void __wifi_aware_received_cb(wifi_aware_session_h session, wifi_aware_pe handle->received_cb_data); } -static wifi_aware_error_e __get_dbus_result(GObject *src, GAsyncResult *res, unsigned int *id) +static wifi_aware_error_e __get_dbus_result(GObject *src, GAsyncResult *res, uint16_t *id) { GDBusConnection *conn = G_DBUS_CONNECTION(src); GError *dbus_error = NULL; @@ -330,7 +330,7 @@ static wifi_aware_error_e __get_dbus_result(GObject *src, GAsyncResult *res, uns g_error_free(dbus_error); } else { - g_variant_get(reply, "(ui)", id, &nan_error); + g_variant_get(reply, "(qi)", id, &nan_error); WIFI_AWARE_LOGI("Pub/Sub ID: %u, error: %d", *id, nan_error); error = _wifi_aware_convert_nan_manager_error(nan_error); } @@ -341,7 +341,7 @@ static void __publish_request_reply(GObject *src, GAsyncResult *res, gpointer us { wifi_aware_session_h session = (wifi_aware_session_h)user_data; wifi_aware_error_e error = WIFI_AWARE_ERROR_NONE; - unsigned int publish_id = 0; + uint16_t publish_id = 0; WIFI_AWARE_LOGI("Reply for Publish Request"); RET_IF(session == NULL, "Session is NULL"); @@ -377,7 +377,7 @@ static void __wifi_aware_subscribe_invoke_callback(wifi_aware_session_h session, handle->subscribed_cb(session, error, handle->subscribed_cb_data); } -static void __wifi_aware_subscribe_set_id(wifi_aware_subscribe_h subscribe, unsigned int subscribe_id) +static void __wifi_aware_subscribe_set_id(wifi_aware_subscribe_h subscribe, uint16_t subscribe_id) { wifi_aware_subscribe_s *handle = (wifi_aware_subscribe_s *)subscribe; handle->subscribe_id = subscribe_id; @@ -395,7 +395,7 @@ static void __subscribe_request_reply(GObject *src, GAsyncResult *res, gpointer { wifi_aware_session_h session = (wifi_aware_session_h)user_data; wifi_aware_error_e error = WIFI_AWARE_ERROR_NONE; - unsigned int subscribe_id = 0; + uint16_t subscribe_id = 0; WIFI_AWARE_LOGI("Reply for Subscribe Request"); RET_IF(session == NULL, "Session is NULL"); @@ -407,7 +407,7 @@ static void __subscribe_request_reply(GObject *src, GAsyncResult *res, gpointer __wifi_aware_subscribe_invoke_callback(session, error); } -unsigned int _wifi_aware_session_get_publish_id(wifi_aware_session_h session) +uint16_t _wifi_aware_session_get_publish_id(wifi_aware_session_h session) { RET_VAL_IF(session == NULL, 0, "wifi_aware_session_h is NULL"); RET_VAL_IF(!__is_publish_session(session), 0, @@ -415,7 +415,7 @@ unsigned int _wifi_aware_session_get_publish_id(wifi_aware_session_h session) return __session_get_publish_config(session)->publish_id; } -unsigned int _wifi_aware_session_get_subscribe_id(wifi_aware_session_h session) +uint16_t _wifi_aware_session_get_subscribe_id(wifi_aware_session_h session) { RET_VAL_IF(session == NULL, 0, "wifi_aware_session_h is NULL"); RET_VAL_IF(!__is_subscribe_session(session), 0, @@ -423,7 +423,7 @@ unsigned int _wifi_aware_session_get_subscribe_id(wifi_aware_session_h session) return __session_get_subscribe_config(session)->subscribe_id; } -unsigned int _wifi_aware_session_get_pubsub_id(wifi_aware_session_h session) +uint16_t _wifi_aware_session_get_pubsub_id(wifi_aware_session_h session) { return 0; } @@ -879,12 +879,12 @@ int _wifi_aware_session_cancel(wifi_aware_session_h session) } static void __parsing_service_discovered_event(GVariant *parameters, - unsigned int *sub_id, unsigned int *peer_id, + uint16_t *sub_id, unsigned int *peer_id, unsigned char *specific_info, size_t *specific_info_len) { gchar *info_value = NULL; - g_variant_get(parameters, "(uusq)", sub_id, peer_id, + g_variant_get(parameters, "(qusq)", sub_id, peer_id, &info_value, specific_info_len); memcpy(specific_info, info_value, *specific_info_len); @@ -930,7 +930,7 @@ static void __service_discovered_cb(GDBusConnection *connection, __WIFI_AWARE_FUNC_ENTER__; WIFI_AWARE_LOGD("NAN Service is discovered"); - unsigned int sub_id = 0; + uint16_t sub_id = 0; unsigned int peer_id = 0; unsigned char specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN]; size_t specific_info_len = 0; @@ -1102,7 +1102,7 @@ int _wifi_aware_send_message(wifi_aware_session_h session, __WIFI_AWARE_FUNC_ENTER__; RET_VAL_IF(session == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_session_h is NULL"); - unsigned int pub_sub_id = 0; + uint16_t pub_sub_id = 0; wifi_aware_message_s *message_data = __create_message_data(session, callback, user_data); RET_VAL_IF(message == NULL, WIFI_AWARE_ERROR_OUT_OF_MEMORY, "__create_cb_data fails");