From 42c7664ec6148cf16cd27a00cf057a731bee914d Mon Sep 17 00:00:00 2001
From: Bogdan Bogush <bogdan.bogush@iopsys.eu>
Date: Mon, 22 Jan 2024 11:05:59 +0000
Subject: [PATCH] Some improvement in rpc_handler_init() and
 rpc_handler_uninit()

Also correct an error in firewall rule event handler for voice.
---
 daemon/json_rpc/event.c |  2 +-
 daemon/json_rpc/main.c  | 13 ++++++++-----
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/daemon/json_rpc/event.c b/daemon/json_rpc/event.c
index 6680e48..09e5677 100644
--- a/daemon/json_rpc/event.c
+++ b/daemon/json_rpc/event.c
@@ -73,7 +73,7 @@ int subs_event_handler(const json_object *jmsg, int param_count, json_object *jr
 			return RETURN_ERR;
 		}
 
-		if (!match(param_request.name, FIREWALL_RULE_DATA_SIP_PATTERN, 0, NULL) ||
+		if (!match(param_request.name, FIREWALL_RULE_DATA_SIP_PATTERN, 0, NULL) &&
 			!match(param_request.name, FIREWALL_RULE_DATA_RTP_PATTERN, 0, NULL)) {
 			ret = RETURN_ERR;
 			WARNING("Unexpected event [%s][%d]", param_request.name, (int)param_request.type);
diff --git a/daemon/json_rpc/main.c b/daemon/json_rpc/main.c
index f454a33..66d755e 100644
--- a/daemon/json_rpc/main.c
+++ b/daemon/json_rpc/main.c
@@ -52,7 +52,6 @@ int rpc_handler_init()
 		ERR("Failed to init HAL server");
 		return -1;
 	}
-	is_json_server_init_done = true;
 
 	if (json_hal_server_register_action_callback("setParameters",
 		bbfdm_set_value) != RETURN_OK) {
@@ -85,6 +84,8 @@ int rpc_handler_init()
 		goto Error;
 	}
 
+	is_json_server_init_done = true;
+
 	return 0;
 
 Error:
@@ -95,11 +96,13 @@ Error:
 
 int rpc_handler_uninit()
 {
-	if (is_json_server_init_done && json_hal_server_terminate() != RETURN_OK) {
-		ERR("Failed to terminate HAL server");
-		return -1;
-	}
+	if (!is_json_server_init_done)
+		return 0;
 	is_json_server_init_done = false;
+
+	if (json_hal_server_terminate() != RETURN_OK)
+		ERR("Failed to terminate HAL server");
+
 	subs_event_uninit();
 
 	return 0;
-- 
GitLab