Change the type of service_name to char*
authorCheoleun Moon <chleun.moon@samsung.com>
Thu, 6 Feb 2020 05:17:41 +0000 (14:17 +0900)
committerCheoleun Moon <chleun.moon@samsung.com>
Thu, 6 Feb 2020 05:49:37 +0000 (14:49 +0900)
include/wifi-aware.h
src/include/wifi-aware-config.h
src/include/wifi-aware-publish-private.h
src/include/wifi-aware-utils.h
src/wifi-aware-gdbus.c
src/wifi-aware-private.c
src/wifi-aware-publish.c
src/wifi-aware-subscribe.c
test/wifi-aware-test.c

index a5d8bf8..47832eb 100644 (file)
@@ -98,13 +98,15 @@ typedef enum {
 
 
 typedef enum {
-       WIFI_AWARE_PUBLISH_TYPE_SOLICITED,      /**< Solicited type */
        WIFI_AWARE_PUBLISH_TYPE_UNSOLICITED,/**< Unsolicited type */
+       WIFI_AWARE_PUBLISH_TYPE_SOLICITED,      /**< Solicited type */
+       // TODO:
+       // WIFI_AWARE_PUBLISH_TYPE_UNSOLICITED_SOLICITED
 } wifi_aware_publish_type_e;
 
 typedef enum {
-       WIFI_AWARE_SUBSCRIBE_TYPE_ACTIVE,   /**< Active type */
        WIFI_AWARE_SUBSCRIBE_TYPE_PASSIVE,  /**< Passive type */
+       WIFI_AWARE_SUBSCRIBE_TYPE_ACTIVE,   /**< Active type */
 } wifi_aware_subscribe_type_e;
 
 
@@ -216,14 +218,14 @@ int wifi_aware_publish_set_ttl(wifi_aware_publish_h publish, unsigned short ttl)
 int wifi_aware_publish_set_type(wifi_aware_publish_h publish, wifi_aware_publish_type_e publish_type);
 
 /**
- * @brief Set the name of the service.
+ * @brief Set the name of the service. The length should be less than or equal to 255
  * @since_tizen 6.0
  * @param[in] publish
- * @param[in] service_name. It should be a null-terminated string. 
+ * @param[in] service_name UTF-8 name which identifies the service
  * @return     0 on success, otherwise a negative error value
  * @retval     #WIFI_AWARE_ERROR_NONE
  */
-int wifi_aware_publish_set_service_name(wifi_aware_publish_h publish, unsigned char *service_name, size_t len);
+int wifi_aware_publish_set_service_name(wifi_aware_publish_h publish, const char *service_name);
 
 /**
  * @brief Set the specific information for the service.
@@ -292,14 +294,14 @@ int wifi_aware_subscribe_config_set_ttl(wifi_aware_subscribe_config_h config, un
 int wifi_aware_subscribe_config_set_type(wifi_aware_subscribe_config_h config, wifi_aware_subscribe_type_e subscribe_type);
 
 /**
- * @brief 
+ * @brief Set the name of the service. The length should be less than or equal to 255
  * @since_tizen 6.0
  * @param[in] config
- * @param[in] service_name. It should be a null-terminated string. 
+ * @param[in] service_name UTF-8 name which identifies the service
  * @return     0 on success, otherwise a negative error value
  * @retval     #WIFI_AWARE_ERROR_NONE
  */
-int wifi_aware_subscribe_config_set_service_name(wifi_aware_subscribe_config_h config, unsigned char *service_name, size_t len);
+int wifi_aware_subscribe_config_set_service_name(wifi_aware_subscribe_config_h config, const char *service_name);
 
 /**
  * @brief 
index f19da86..fa3a016 100644 (file)
@@ -40,8 +40,7 @@ typedef struct {
 typedef struct {
        uint16_t ttl;
        uint8_t publish_type;
-       uint8_t service_name[WIFI_AWARE_MAX_SERVICE_NAME_LEN];
-       uint16_t service_name_len;
+       char service_name[WIFI_AWARE_MAX_SERVICE_NAME_LEN + 1];
        uint8_t specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN];
        uint16_t specific_info_len;
        uint8_t match_filter[WIFI_AWARE_MAX_MATCH_FILTER_LEN];
@@ -55,8 +54,7 @@ typedef struct {
        uint32_t subscribe_id;  // Get it from return value of Subscribe dbus method call
        uint16_t ttl;
        uint8_t subscribe_type;
-       uint8_t service_name[WIFI_AWARE_MAX_SERVICE_NAME_LEN];
-       uint16_t service_name_len;
+       char service_name[WIFI_AWARE_MAX_SERVICE_NAME_LEN + 1];
        uint8_t specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN];
        uint16_t specific_info_len;
        uint8_t match_filter[WIFI_AWARE_MAX_MATCH_FILTER_LEN];
index 30e328f..abf30bc 100644 (file)
@@ -21,6 +21,7 @@
 #include <gio/gio.h>
 
 #include "wifi-aware.h"
+#include "wifi-aware-config.h"
 #include "wifi-aware-log.h"
 
 #ifdef __cplusplus
index 2ac5ef2..395f282 100644 (file)
@@ -56,7 +56,7 @@ extern "C" {
     } while (0)
 */
 
-#define RET_IF(expr, val, fmt, arg...) do { \
+#define RET_IF(expr, fmt, arg...) do { \
                if (expr) { \
                        WIFI_AWARE_LOGE(fmt, ##arg); \
                        return; \
index a3a0ba3..ed46004 100644 (file)
@@ -28,6 +28,7 @@
 #include "wifi-aware-log.h"
 #include "wifi-aware.h"
 #include "wifi-aware-private.h"
+#include "wifi-aware-publish-private.h"
 #include "wifi-aware-utils.h"
 #include "wifi-aware-gdbus.h"
 
@@ -249,7 +250,6 @@ static GVariant *__create_publish_request_param(int client_id, wifi_aware_publis
        g_variant_builder_add(builder, "{sv}", "ttl", g_variant_new("q", req->ttl));
        g_variant_builder_add(builder, "{sv}", "publish_type", g_variant_new("y", req->publish_type));
        g_variant_builder_add(builder, "{sv}", "service_name", g_variant_new("s", req->service_name));
-       g_variant_builder_add(builder, "{sv}", "service_name_len", g_variant_new("q", req->service_name_len));
        g_variant_builder_add(builder, "{sv}", "specific_info", g_variant_new("s", req->specific_info));
        g_variant_builder_add(builder, "{sv}", "specific_info_len", g_variant_new("q", req->specific_info_len));
        g_variant_builder_add(builder, "{sv}", "match_filter", g_variant_new("s", req->match_filter));
@@ -277,7 +277,6 @@ static GVariant *__create_update_publish_request_param(int client_id,
        g_variant_builder_add(builder, "{sv}", "ttl", g_variant_new("q", req->ttl));
        g_variant_builder_add(builder, "{sv}", "publish_type", g_variant_new("y", req->publish_type));
        g_variant_builder_add(builder, "{sv}", "service_name", g_variant_new("s", req->service_name));
-       g_variant_builder_add(builder, "{sv}", "service_name_len", g_variant_new("q", req->service_name_len));
        g_variant_builder_add(builder, "{sv}", "specific_info", g_variant_new("s", req->specific_info));
        g_variant_builder_add(builder, "{sv}", "specific_info_len", g_variant_new("q", req->specific_info_len));
        g_variant_builder_add(builder, "{sv}", "match_filter", g_variant_new("s", req->match_filter));
@@ -299,7 +298,6 @@ static GVariant *__create_subscribe_request_param(int client_id, wifi_aware_subs
        g_variant_builder_add(builder, "{sv}", "ttl", g_variant_new("q", req->ttl));
        g_variant_builder_add(builder, "{sv}", "subscribe_type", g_variant_new("y", req->subscribe_type));
        g_variant_builder_add(builder, "{sv}", "service_name", g_variant_new("s", req->service_name));
-       g_variant_builder_add(builder, "{sv}", "service_name_len", g_variant_new("q", req->service_name_len));
        g_variant_builder_add(builder, "{sv}", "specific_info", g_variant_new("s", req->specific_info));
        g_variant_builder_add(builder, "{sv}", "specific_info_len", g_variant_new("q", req->specific_info_len));
        g_variant_builder_add(builder, "{sv}", "match_filter", g_variant_new("s", req->match_filter));
@@ -380,7 +378,6 @@ int wifi_aware_gdbus_cancel_publish(wifi_aware_publish_h publish, int client_id)
        GVariant *params = NULL;
        GVariant *reply = 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_publish_get_id(publish);
 
        if (pub_id == 0) {
index f36c796..26175cd 100644 (file)
@@ -154,10 +154,6 @@ bool _wifi_aware_handle_is_valid(wifi_aware_h wifi_aware)
        return true;
 }
 
-static void __print_match_filter(unsigned char *filter, size_t filter_len)
-{
-}
-
 static wifi_aware_error_e __parse_enable_reply(GVariant *reply, wifi_aware_s *aware)
 {
        int error;
@@ -380,7 +376,6 @@ static void __parsing_service_discovered_event(GVariant *parameters,
                unsigned char *specific_info, size_t *specific_info_len)
 {
        gchar *info_value = NULL;
-       gchar *filter_value = NULL;
 
        g_variant_get(parameters, "(uusq)", sub_id, peer_id,
                        info_value, specific_info_len);
index 27de0a8..d1b44d8 100644 (file)
@@ -54,8 +54,6 @@ static void _wifi_aware_publish_request_set_default_values(wifi_aware_publish_re
 {
        req->ttl = 0;
        req->publish_type = WIFI_AWARE_PUBLISH_TYPE_UNSOLICITED;
-       //memset(req->service_name[WIFI_AWARE_MAX_SERVICE_NAME_LEN], 0, WIFI_AWARE_MAX_SERVICE_NAME_LEN);
-       req->service_name_len = 0;
        //memset(req->specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN], 0, WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN);
        req->specific_info_len = 0;
        //memset(req->match_filter[WIFI_AWARE_MAX_MATCH_FILTER_LEN], 0, WIFI_AWARE_MAX_MATCH_FILTER_LEN);
@@ -82,7 +80,7 @@ unsigned int _wifi_aware_publish_get_id(wifi_aware_publish_h publish)
 
 void _wifi_aware_publish_invoke_callback(wifi_aware_error_e error, wifi_aware_publish_h publish)
 {
-       RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+       RET_IF(publish == NULL, "wifi_aware_publish_h is NULL");
 
        wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
        if (handle->published_cb)
@@ -91,7 +89,7 @@ void _wifi_aware_publish_invoke_callback(wifi_aware_error_e error, wifi_aware_pu
 
 void _wifi_aware_publish_set_id(wifi_aware_publish_h publish, unsigned int publish_id)
 {
-       RET_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
+       RET_IF(publish == NULL, "wifi_aware_publish_h is NULL");
        wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
        handle->publish_id = publish_id;
 }
@@ -153,15 +151,22 @@ API int wifi_aware_publish_set_type(wifi_aware_publish_h publish,
 }
 
 API int wifi_aware_publish_set_service_name(wifi_aware_publish_h publish,
-               unsigned char *service_name, size_t len)
+               const char *service_name)
 {
        __WIFI_AWARE_FUNC_ENTER__;
+       int len = 0;
        CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
        RET_VAL_IF(publish == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_h is NULL");
 
        wifi_aware_publish_s *handle = (wifi_aware_publish_s *)publish;
-       memcpy(handle->req.service_name, service_name, len);
-       handle->req.service_name_len = len;
+       len = strlen(service_name);
+       if (len > WIFI_AWARE_MAX_SERVICE_NAME_LEN) {
+               WIFI_AWARE_LOGE("The length of service_name should be equal to or less than %d",
+                               WIFI_AWARE_MAX_SERVICE_NAME_LEN);
+               return WIFI_AWARE_ERROR_INVALID_PARAMETER;
+       }
+
+       strncpy(handle->req.service_name, service_name, WIFI_AWARE_MAX_SERVICE_NAME_LEN);
 
        __WIFI_AWARE_FUNC_EXIT__;
        return WIFI_AWARE_ERROR_NONE;
index 0c6c312..b5867fb 100644 (file)
@@ -42,8 +42,6 @@ static void __wifi_aware_subscribe_config_set_default_values(
                (wifi_aware_subscribe_request_s *)config;
        req->ttl = 0;
        req->subscribe_type = WIFI_AWARE_SUBSCRIBE_TYPE_PASSIVE;
-       //memset(req->service_name[WIFI_AWARE_MAX_SERVICE_NAME_LEN], 0, WIFI_AWARE_MAX_SERVICE_NAME_LEN);
-       req->service_name_len = 0;
        //memset(req->specific_info[WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN], 0, WIFI_AWARE_MAX_SERVICE_SPECIFIC_INFO_LEN);
        req->specific_info_len = 0;
        //memset(req->match_filter[WIFI_AWARE_MAX_MATCH_FILTER_LEN], 0, WIFI_AWARE_MAX_MATCH_FILTER_LEN);
@@ -109,15 +107,22 @@ API int wifi_aware_subscribe_config_set_type(
 
 API int wifi_aware_subscribe_config_set_service_name(
                wifi_aware_subscribe_config_h config,
-               unsigned char *service_name, size_t len)
+               const char *service_name)
 {
        __WIFI_AWARE_FUNC_ENTER__;
+       int len = 0;
        CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE);
        RET_VAL_IF(config == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_subscribe_config_h is NULL");
 
        wifi_aware_subscribe_request_s *req = (wifi_aware_subscribe_request_s *)config;
-       memcpy(req->service_name, service_name, len);
-       req->service_name_len = len;
+       len = strlen(service_name);
+       if (len > WIFI_AWARE_MAX_SERVICE_NAME_LEN) {
+               WIFI_AWARE_LOGE("The length of service_name should be equal to or less than %d",
+                               WIFI_AWARE_MAX_SERVICE_NAME_LEN);
+               return WIFI_AWARE_ERROR_INVALID_PARAMETER;
+       }
+
+       strncpy(req->service_name, service_name, WIFI_AWARE_MAX_SERVICE_NAME_LEN);
 
        __WIFI_AWARE_FUNC_EXIT__;
        return WIFI_AWARE_ERROR_NONE;
index 108778f..0032337 100644 (file)
@@ -389,7 +389,7 @@ static void __set_publish_config(wifi_aware_publish_h config)
 {
        int ret = 0;
        int publish_type = 0;
-       unsigned char service_name[MAX_SERVICE_NAME_LEN + 1] = {0, };
+       char service_name[MAX_SERVICE_NAME_LEN + 1] = {0, };
        unsigned char specific_info[MAX_SPECIFIC_INFO_LEN + 1] = {0, };
        unsigned char match_filter[MAX_MATCH_FILTER_LEN + 1] = {0, };
        size_t len = 0;
@@ -406,10 +406,9 @@ static void __set_publish_config(wifi_aware_publish_h config)
        if (ret != WIFI_AWARE_ERROR_NONE)
                return;
 
-       len = strlen(SERVICE_NAME);
-       memcpy(service_name, SERVICE_NAME, len);
+       strncpy(service_name, SERVICE_NAME, MAX_SERVICE_NAME_LEN);
        ret = wifi_aware_publish_set_service_name(config,
-                       service_name, len);
+                       service_name);
        if (ret != WIFI_AWARE_ERROR_NONE)
                return;
 
@@ -483,7 +482,7 @@ static void __updated_publish_cb(wifi_aware_error_e error, wifi_aware_publish_h
 void test_update_publish()
 {
        int ret = 0;
-       unsigned char service_name[MAX_SERVICE_NAME_LEN + 1] = {0, };
+       char service_name[MAX_SERVICE_NAME_LEN + 1] = {0, };
        size_t len = 0;
 
        RET_IF_LOOP_IS_NULL();
@@ -494,10 +493,9 @@ void test_update_publish()
                return;
        }
 
-       len = strlen(UPDATE_SERVICE_NAME);
-       memcpy(service_name, UPDATE_SERVICE_NAME, len);
+       strncpy(service_name, UPDATE_SERVICE_NAME, MAX_SERVICE_NAME_LEN);
        ret = wifi_aware_publish_set_service_name(g_publish_handle,
-                       service_name, len);
+                       service_name);
        if (ret != WIFI_AWARE_ERROR_NONE)
                return;
 
@@ -529,7 +527,7 @@ static void __set_subscribe_config(wifi_aware_subscribe_config_h config)
 {
        int ret = 0;
        int subscribe_type = 0;
-       unsigned char service_name[MAX_SERVICE_NAME_LEN + 1] = {0, };
+       char service_name[MAX_SERVICE_NAME_LEN + 1] = {0, };
        unsigned char specific_info[MAX_SPECIFIC_INFO_LEN + 1] = {0, };
        unsigned char match_filter[MAX_MATCH_FILTER_LEN + 1] = {0, };
        size_t len = 0;
@@ -546,10 +544,9 @@ static void __set_subscribe_config(wifi_aware_subscribe_config_h config)
        if (ret != WIFI_AWARE_ERROR_NONE)
                return;
 
-       len = strlen(SERVICE_NAME);
-       memcpy(service_name, SERVICE_NAME, len);
+       strncpy(service_name, SERVICE_NAME, MAX_SERVICE_NAME_LEN);
        ret = wifi_aware_subscribe_config_set_service_name(config,
-                       service_name, len);
+                       service_name);
        if (ret != WIFI_AWARE_ERROR_NONE)
                return;