Hi Olle,
msg_apply_changes() is for getting the Path saved the first place if
adding/saving on the same instance.
My patch is for later on, to avoid looping if lookup is performed on the
same instance that received the register.
Scenario is 2 x registrar/location servers, both sharing common DB - no
separate edge proxies, but each adds itself as Path before saving (which is
where msg_apply_changes() comes in).
Cheers,
Charles
On 8 December 2014 at 14:46, Olle E. Johansson <oej(a)edvina.net> wrote:
On 08 Dec 2014, at 15:42, Charles Chance <charles.chance(a)sipcentric.com>
wrote:
Hi All,
Can anyone see a problem with doing (something like) the following, to
handle the situation like
http://lists.sip-router.org/pipermail/sr-users/2014-October/085251.html?
Admittedly, it is probably a less common use case, but it has been raised
several times on the list so I believe it is a genuine one.
Did you try Daniel's advice?
"See msg_apply_changes() from textopsx to get the path header visible."
Did that not work?
/O
diff --git a/modules/registrar/lookup.c b/modules/registrar/lookup.c
index 794d968..66730b4 100644
--- a/modules/registrar/lookup.c
+++ b/modules/registrar/lookup.c
@@ -41,6 +41,7 @@
#include "../../action.h"
#include "../../mod_fix.h"
#include "../../parser/parse_rr.h"
+#include "../../forward.h"
#include "../usrloc/usrloc.h"
#include "common.h"
#include "regtime.h"
@@ -121,6 +122,7 @@ int lookup_helper(struct sip_msg* _m, udomain_t* _d,
str* _uri, int _mode)
sr_xavp_t *list=NULL;
str xname = {"ruid", 4};
sr_xval_t xval;
+ sip_uri_t path_uri;
ret = -1;
@@ -265,6 +267,14 @@ int lookup_helper(struct sip_msg* _m, udomain_t* _d,
str* _uri, int _mode)
ret = -3;
goto done;
}
+ if (parse_uri(path_dst.s, path_dst.len, &path_uri)
< 0){
+ LM_ERR("failed to parse the Path URI\n");
+ ret = -3;
+ goto done;
+ }
+ }
+ /* Only use path-uri if non-local */
+ if (path_uri.host.s && !check_self(&(path_uri.host), 0,
0)) {
if (set_path_vector(_m, &ptr->path) < 0) {
LM_ERR("failed to set path vector\n");
ret = -3;
The above needs to be repeated in lookup_branches function of same file,
but I wanted to check others' opinions first.
Best regards,
Charles
www.sipcentric.com
Follow us on twitter @sipcentric <http://twitter.com/sipcentric>
Sipcentric Ltd. Company registered in England & Wales no. 7365592. Registered
office: Faraday Wharf, Innovation Birmingham Campus, Holt Street,
Birmingham Science Park, Birmingham B7 4BB.
_______________________________________________
sr-dev mailing list
sr-dev(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
_______________________________________________
sr-dev mailing list
sr-dev(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
--
*Charles Chance*
Managing Director
t. 0121 285 4400 m. 07932 063 891
--
www.sipcentric.com
Follow us on twitter @sipcentric <http://twitter.com/sipcentric>
Sipcentric Ltd. Company registered in England & Wales no. 7365592. Registered
office: Faraday Wharf, Innovation Birmingham Campus, Holt Street,
Birmingham Science Park, Birmingham B7 4BB.