Module: kamailio
Branch: master
Commit: a7ade4f3c6c2439ebc286c0c595c92b88550dbc3
URL:
https://github.com/kamailio/kamailio/commit/a7ade4f3c6c2439ebc286c0c595c92b…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2022-04-08T13:25:31+02:00
dispatcher: rpc command to add a record updated to get priority
---
Modified: src/modules/dispatcher/dispatch.c
Modified: src/modules/dispatcher/dispatch.h
Modified: src/modules/dispatcher/dispatcher.c
---
Diff:
https://github.com/kamailio/kamailio/commit/a7ade4f3c6c2439ebc286c0c595c92b…
Patch:
https://github.com/kamailio/kamailio/commit/a7ade4f3c6c2439ebc286c0c595c92b…
---
diff --git a/src/modules/dispatcher/dispatch.c b/src/modules/dispatcher/dispatch.c
index b82bc89b90..0f6a6b178f 100644
--- a/src/modules/dispatcher/dispatch.c
+++ b/src/modules/dispatcher/dispatch.c
@@ -2611,12 +2611,11 @@ void ds_add_dest_cb(ds_set_t *node, int i, void *arg)
}
/* add dispatcher entry to in-memory dispatcher list */
-int ds_add_dst(int group, str *address, int flags, str *attrs)
+int ds_add_dst(int group, str *address, int flags, int priority, str *attrs)
{
- int setn, priority;
+ int setn;
setn = _ds_list_nr;
- priority = 0;
*ds_next_idx = (*ds_crt_idx + 1) % 2;
ds_avl_destroy(&ds_lists[*ds_next_idx]);
diff --git a/src/modules/dispatcher/dispatch.h b/src/modules/dispatcher/dispatch.h
index fec204bfff..3eaa9894dd 100644
--- a/src/modules/dispatcher/dispatch.h
+++ b/src/modules/dispatcher/dispatch.h
@@ -145,7 +145,7 @@ int ds_select_dst_limit(sip_msg_t *msg, int set, int alg, uint32_t
limit,
int mode);
int ds_select_dst(struct sip_msg *msg, int set, int alg, int mode);
int ds_update_dst(struct sip_msg *msg, int upos, int mode);
-int ds_add_dst(int group, str *address, int flags, str *attrs);
+int ds_add_dst(int group, str *address, int flags, int priority, str *attrs);
int ds_remove_dst(int group, str *address);
int ds_update_state(sip_msg_t *msg, int group, str *address, int state,
ds_rctx_t *rctx);
diff --git a/src/modules/dispatcher/dispatcher.c b/src/modules/dispatcher/dispatcher.c
index e877e3bf6c..ccf579fba8 100644
--- a/src/modules/dispatcher/dispatcher.c
+++ b/src/modules/dispatcher/dispatcher.c
@@ -1907,7 +1907,7 @@ static const char *dispatcher_rpc_add_doc[2] = {
*/
static void dispatcher_rpc_add(rpc_t *rpc, void *ctx)
{
- int group, flags, nparams;
+ int group, flags, priority, nparams;
str dest;
str attrs = STR_NULL;
@@ -1924,17 +1924,18 @@ static void dispatcher_rpc_add(rpc_t *rpc, void *ctx)
*ds_rpc_reload_time = time(NULL);
flags = 0;
+ priority = 0;
- nparams = rpc->scan(ctx, "dS*dS", &group, &dest, &flags,
&attrs);
+ nparams = rpc->scan(ctx, "dS*ddS", &group, &dest, &flags,
&priority, &attrs);
if(nparams < 2) {
rpc->fault(ctx, 500, "Invalid Parameters");
return;
- } else if (nparams <= 3) {
+ } else if (nparams <= 4) {
attrs.s = 0;
attrs.len = 0;
}
- if(ds_add_dst(group, &dest, flags, &attrs) != 0) {
+ if(ds_add_dst(group, &dest, flags, priority, &attrs) != 0) {
rpc->fault(ctx, 500, "Adding dispatcher dst failed");
return;
}