Fixed build error due to unsupported feature. 15/202915/3 accepted/tizen/unified/20190410.002149 submit/tizen/20190408.032146 submit/tizen/20190408.231037
authorsaerome kim <saerome.kim@samsung.com>
Mon, 8 Apr 2019 01:04:40 +0000 (10:04 +0900)
committersaerome kim <saerome.kim@samsung.com>
Mon, 8 Apr 2019 01:46:12 +0000 (10:46 +0900)
- MCD does not support MULTIPLE_OWNER in iotivity project.
  Therefore, mdg-manager can discern whether iotivity support
  MULTIPLE_OWNER or not.

- Added missing 'CMAKE_CXXFLAGS'.
- Fixed intent issues.

Change-Id: If73ec3a1254a12b76fe44803fceae40c5c23249b
Signed-off-by: saerome kim <saerome.kim@samsung.com>
CMakeLists.txt
packaging/mdg-manager.spec
src/mdg-manager/src/mdgd_iot.cpp
src/mdg-manager/src/mdgd_iot_client.cpp
src/mdg-manager/src/mdgd_iot_server.cpp

index 39827d9b6a7549be14c91c181cf8666d9b7208c8..1f7985690477446fe1c666a5ea30cd8d5d7f0832 100644 (file)
@@ -47,12 +47,16 @@ IF(BUILD_GCOV)
 ENDIF(BUILD_GCOV)
 SET(RELO_FLAGS "-D_FORTIFY_SOURCE=2 -Wl,-z,relro")
 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${RELO_FLAGS} ${GCOV_CFLAGS} ${GTEST_CFLAGS} -Wall -fPIE -fpic -std=gnu99")
-SET(CMAKE_CXX_FLAGS "${EXTRA_CXXFLAGS} ${RELO_FLAGS} ${GCOV_CFLAGS} ${GTEST_CFLAGS} -std=gnu++11 -fPIC -Wall -Werror-implicit-function-declaration -fvisibility=hidden")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXXFLAGS} ${EXTRA_CXXFLAGS} ${RELO_FLAGS} ${GCOV_CFLAGS} ${GTEST_CFLAGS} -std=gnu++11 -fPIC -Wall -Werror-implicit-function-declaration -fvisibility=hidden")
 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie -Wl,--disable-new-dtags")
 
 MESSAGE(" - Define...iotivity macro")
 ADD_DEFINITIONS("-D__TIZEN__")
+IF("${ISSUBOWNER}" STREQUAL "IsSubOwner")
 ADD_DEFINITIONS("-DMULTIPLE_OWNER=1")
+ELSE()
+ADD_DEFINITIONS("-DMULTIPLE_OWNER=0")
+ENDIF()
 ADD_DEFINITIONS("-D__WITH_TLS__")
 ADD_DEFINITIONS("-DWITH_TCP")
 ADD_DEFINITIONS("-D__WITH_DTLS__")
index d876639027d572f580fbd2830b71a86323504737..4bd40e337f90f4c357a69698e134f71e779ffe2d 100644 (file)
@@ -43,10 +43,11 @@ cp %{SOURCE1} .
 cp %{SOURCE2} .
 cp %{SOURCE3} .
 
-
 %build
 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
 
+# Check whether iotivity support MULTIPLE_OWNER feature
+mot_support=`/usr/bin/nm -D -C %{_libdir}/liboctbstack.so | awk '/IsSubOwner/{print $3}'`
 %define NETWORK_FW_DATADIR %{TZ_SYS_GLOBALUSER_DATA}/network
 %define DBDIR %{TZ_SYS_GLOBALUSER_DATA}/
 
@@ -57,6 +58,7 @@ MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
        -DBIN_DIR=%{_bindir} \
        -DSBIN_DIR=%{_sbindir} \
        -DNETWORK_FW_DATADIR=%{NETWORK_FW_DATADIR} \
+       -DISSUBOWNER=${mot_support} \
        -DDBDIR=%{DBDIR} \
 
 %install
index 5fd2f1835120d08491d7178350be4904f1a78d16..0dd2f64f057529b652676ae9bfecb5ac3f93db46 100644 (file)
@@ -284,11 +284,15 @@ int mdgd_iot_find_devices(char *sender, int timeout, bool is_invited)
 
        if (is_invited == false) {
                g_motdev_list.clear();
+#if MULTIPLE_OWNER == 1
                OCSecure::discoverMultipleOwnerEnabledDevices(timeout, g_motdev_list);
+#endif
                devList = g_motdev_list;
        } else {
                g_mowned_list.clear();
+#if MULTIPLE_OWNER == 1
                OCSecure::discoverMultipleOwnedDevices(timeout, g_mowned_list);
+#endif
                devList = g_mowned_list;
        }
 
@@ -317,7 +321,9 @@ int mdgd_iot_find_devices(char *sender, int timeout, bool is_invited)
                if (is_invited == false) {
                        bool check_invited = false;
                        UuidList_t subOwnerList;
+#if MULTIPLE_OWNER == 1
                        devList[i]->getSubOwnerList(subOwnerList);
+#endif
 
                        for (unsigned int j = 0; j < subOwnerList.size(); j++) {
                                char *readable_uuid = mdgd_get_readable_uuid(&subOwnerList[j]);
@@ -439,7 +445,7 @@ static OicUuid_t *_convert_uuid(gchar *device_id)
 
        return uuid;
 }
-
+#if MULTIPLE_ONWER == 1
 static void _mot_cb(PMResultList_t *result, int has_error)
 {
        char *readable_uuid = NULL;
@@ -459,6 +465,7 @@ static void _mot_cb(PMResultList_t *result, int has_error)
 
        g_doneCB = true;
 }
+#endif
 
 int mdgd_iot_pair(char *group_name, char *pin, char *target1, char *subject1, char *uri1,
                  char *rt1, char *interface1, int permission1, char *target2,
@@ -468,7 +475,9 @@ int mdgd_iot_pair(char *group_name, char *pin, char *target1, char *subject1, ch
        int idx2 = -1;
 
        int result = MDGD_ERROR_NONE;
+#if MULTIPLE_ONWER == 1
        OCStackResult ret = OC_STACK_OK;
+#endif
        mdgd_command_t *cmd = NULL;
 
        OicUuid_t *uuid_1 = NULL;
@@ -533,6 +542,7 @@ int mdgd_iot_pair(char *group_name, char *pin, char *target1, char *subject1, ch
        next_dev = src_dev->next;
        src_dev->next = NULL;
 
+#if MULTIPLE_ONWER == 1
        g_doneCB = false;
 
        LOG_DEBUG("MOT Start...");
@@ -562,7 +572,7 @@ int mdgd_iot_pair(char *group_name, char *pin, char *target1, char *subject1, ch
        LOG_DEBUG("MOT Done");
 
        g_doneCB = false;
-
+#endif
        cmd = (mdgd_command_t *)g_try_malloc0(sizeof(mdgd_command_t));
        cmd->resource_type = MDGD_RESOURCE_TYPE_DEVICE;
        cmd->uuid = g_strdup(subject1);
@@ -741,7 +751,9 @@ int mdgd_iot_initialize()
                LOG_ERR("OCInitPM() error = [%d][%s]", ret, get_error_message(ret));
 
        OCProvisionDev_t *motdev_list = NULL;
+#if MULTIPLE_ONWER == 1
        OCDiscoverMultipleOwnerEnabledDevices(1, &motdev_list);
+#endif
        OCProvisionDev_t *iter = NULL;
 
        iter = motdev_list;
index f2d369b44f9c60eb42867513704094e2e341dc56..4965ecce9ac90de1a6cb0f9730289c799374ebad 100644 (file)
@@ -126,8 +126,8 @@ static gpointer __file_send_thread_func(gpointer user_data)
        /* connect */
        if (retval < 0) {
                char buf[128];
-               strerror_r(errno, buf, 128);
-               LOG_ERR("connect() error : %s", buf);
+               char const *str = strerror_r(errno, buf, 128);
+               LOG_ERR("connect() error : %s", str);
                ret = MDGD_ERROR_OPERATION_FAILED;
                goto SEND_THREAD_EXIT;
        }
@@ -135,8 +135,8 @@ static gpointer __file_send_thread_func(gpointer user_data)
        fd = fopen(cmd->arg1, "rb");
        if (fd == NULL) {
                char buf[128];
-               strerror_r(errno, buf, 128);
-               LOG_ERR("fopen() error : %s", buf);
+               char const *str = strerror_r(errno, buf, 128);
+               LOG_ERR("fopen() error : %s", str);
                ret = MDGD_ERROR_OPERATION_FAILED;
                goto SEND_THREAD_EXIT;
        }
@@ -151,9 +151,9 @@ static gpointer __file_send_thread_func(gpointer user_data)
                        prev_percent = cur_percent;
                        retval = write(sock, buf, num_read);
                        if (retval == -1) {
-                               char buf[128];
-                               strerror_r(errno, buf, 128);
-                               LOG_ERR("write() error : %s", buf);
+                               char buf[128];
+                               char const *str = strerror_r(errno, buf, 128);
+                               LOG_ERR("write() error : %s", str);
 
                                ret = MDGD_ERROR_OPERATION_FAILED;
                                goto SEND_THREAD_EXIT;
@@ -171,9 +171,9 @@ static gpointer __file_send_thread_func(gpointer user_data)
                        LOG_DEBUG("file trans complete : %ld bytes\n", num_total);
                        break;
                } else {
-                       char buf[128];
-                       strerror_r(errno, buf, 128);
-                       LOG_ERR("file I/O error : %s", buf);
+                       char buf[128];
+                       char const *str = strerror_r(errno, buf, 128);
+                       LOG_ERR("file I/O error : %s", str);
 
                        ret = MDGD_ERROR_OPERATION_FAILED;
                        goto SEND_THREAD_EXIT;
index 6decf199370eb2e1cb840850a2d4c8680a666b78..91759fbc1fd926d26c6a2787ea20fd3a1849d1ad 100644 (file)
@@ -102,9 +102,9 @@ static gpointer __file_receive_thread_func(gpointer user_data)
 
        fd = open(receive_file->file_path, O_WRONLY | O_CREAT | O_EXCL, 0700);
        if (!fd || errno == EEXIST) {
-                char buf[128];
-                strerror_r(errno, buf, 128);
-                LOG_ERR("file open error : %s", buf);
+               char buf[128];
+               const char *str = strerror_r(errno, buf, 128);
+               LOG_ERR("file open error : %s", str);
 
                goto RECEIVE_THREAD_EXIT;
        }
@@ -118,9 +118,9 @@ static gpointer __file_receive_thread_func(gpointer user_data)
                server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
 
        if (server_sockfd == -1) {
-                char buf[128];
-                strerror_r(errno, buf, 128);
-                LOG_ERR("socket error : %s", buf);
+               char buf[128];
+               const char *str = strerror_r(errno, buf, 128);
+               LOG_ERR("socket error : %s", str);
 
                goto RECEIVE_THREAD_EXIT;
        }
@@ -137,9 +137,9 @@ static gpointer __file_receive_thread_func(gpointer user_data)
                serveraddr_v6.sin6_scope_id = if_nametoindex("wlan0");
 
                if (bind(server_sockfd, (struct sockaddr *)&serveraddr_v6, sizeof(serveraddr_v6)) < 0) {
-                       char buf[128];
-                       strerror_r(errno, buf, 128);
-                       LOG_ERR("bind error : %s", buf);
+                       char buf[128];
+                       const char *str = strerror_r(errno, buf, 128);
+                       LOG_ERR("bind error : %s", str);
 
                        goto RECEIVE_THREAD_EXIT;
                }
@@ -149,18 +149,18 @@ static gpointer __file_receive_thread_func(gpointer user_data)
                serveraddr.sin_port = htons(PORT);
 
                if (bind(server_sockfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr)) < 0) {
-                       char buf[128];
-                       strerror_r(errno, buf, 128);
-                       LOG_ERR("bind error : %s", buf);
+                       char buf[128];
+                       const char *str = strerror_r(errno, buf, 128);
+                       LOG_ERR("bind error : %s", str);
 
                        goto RECEIVE_THREAD_EXIT;
                }
        }
 
        if (listen(server_sockfd, 5) != 0) {
-                char buf[128];
-                strerror_r(errno, buf, 128);
-                LOG_ERR("listen error : %s", buf);
+               char buf[128];
+               const char *str = strerror_r(errno, buf, 128);
+               LOG_ERR("listen error : %s", str);
 
                goto RECEIVE_THREAD_EXIT;
        }
@@ -178,20 +178,25 @@ static gpointer __file_receive_thread_func(gpointer user_data)
        }
 
        if (client_sockfd == -1) {
-                char buf[128];
-                strerror_r(errno, buf, 128);
-                LOG_ERR("socket error : %s", buf);
+               char buf[128];
+               const char *str = strerror_r(errno, buf, 128);
+               LOG_ERR("socket error : %s", str);
 
                goto RECEIVE_THREAD_EXIT;
        }
 
        while (1) {
+               ssize_t len = 0;
                char buf[MAXBUF] = {
                    0,
                };
                file_read_len = read(client_sockfd, buf, MAXBUF);
                if (file_read_len > 0)
-                       write(fd, buf, file_read_len);
+                       len = write(fd, buf, file_read_len);
+
+               if (0 < len) {
+                       LOG_ERR("write error");
+               }
 
                if (file_read_len == EOF || file_read_len == 0) {
                        LOG_DEBUG("Receive file successful");