From dab00faf5e37b1647f1ead007612c3d4e7f68d62 Mon Sep 17 00:00:00 2001 From: Donat Zenichev Date: Mon, 16 Mar 2026 16:03:19 +0100 Subject: [PATCH] MT#63868 permissions: while reloading consider if cache is disabled Do not reload trusted table sources in hash buckets, when the db cache mode is disabled. This prevents sudden attempt to actually initialize hash buckets, when the mode is 0. Change-Id: I3e911905f1d73b94883d1f5550b6638b43b47b9f (cherry picked from commit 8edd837fd221f000cc3e6704b647fa66cc40d1b8) --- debian/patches/series | 1 + ...ons_consider_db_mode_when_rpc_reload.patch | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 debian/patches/sipwise/permissions_consider_db_mode_when_rpc_reload.patch diff --git a/debian/patches/series b/debian/patches/series index c64a8189b..ad70ff43d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -47,6 +47,7 @@ sipwise/permissions-don-t-allow-reloads-in-the-middle-of-ong.patch sipwise/dlg_get_var_error_more_verbose_on_dlg sipwise/db_redis_protect_length_overflow.patch sipwise/db_redis_support_null_key_values.patch +sipwise/permissions_consider_db_mode_when_rpc_reload.patch ### Don't just put stuff in any order ### use gbp pq import/export tooling to help maintain patches diff --git a/debian/patches/sipwise/permissions_consider_db_mode_when_rpc_reload.patch b/debian/patches/sipwise/permissions_consider_db_mode_when_rpc_reload.patch new file mode 100644 index 000000000..ee3fb948d --- /dev/null +++ b/debian/patches/sipwise/permissions_consider_db_mode_when_rpc_reload.patch @@ -0,0 +1,26 @@ +--- a/src/modules/permissions/rpc.c ++++ b/src/modules/permissions/rpc.c +@@ -60,12 +60,19 @@ void rpc_trusted_reload(rpc_t *rpc, void + return; + } + +- if(reload_trusted_table_cmd() != 1) { +- rpc->fault(c, 500, "Reload failed."); +- goto done; ++ // only reload the hash buckets then, when the cache is activated (db_mode = 1) ++ if(perm_db_mode == ENABLE_CACHE) { ++ if(reload_trusted_table_cmd() != 1) { ++ rpc->fault(c, 500, "Reload failed."); ++ goto done; ++ } ++ rpc->rpl_printf(c, "Reload OK"); ++ } else { ++ LM_DBG("Skip trusted sources reload in hash buckets, caching is " ++ "disabled.\n"); ++ rpc->fault(c, 500, "Reload skipped (disabled cache)"); + } + +- rpc->rpl_printf(c, "Reload OK"); + done: + // reloading is done + *perm_rpc_reload_time = time(NULL);