Module: kamailio Branch: master Commit: fef59a8216e70a0eef47ce9c2eb9da32a16cd764 URL: https://github.com/kamailio/kamailio/commit/fef59a8216e70a0eef47ce9c2eb9da32...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2023-09-05T12:31:32+02:00
dispatcher: $dsg(key) - count active/inactive targets in the group
---
Modified: src/modules/dispatcher/dispatcher.c
---
Diff: https://github.com/kamailio/kamailio/commit/fef59a8216e70a0eef47ce9c2eb9da32... Patch: https://github.com/kamailio/kamailio/commit/fef59a8216e70a0eef47ce9c2eb9da32...
---
diff --git a/src/modules/dispatcher/dispatcher.c b/src/modules/dispatcher/dispatcher.c index 0264a37bc7e..e9676b0aae7 100644 --- a/src/modules/dispatcher/dispatcher.c +++ b/src/modules/dispatcher/dispatcher.c @@ -1395,6 +1395,7 @@ static int pv_get_dsg(sip_msg_t *msg, pv_param_t *param, pv_value_t *res) int count = 0; int active = 0; int inactive = 0; + int j = 0;
if(param == NULL) { return -1; @@ -1405,6 +1406,17 @@ static int pv_get_dsg(sip_msg_t *msg, pv_param_t *param, pv_value_t *res) return pv_get_null(msg, param, res); }
+ lock_get(&dsg->lock); + count = dsg->nr; + for(j = 0; j < dsg->nr; j++) { + if(ds_skip_dst(dsg->dlist[j].flags)) { + inactive++; + } else { + active++; + } + } + lock_release(&dsg->lock); + switch(param->pvn.u.isname.name.n) { case 0: /* count */ return pv_get_sintval(msg, param, res, count);