From d315ed4ecdd69f889fc38897bdc5887b288745be Mon Sep 17 00:00:00 2001 From: Jaeyun Date: Wed, 6 Jul 2022 14:26:19 +0900 Subject: [PATCH] [Edge] unnecessary param and error case Remove unnecessary param in edge APIs and fix error case. Signed-off-by: Jaeyun --- include/nnstreamer-edge.h | 4 +-- .../nnstreamer-edge-internal.c | 25 ++++++++++++++----- tests/unittest_nnstreamer-edge.cc | 17 ++++++++----- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/include/nnstreamer-edge.h b/include/nnstreamer-edge.h index 5c4fd9c..dda1ad2 100644 --- a/include/nnstreamer-edge.h +++ b/include/nnstreamer-edge.h @@ -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. diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.c b/src/libnnstreamer-edge/nnstreamer-edge-internal.c index d51712c..72b3705 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.c @@ -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; diff --git a/tests/unittest_nnstreamer-edge.cc b/tests/unittest_nnstreamer-edge.cc index 86e79f3..06e85f0 100644 --- a/tests/unittest_nnstreamer-edge.cc +++ b/tests/unittest_nnstreamer-edge.cc @@ -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; ne_event_cb_test_s *event_data = (ne_event_cb_test_s *) user_data; + if (!event_data) { + /* Cannot update event status. */ + return NNS_EDGE_ERROR_NONE; + } + nns_edge_event_get_type (event_h, &event); switch (event) { @@ -420,7 +425,7 @@ TEST(edge, requestInvalidParam01_n) { ret = nns_edge_data_create (&data_h); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_request (NULL, data_h, NULL); + ret = nns_edge_request (NULL, data_h); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); ret = nns_edge_data_destroy (data_h); @@ -445,7 +450,7 @@ TEST(edge, requestInvalidParam02_n) { eh = (nns_edge_handle_s *) edge_h; eh->magic = NNS_EDGE_MAGIC_DEAD; - ret = nns_edge_request (edge_h, data_h, NULL); + ret = nns_edge_request (edge_h, data_h); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); eh->magic = NNS_EDGE_MAGIC; @@ -467,7 +472,7 @@ TEST(edge, requestInvalidParam03_n) { ret = nns_edge_create_handle ("temp-id", "temp-topic", &edge_h); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_request (edge_h, NULL, NULL); + ret = nns_edge_request (edge_h, NULL); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); ret = nns_edge_release_handle (edge_h); @@ -579,7 +584,7 @@ TEST(edge, subscribeInvalidParam01_n) { ret = nns_edge_data_create (&data_h); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_subscribe (NULL, data_h, NULL); + ret = nns_edge_subscribe (NULL, data_h); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); ret = nns_edge_data_destroy (data_h); @@ -604,7 +609,7 @@ TEST(edge, subscribeInvalidParam02_n) { eh = (nns_edge_handle_s *) edge_h; eh->magic = NNS_EDGE_MAGIC_DEAD; - ret = nns_edge_subscribe (edge_h, data_h, NULL); + ret = nns_edge_subscribe (edge_h, data_h); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); eh->magic = NNS_EDGE_MAGIC; @@ -626,7 +631,7 @@ TEST(edge, subscribeInvalidParam03_n) { ret = nns_edge_create_handle ("temp-id", "temp-topic", &edge_h); EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE); - ret = nns_edge_subscribe (edge_h, NULL, NULL); + ret = nns_edge_subscribe (edge_h, NULL); EXPECT_NE (ret, NNS_EDGE_ERROR_NONE); ret = nns_edge_release_handle (edge_h); -- 2.34.1