Module: kamailio
Branch: master
Commit: e2ab3174fb8f013e0a536c0cd5b049f3e2015eec
URL: 
https://github.com/kamailio/kamailio/commit/e2ab3174fb8f013e0a536c0cd5b049f3e2015eec

Author: Muhammad Shafi <muhammad.sh...@1und1.de>
Committer: Henning Westerholt <h...@gilawa.com>
Date: 2025-05-27T15:56:13+02:00

pdb: add new RPC command to view/change PDB query timeout

---

Modified: src/modules/pdb/pdb.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/e2ab3174fb8f013e0a536c0cd5b049f3e2015eec.diff
Patch: 
https://github.com/kamailio/kamailio/commit/e2ab3174fb8f013e0a536c0cd5b049f3e2015eec.patch

---

diff --git a/src/modules/pdb/pdb.c b/src/modules/pdb/pdb.c
index 492fa99ec09..77806e49df6 100644
--- a/src/modules/pdb/pdb.c
+++ b/src/modules/pdb/pdb.c
@@ -27,6 +27,8 @@
 
 
 #include "../../core/sr_module.h"
+#include "../../core/cfg/cfg.h"
+#include "../../core/cfg/cfg_ctx.h"
 #include "../../core/mem/mem.h"
 #include "../../core/mem/shm_mem.h"
 #include "../../core/rpc_lookup.h"
@@ -806,6 +808,36 @@ static void pdb_rpc_status(rpc_t *rpc, void *ctx)
                        (*active) ? "active" : "inactive");
 }
 
+static void pdb_rpc_timeout(rpc_t *rpc, void *ctx)
+{
+       void *vh;
+       int new_val = -1;
+       int old_val = cfg_get(pdb, pdb_cfg, timeout);
+
+       str gname = str_init("pdb");
+       str vname = str_init("timeout");
+
+       if(rpc->add(ctx, "{", &vh) < 0) {
+               rpc->fault(ctx, 500, "Server error");
+               return;
+       }
+
+       if(rpc->scan(ctx, "*d", &new_val) < 1) {
+               if(rpc->struct_add(vh, "d", "timeout", old_val) < 0) {
+                       rpc->fault(ctx, 500, "Internal error reply structure");
+               }
+               return;
+       }
+
+       if(rpc->struct_add(vh, "dd", "old_timeout", old_val, "new_timeout", 
new_val)
+                       < 0) {
+               rpc->fault(ctx, 500, "Internal error reply structure");
+               return;
+       }
+
+       cfg_set_now_int(ctx, &gname, NULL, &vname, new_val);
+}
+
 static void pdb_rpc_activate(rpc_t *rpc, void *ctx)
 {
        if(active == NULL) {
@@ -826,11 +858,14 @@ static void pdb_rpc_deactivate(rpc_t *rpc, void *ctx)
 
 static const char *pdb_rpc_status_doc[2] = {"Get the pdb status.", 0};
 
+static const char *pdb_rpc_timeout_doc[2] = {"Set the pdb_query timeout.", 0};
+
 static const char *pdb_rpc_activate_doc[2] = {"Activate pdb.", 0};
 
 static const char *pdb_rpc_deactivate_doc[2] = {"Deactivate pdb.", 0};
 
 rpc_export_t pdb_rpc[] = {{"pdb.status", pdb_rpc_status, pdb_rpc_status_doc, 
0},
+               {"pdb.timeout", pdb_rpc_timeout, pdb_rpc_timeout_doc, 0},
                {"pdb.activate", pdb_rpc_activate, pdb_rpc_activate_doc, 0},
                {"pdb.deactivate", pdb_rpc_deactivate, pdb_rpc_deactivate_doc, 
0},
                {0, 0, 0, 0}};

_______________________________________________
Kamailio - Development Mailing List -- sr-dev@lists.kamailio.org
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the 
sender!

Reply via email to