MT#62911 permissions: don't allow reloads in the middle of a reload

Change-Id: I22f985ae11a97395386343af82c6562cefc300f2
(cherry picked from commit 998899afe1)
(cherry picked from commit d06b2f014a)
mr12.5.1
Victor Seva 7 months ago
parent 8b8f728328
commit 51160d9369

@ -60,7 +60,7 @@ sipwise/pua-get_record_puadb-add-pres_uri-to-the-query.patch
sipwise/pua_dialoginfo-use_uuid.patch
sipwise/usrloc-don-t-synchronize-on-destroy-for-DB_ONLY.patch
### active development
#
sipwise/permissions-don-t-allow-reloads-in-the-middle-of-ong.patch
### Don't just put stuff in any order
### use gbp pq import/export tooling to help maintain patches
###

@ -0,0 +1,52 @@
From: Victor Seva <vseva@sipwise.com>
Date: Tue, 27 May 2025 10:52:57 +0200
Subject: permissions: don't allow reloads in the middle of ongoind reload
---
src/modules/permissions/rpc.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/modules/permissions/rpc.c b/src/modules/permissions/rpc.c
index 6519c63..ae78aa4 100644
--- a/src/modules/permissions/rpc.c
+++ b/src/modules/permissions/rpc.c
@@ -45,7 +45,8 @@ int rpc_check_reload(rpc_t *rpc, void *ctx)
rpc->fault(ctx, 500, "ongoing reload");
return -1;
}
- *perm_rpc_reload_time = time(NULL);
+ // we are reloading
+ *perm_rpc_reload_time = time(NULL) + 86400;
return 0;
}
@@ -61,10 +62,13 @@ void rpc_trusted_reload(rpc_t *rpc, void *c)
if(reload_trusted_table_cmd() != 1) {
rpc->fault(c, 500, "Reload failed.");
- return;
+ goto done;
}
rpc->rpl_printf(c, "Reload OK");
+done:
+ // reloading is done
+ *perm_rpc_reload_time = time(NULL);
return;
}
@@ -101,10 +105,13 @@ void rpc_address_reload(rpc_t *rpc, void *c)
if(reload_address_table_cmd() != 1) {
rpc->fault(c, 500, "Reload failed.");
- return;
+ goto done;
}
rpc->rpl_printf(c, "Reload OK");
+done:
+ // reloading is done
+ *perm_rpc_reload_time = time(NULL);
return;
}
Loading…
Cancel
Save