Module: kamailio
Branch: master
Commit: 513a176394247a3378ee218bf9df611da7296061
URL:
https://github.com/kamailio/kamailio/commit/513a176394247a3378ee218bf9df611…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2018-06-07T13:05:04+02:00
dispatcher: print runtime details in rpc command output
- contains dialog loads per destination if the call load algorithm is enabled
---
Modified: src/modules/dispatcher/dispatcher.c
---
Diff:
https://github.com/kamailio/kamailio/commit/513a176394247a3378ee218bf9df611…
Patch:
https://github.com/kamailio/kamailio/commit/513a176394247a3378ee218bf9df611…
---
diff --git a/src/modules/dispatcher/dispatcher.c b/src/modules/dispatcher/dispatcher.c
index bcb085c624..72aa94d1e2 100644
--- a/src/modules/dispatcher/dispatcher.c
+++ b/src/modules/dispatcher/dispatcher.c
@@ -1282,7 +1282,8 @@ int ds_rpc_print_set(ds_set_t *node, rpc_t *rpc, void *ctx, void
*rpc_handle)
void *sh;
void *vh;
void *wh;
- void *lh; // latency stats handle
+ void *lh;
+ void *dh;
int j;
char c[3];
str data = STR_NULL;
@@ -1327,23 +1328,22 @@ int ds_rpc_print_set(ds_set_t *node, rpc_t *rpc, void *ctx, void
*rpc_handle)
c[1] = 'X';
if(node->dlist[j].attrs.body.s) {
- if(rpc->struct_add(vh, "Ssd{", "URI",
&node->dlist[j].uri, "FLAGS",
- c, "PRIORITY", node->dlist[j].priority, "ATTRS", &wh)
- < 0) {
+ if(rpc->struct_add(vh, "Ssd{", "URI",
&node->dlist[j].uri,
+ "FLAGS", c,
+ "PRIORITY", node->dlist[j].priority,
+ "ATTRS", &wh) < 0) {
rpc->fault(ctx, 500, "Internal error creating dest struct");
return -1;
}
- if(rpc->struct_add(wh, "SSdddS", "BODY",
- &(node->dlist[j].attrs.body), "DUID",
- (node->dlist[j].attrs.duid.s)
- ? &(node->dlist[j].attrs.duid)
- : &data,
- "MAXLOAD", node->dlist[j].attrs.maxload, "WEIGHT",
- node->dlist[j].attrs.weight, "RWEIGHT",
- node->dlist[j].attrs.rweight, "SOCKET",
- (node->dlist[j].attrs.socket.s)
- ? &(node->dlist[j].attrs.socket)
- : &data)
+ if(rpc->struct_add(wh, "SSdddS",
+ "BODY", &(node->dlist[j].attrs.body),
+ "DUID", (node->dlist[j].attrs.duid.s)
+ ? &(node->dlist[j].attrs.duid) : &data,
+ "MAXLOAD", node->dlist[j].attrs.maxload,
+ "WEIGHT", node->dlist[j].attrs.weight,
+ "RWEIGHT", node->dlist[j].attrs.rweight,
+ "SOCKET", (node->dlist[j].attrs.socket.s)
+ ? &(node->dlist[j].attrs.socket) : &data)
< 0) {
rpc->fault(ctx, 500, "Internal error creating attrs struct");
return -1;
@@ -1371,6 +1371,16 @@ int ds_rpc_print_set(ds_set_t *node, rpc_t *rpc, void *ctx, void
*rpc_handle)
return -1;
}
}
+ if (ds_hash_size>0) {
+ if(rpc->struct_add(vh, "{", "RUNTIME", &dh) < 0) {
+ rpc->fault(ctx, 500, "Internal error creating runtime struct");
+ return -1;
+ }
+ if (rpc->struct_add(dh, "d", "DLGLOAD",
node->dlist[j].dload) < 0) {
+ rpc->fault(ctx, 500, "Internal error creating runtime attrs");
+ return -1;
+ }
+ }
}
return 0;