[asterisk-dev] [Code Review] 3173: chan_sip refactor - sip_route
wdoekes
reviewboard at asterisk.org
Mon Feb 3 08:25:07 CST 2014
> On Feb. 3, 2014, 1:26 p.m., wdoekes wrote:
> > /trunk/channels/sip/include/route.h, lines 33-35
> > <https://reviewboard.asterisk.org/r/3173/diff/1/?file=53352#file53352line33>
> >
> > A bit uncommon to have the unknown between the known values.
>
> Corey Farrell wrote:
> route_loose = 0 because a route is loose when no hops exist, and the field is zero when sip_route's are created (as part of a larger ast_calloc).
>
> route_unknown is used when a hop is inserted to the head of sip_route->list. Maybe it would be better if I rename route_unknown to route_invalidated, document that strict/loose needs to be rechecked?
I don't have an opinion regarding unknown vs. invalidated, but if you're using the 0-value implicitly through the calloc, you should document doing so.
> On Feb. 3, 2014, 1:26 p.m., wdoekes wrote:
> > /trunk/channels/sip/route.c, line 180
> > <https://reviewboard.asterisk.org/r/3173/diff/1/?file=53354#file53354line180>
> >
> > const struct sip_route ?
>
> Corey Farrell wrote:
> No. sip_route_is_strict writes to route->type when it equals route_unknown.
I can see that. But I'm not fond of is_something() taking a non-const.
(Although the alternatives of an explicit sip_route_finalize() call or (worse) const-casting aren't too pretty either.)
- wdoekes
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3173/#review10741
-----------------------------------------------------------
On Feb. 3, 2014, 2:10 p.m., Corey Farrell wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3173/
> -----------------------------------------------------------
>
> (Updated Feb. 3, 2014, 2:10 p.m.)
>
>
> Review request for Asterisk Developers.
>
>
> Bugs: ASTERISK-22582
> https://issues.asterisk.org/jira/browse/ASTERISK-22582
>
>
> Repository: Asterisk
>
>
> Description
> -------
>
> Isolates code that manages struct sip_route.
>
> * Move route code to sip/route.c + sip/include/route.h
> * Rename functions to sip_route_*
> * Replace ad-hoc list code with macro's from linkedlists.h
> * Create sip_route_process_header() to processes Path and Record-Route headers (previously done with different code in build_route and build_path)
> * Make sip_route uri accessor return a const
> * Move struct uriparams, struct contact and contactliststruct from sip.h to reqresp_parser.h. sip/route.c uses reqresp_parser.h but not sip.h, this was a problem. These moved declares are not used outside of reqresp_parser.
> * While modifying reqprep() the lack of {} caused me trouble. I added them.
> * Code outside route.c treats sip_route as an opaque structure, using macro's or procedures for all access.
>
>
> Diffs
> -----
>
> /trunk/channels/sip/route.c PRE-CREATION
> /trunk/channels/sip/include/sip.h 407178
> /trunk/channels/sip/include/route.h PRE-CREATION
> /trunk/channels/sip/include/reqresp_parser.h 407178
> /trunk/channels/chan_sip.c 407178
>
> Diff: https://reviewboard.asterisk.org/r/3173/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Corey Farrell
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140203/c900657a/attachment-0001.html>
More information about the asterisk-dev
mailing list