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

Author: Alex Hermann <[email protected]>
Committer: Alex Hermann <[email protected]>
Date: 2019-02-01T11:14:10+01:00

rr: Add new return value for preloaded route set to loose_route()

Instead of returning just -1 (error), return a dedicated value. Now it is
possible to detect from the script if a preloaded Route header was removed
that pointed at the local proxy.

The new return code is kept negative, so all code checking for failure response
keeps working.

---

Modified: src/modules/rr/doc/rr_admin.xml
Modified: src/modules/rr/loose.c

---

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

---

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;


_______________________________________________
Kamailio (SER) - Development Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to