Add the logic to prevent twice allocation 62/276662/1
authorWootak Jung <wootak.jung@samsung.com>
Thu, 31 Mar 2022 01:55:52 +0000 (10:55 +0900)
committerhyunuk.tak <hyunuk.tak@samsung.com>
Thu, 23 Jun 2022 02:20:21 +0000 (11:20 +0900)
modify unit test

Change-Id: I740299e058c0488fe869ecd182b53c349326d1f0
Signed-off-by: hyunuk.tak <hyunuk.tak@samsung.com>
src/thread-srp.c
tests/unittest/thread-unittest-srp.cpp

index 33f7253e24cf4a52a10763e9a9e735bcc69e0ef9..c8da03de8df8270fbd721e86d1aac16eca211470 100644 (file)
@@ -236,6 +236,7 @@ int thread_srp_server_get_registered_service(thread_instance_h instance,
        char buffer[THREAD_MAX_BUFFER_SIZE];
        char *ptr, *last;
        char service_name_buf[THREAD_MAX_BUFFER_SIZE] = "";
+       char address_buf[THREAD_IPV6_ADDRESS_LEN] = "";
 
        /* SRP server service */
        const char *msg = THREAD_SRP_SERVER_SERVICE_CMD;
@@ -281,7 +282,10 @@ int thread_srp_server_get_registered_service(thread_instance_h instance,
                        strncpy(port_buf, &ptr[10], strlen(ptr) - 11);
                        *port = atoi(port_buf);
                } else if (strncmp(ptr, "    addresses: [", 16) == 0) {
-                       char address_buf[THREAD_IPV6_ADDRESS_LEN] = "";
+                       if (strlen(address_buf) > 0) {
+                               THREAD_DBG("already got the address");
+                               break;
+                       }
                        strncpy(address_buf, &ptr[16], strlen(ptr) - 18);
                        *address = g_strdup(address_buf);
                } else if (strncmp(ptr, "Done", 4) == 0) {
index 618f90d68df8c23029ff1bade35efb12cfb4b233..991ccc590aabf85fb7985352d5c39bae63160e78 100644 (file)
@@ -193,8 +193,7 @@ TEST_F(ThreadSrpTest, ServerGetRegisteredServiceInvalidParameter)
 TEST_F(ThreadSrpTest, ServerGetRegisteredServiceErrorNone)
 {
        EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));
-       // TODO
-       EXPECT_EQ(THREAD_ERROR_NOT_SUPPORTED,
+       EXPECT_EQ(THREAD_ERROR_NONE,
                thread_srp_server_get_registered_service(instance,
                &serviceName, &address, &port, &isDeleted));
-}
\ No newline at end of file
+}