From 9185ad6809fff4eec1a132788dd0437a4434bd7f Mon Sep 17 00:00:00 2001 From: Jaeyun Date: Thu, 11 Aug 2022 16:13:48 +0900 Subject: [PATCH] [Util] parse port number Add util function to parse string and get port number. Signed-off-by: Jaeyun --- .../nnstreamer-edge-common.c | 21 +++++++++++++++++++ .../nnstreamer-edge-common.h | 5 +++++ .../nnstreamer-edge-internal.c | 10 ++++----- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/libnnstreamer-edge/nnstreamer-edge-common.c b/src/libnnstreamer-edge/nnstreamer-edge-common.c index 9880f29..3946402 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-common.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-common.c @@ -71,6 +71,27 @@ nns_edge_parse_host_string (const char *host_str, char **host, int *port) } } +/** + * @brief Parse string and get port number. Return negative value when failed to get port number. + */ +int +nns_edge_parse_port_number (const char *port_str) +{ + int port; + + if (!port_str) + return -1; + + port = (int) strtoll (port_str, NULL, 10); + + if (port <= 0 || port > 65535) { + nns_edge_loge ("Invalid port number %d.", port); + port = -1; + } + + return port; +} + /** * @brief Free allocated memory. */ diff --git a/src/libnnstreamer-edge/nnstreamer-edge-common.h b/src/libnnstreamer-edge/nnstreamer-edge-common.h index 4d9aa3e..32c1c70 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-common.h +++ b/src/libnnstreamer-edge/nnstreamer-edge-common.h @@ -178,6 +178,11 @@ char *nns_edge_get_host_string (const char *host, const int port); */ void nns_edge_parse_host_string (const char *host_str, char **host, int *port); +/** + * @brief Parse string and get port number. Return negative value when failed to get port number. + */ +int nns_edge_parse_port_number (const char *port_str); + /** * @brief Free allocated memory. */ diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.c b/src/libnnstreamer-edge/nnstreamer-edge-internal.c index 628233f..08322b2 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.c @@ -1520,10 +1520,9 @@ nns_edge_set_info (nns_edge_h edge_h, const char *key, const char *value) SAFE_FREE (eh->host); eh->host = nns_edge_strdup (value); } else if (0 == strcasecmp (key, "PORT")) { - int port = (int) strtoll (value, NULL, 10); + int port = nns_edge_parse_port_number (value); - if (port <= 0 || port > 65535) { - nns_edge_loge ("Invalid port number %d.", port); + if (port < 0) { ret = NNS_EDGE_ERROR_INVALID_PARAMETER; } else { eh->port = port; @@ -1533,10 +1532,9 @@ nns_edge_set_info (nns_edge_h edge_h, const char *key, const char *value) SAFE_FREE (eh->dest_host); eh->dest_host = nns_edge_strdup (value); } else if (0 == strcasecmp (key, "DEST_PORT")) { - int port = (int) strtoll (value, NULL, 10); + int port = nns_edge_parse_port_number (value); - if (port <= 0 || port > 65535) { - nns_edge_loge ("Invalid port number %d.", port); + if (port < 0) { ret = NNS_EDGE_ERROR_INVALID_PARAMETER; } else { eh->dest_port = port; -- 2.34.1