[Edge] unnecessary param and error case
authorJaeyun <jy1210.jung@samsung.com>
Wed, 6 Jul 2022 05:26:19 +0000 (14:26 +0900)
committerjaeyun-jung <39614140+jaeyun-jung@users.noreply.github.com>
Wed, 6 Jul 2022 07:44:08 +0000 (16:44 +0900)
Remove unnecessary param in edge APIs and fix error case.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
include/nnstreamer-edge.h
src/libnnstreamer-edge/nnstreamer-edge-internal.c
tests/unittest_nnstreamer-edge.cc

index 5c4fd9c66d63fd2699c7155ecac7c95fb0058ea9..dda1ad22885c6dba78438578147402e83296883d 100644 (file)
@@ -121,7 +121,7 @@ int nns_edge_publish (nns_edge_h edge_h, nns_edge_data_h data_h);
 /**
  * @brief Request result to the server.
  */
-int nns_edge_request (nns_edge_h edge_h, nns_edge_data_h data_h, void *user_data);
+int nns_edge_request (nns_edge_h edge_h, nns_edge_data_h data_h);
 
 /**
  * @brief Respond to a request.
@@ -131,7 +131,7 @@ int nns_edge_respond (nns_edge_h edge_h, nns_edge_data_h data_h);
 /**
  * @brief Subscribe a message to a given topic.
  */
-int nns_edge_subscribe (nns_edge_h edge_h, nns_edge_data_h data_h, void *user_data);
+int nns_edge_subscribe (nns_edge_h edge_h, nns_edge_data_h data_h);
 
 /**
  * @brief Unsubscribe a message to a given topic.
index d51712ced3796d433e4bd11c8a927b535677152b..72b3705ef30fb5a46a0c63e7044f1b51223a5bc9 100644 (file)
@@ -267,8 +267,10 @@ _nns_edge_cmd_send (nns_edge_conn_s * conn, nns_edge_cmd_s * cmd)
 {
   unsigned int n;
 
-  if (!conn || !cmd)
+  if (!conn) {
+    nns_edge_loge ("Failed to send command, edge connection is null.");
     return NNS_EDGE_ERROR_INVALID_PARAMETER;
+  }
 
   if (!_nns_edge_cmd_is_valid (cmd)) {
     nns_edge_loge ("Failed to send command, invalid command.");
@@ -406,6 +408,12 @@ _nns_edge_close_connection (nns_edge_conn_s * conn)
   }
 
   if (conn->socket) {
+    nns_edge_cmd_s cmd;
+
+    /* Send error before closing the socket. */
+    _nns_edge_cmd_init (&cmd, _NNS_EDGE_CMD_ERROR, 0);
+    _nns_edge_cmd_send (conn, &cmd);
+
     if (!g_socket_close (conn->socket, &err)) {
       nns_edge_loge ("Failed to close socket: %s", err->message);
       g_clear_error (&err);
@@ -726,7 +734,7 @@ _nns_edge_message_handler (void *thread_data)
       break;
 
     /** Receive data from the client */
-    _nns_edge_cmd_init (&cmd, _NNS_EDGE_CMD_ERROR, eh->client_id);
+    _nns_edge_cmd_init (&cmd, _NNS_EDGE_CMD_ERROR, client_id);
     ret = _nns_edge_cmd_receive (conn, &cmd);
     if (ret != NNS_EDGE_ERROR_NONE) {
       nns_edge_loge ("Failed to receive data from the connected node.");
@@ -866,6 +874,11 @@ _nns_edge_accept_socket_async_cb (GObject * source, GAsyncResult * result,
   /* Send capability and info to check compatibility. */
   client_id = eh->is_server ? g_get_monotonic_time () : eh->client_id;
 
+  if (!eh->caps_str || *eh->caps_str == '\0') {
+    nns_edge_loge ("Cannot accept socket, invalid capability.");
+    goto error;
+  }
+
   _nns_edge_cmd_init (&cmd, _NNS_EDGE_CMD_CAPABILITY, client_id);
   cmd.info.num = 1;
   cmd.info.mem_size[0] = strlen (eh->caps_str) + 1;
@@ -1232,7 +1245,7 @@ nns_edge_publish (nns_edge_h edge_h, nns_edge_data_h data_h)
  * @brief Request result to the server.
  */
 int
-nns_edge_request (nns_edge_h edge_h, nns_edge_data_h data_h, void *user_data)
+nns_edge_request (nns_edge_h edge_h, nns_edge_data_h data_h)
 {
   nns_edge_handle_s *eh;
   nns_edge_conn_data_s *conn_data;
@@ -1240,7 +1253,6 @@ nns_edge_request (nns_edge_h edge_h, nns_edge_data_h data_h, void *user_data)
   int ret;
   unsigned int i;
 
-  UNUSED (user_data);
   eh = (nns_edge_handle_s *) edge_h;
   if (!eh) {
     nns_edge_loge ("Invalid param, given edge handle is null.");
@@ -1284,11 +1296,10 @@ nns_edge_request (nns_edge_h edge_h, nns_edge_data_h data_h, void *user_data)
  * @brief Subscribe a message to a given topic.
  */
 int
-nns_edge_subscribe (nns_edge_h edge_h, nns_edge_data_h data_h, void *user_data)
+nns_edge_subscribe (nns_edge_h edge_h, nns_edge_data_h data_h)
 {
   nns_edge_handle_s *eh;
 
-  UNUSED (user_data);
   eh = (nns_edge_handle_s *) edge_h;
   if (!eh) {
     nns_edge_loge ("Invalid param, given edge handle is null.");
@@ -1491,6 +1502,8 @@ nns_edge_respond (nns_edge_h edge_h, nns_edge_data_h data_h)
   }
 
   ret = _nns_edge_cmd_send (conn_data->sink_conn, &cmd);
+  if (ret != NNS_EDGE_ERROR_NONE)
+    nns_edge_loge ("Failed to respond, cannot send edge data.");
 
   nns_edge_unlock (eh);
   return ret;
index 86e79f30ae3bfac0dfcb22f2a4a6c81b9689c8b3..06e85f0e745a297a067dfddba55d6ac7971948cd 100644 (file)
@@ -29,6 +29,11 @@ _test_edge_event_cb (nns_edge_event_h event_h, void *user_data)
   nns_edge_event_e event = NNS_EDGE_EVENT_UNKNOWN;\r
   ne_event_cb_test_s *event_data = (ne_event_cb_test_s *) user_data;\r
 \r
+  if (!event_data) {\r
+    /* Cannot update event status. */\r
+    return NNS_EDGE_ERROR_NONE;\r
+  }\r
+\r
   nns_edge_event_get_type (event_h, &event);\r
 \r
   switch (event) {\r
@@ -420,7 +425,7 @@ TEST(edge, requestInvalidParam01_n) {
   ret = nns_edge_data_create (&data_h);\r
   EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
 \r
-  ret = nns_edge_request (NULL, data_h, NULL);\r
+  ret = nns_edge_request (NULL, data_h);\r
   EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
 \r
   ret = nns_edge_data_destroy (data_h);\r
@@ -445,7 +450,7 @@ TEST(edge, requestInvalidParam02_n) {
   eh = (nns_edge_handle_s *) edge_h;\r
   eh->magic = NNS_EDGE_MAGIC_DEAD;\r
 \r
-  ret = nns_edge_request (edge_h, data_h, NULL);\r
+  ret = nns_edge_request (edge_h, data_h);\r
   EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
 \r
   eh->magic = NNS_EDGE_MAGIC;\r
@@ -467,7 +472,7 @@ TEST(edge, requestInvalidParam03_n) {
   ret = nns_edge_create_handle ("temp-id", "temp-topic", &edge_h);\r
   EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
 \r
-  ret = nns_edge_request (edge_h, NULL, NULL);\r
+  ret = nns_edge_request (edge_h, NULL);\r
   EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
 \r
   ret = nns_edge_release_handle (edge_h);\r
@@ -579,7 +584,7 @@ TEST(edge, subscribeInvalidParam01_n) {
   ret = nns_edge_data_create (&data_h);\r
   EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
 \r
-  ret = nns_edge_subscribe (NULL, data_h, NULL);\r
+  ret = nns_edge_subscribe (NULL, data_h);\r
   EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
 \r
   ret = nns_edge_data_destroy (data_h);\r
@@ -604,7 +609,7 @@ TEST(edge, subscribeInvalidParam02_n) {
   eh = (nns_edge_handle_s *) edge_h;\r
   eh->magic = NNS_EDGE_MAGIC_DEAD;\r
 \r
-  ret = nns_edge_subscribe (edge_h, data_h, NULL);\r
+  ret = nns_edge_subscribe (edge_h, data_h);\r
   EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
 \r
   eh->magic = NNS_EDGE_MAGIC;\r
@@ -626,7 +631,7 @@ TEST(edge, subscribeInvalidParam03_n) {
   ret = nns_edge_create_handle ("temp-id", "temp-topic", &edge_h);\r
   EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);\r
 \r
-  ret = nns_edge_subscribe (edge_h, NULL, NULL);\r
+  ret = nns_edge_subscribe (edge_h, NULL);\r
   EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);\r
 \r
   ret = nns_edge_release_handle (edge_h);\r