[sr-dev] Registrar - check for local path

Daniel-Constantin Mierla miconda at gmail.com
Fri Jan 9 19:13:41 CET 2015


Hello,

looks ok now -- I missed the commit in the branch, but seems to include
the changes I pointed in the last review. If yes, then it can be pushed
in master.

Cheers,
Daniel

On 09/01/15 18:54, Charles Chance wrote:
> Hello,
>
> Would anyone like to review the final changes, before I merge them
> into master?
>
> I have created personal branch cchance/registrar, with the relevant
> commits being:
>
> https://github.com/kamailio/kamailio/commit/635f23b12eff2431ca9a14bb39f4204dc2a7227b
> https://github.com/kamailio/kamailio/commit/4ff2c48d66a3bce2c491b44d0f1b5e939e5508ff
>
> Thanks in advance,
>
> Charles
>
>
> On 15 December 2014 at 12:58, Charles Chance
> <charles.chance at sipcentric.com <mailto:charles.chance at sipcentric.com>>
> wrote:
>
>
>     On 14 December 2014 at 21:40, Daniel-Constantin Mierla
>     <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>         Hello,
>
>         looking at the patch, I see that the block for parsing first
>         path uri:
>
>         +			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;
>         +			}
>
>
>         Is done outside of parameter check:
>
>
>          +			if (path_check_local > 0
>
>
>         But seems to be used only inside it (when the parameter is set
>         >0). It should be moved inside that IF, to avoid parsing the
>         path uri when the parameter is not set, because that happens
>         for each lookup.
>
>
>     Yes, spotted that one already and it has been moved inside the
>     parameter check.
>
>      
>
>         Another thing that has to be double-checked: you change the
>         value of ptr->path.s if there is a match of local URI for
>         first path. That can mess the structure from usrloc, if it
>         needs to do a free later or is a pointer inside shared memory
>         that is going to be used later -- practically the pointer is
>         no longer at the beginning of allocated memory. I didn't have
>         time to look deeper in usrloc and all its db modes (iirc, for
>         db-only, the location record is temporarily built in memory
>         and freed). The best and safest for the future is to make a
>         copy of the path str and work with it inside the function
>         where you need to change it
>
>         str path_str;
>
>         ...
>         path_str = ptr->path;
>         // and use path_str instead of ptr->path from here on
>         ...
>
>
>     Sorry, oversight on my part, will make a copy and work with that
>     instead.
>      
>
>
>         The new parameter has to be documented in the readme as well.
>
>      
>     Of course :)
>
>     Thanks for your time,
>
>     Charles
>
>
>
>
>
> www.sipcentric.com <http://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. 

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20150109/b548036c/attachment-0001.html>


More information about the sr-dev mailing list