Module: kamailio
Branch: master
Commit: 98056258b7ebdc65c8147d9d057bc350a38e55f8
URL:
https://github.com/kamailio/kamailio/commit/98056258b7ebdc65c8147d9d057bc35…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: GitHub <noreply(a)github.com>
Date: 2019-02-01T19:25:34+01:00
Merge pull request #1830 from gaaf/rr-lr-retval
rr: Add new return value for preloaded route set to loose_route()
---
Modified: src/modules/rr/doc/rr_admin.xml
Modified: src/modules/rr/loose.c
---
Diff:
https://github.com/kamailio/kamailio/commit/98056258b7ebdc65c8147d9d057bc35…
Patch:
https://github.com/kamailio/kamailio/commit/98056258b7ebdc65c8147d9d057bc35…
---
diff --git a/src/modules/rr/doc/rr_admin.xml b/src/modules/rr/doc/rr_admin.xml
index 7dd1868e2a..74e59abe82 100644
--- a/src/modules/rr/doc/rr_admin.xml
+++ b/src/modules/rr/doc/rr_admin.xml
@@ -364,7 +364,7 @@ modparam("rr", "ignore_sips", 1)
<listitem>
<para><emphasis>2</emphasis> - route calculation based on
- flow-token has been successful</para>
+ flow-token has been successful</para>
</listitem>
<listitem>
@@ -376,6 +376,11 @@ modparam("rr", "ignore_sips", 1)
<para><emphasis>-2</emphasis> - outbound flow-token shows
evidence
of tampering</para>
</listitem>
+
+ <listitem>
+ <para><emphasis>-3</emphasis> - next hop is taken from
+ a preloaded route set</para>
+ </listitem>
</itemizedlist>
<para>This function can be used from REQUEST_ROUTE.</para>
diff --git a/src/modules/rr/loose.c b/src/modules/rr/loose.c
index 6e9e888a2b..efe428a1cd 100644
--- a/src/modules/rr/loose.c
+++ b/src/modules/rr/loose.c
@@ -48,6 +48,7 @@
#define RR_OB_DRIVEN 2 /*!< The next hop is determined from the route set based on
flow-token */
#define NOT_RR_DRIVEN -1 /*!< The next hop is not determined from the route set */
#define FLOW_TOKEN_BROKEN -2 /*!< Outbound flow-token shows evidence of tampering */
+#define RR_PRELOADED -3 /*!< The next hop is determined from a preloaded route set
*/
#define RR_ROUTE_PREFIX ROUTE_PREFIX "<"
#define RR_ROUTE_PREFIX_LEN (sizeof(RR_ROUTE_PREFIX)-1)
@@ -840,7 +841,7 @@ static inline int after_loose(struct sip_msg* _m, int preloaded)
}
if (res > 0) { /* No next route found */
LM_DBG("No next URI found\n");
- status = (preloaded ? NOT_RR_DRIVEN : RR_DRIVEN);
+ status = (preloaded ? RR_PRELOADED : RR_DRIVEN);
goto done;
}
rt = (rr_t*)hdr->parsed;
@@ -873,7 +874,7 @@ static inline int after_loose(struct sip_msg* _m, int preloaded)
}
if (res > 0) { /* No next route found */
LM_DBG("no next URI found\n");
- status = (preloaded ? NOT_RR_DRIVEN : RR_DRIVEN);
+ status = (preloaded ? RR_PRELOADED : RR_DRIVEN);
goto done;
}
rt = (rr_t*)hdr->parsed;