[asterisk-dev] [Code Review] rewrite of matching code in chan_sip.c realtime_peer()

Terry Wilson reviewboard at asterisk.org
Wed Oct 12 19:47:03 CDT 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/1395/#review4503
-----------------------------------------------------------


After fixing res_config_sqlite3 to not strip out the column we are matching on from the resulting varlist for a realtime_multi call, this causes my tests to pass. Just a couple of more comments below. 


/branches/1.8/channels/chan_sip.c
<https://reviewboard.asterisk.org/r/1395/#comment8682>

    whitespace



/branches/1.8/channels/chan_sip.c
<https://reviewboard.asterisk.org/r/1395/#comment8681>

    whitespace



/branches/1.8/channels/chan_sip.c
<https://reviewboard.asterisk.org/r/1395/#comment8680>

    I would go ahead and do the !varregs check anyway, I think. If sipregs is used, the ipaddr will never actually be set in sippeers because the tablename is set to "sipregs" in realtime_update_peer anyway. The only reason we really needed ipaddr in the sippeers table in that case was to avoid getting a warning. It never should have actually matched.


- Terry


On Oct. 12, 2011, 3:20 p.m., wdoekes wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/1395/
> -----------------------------------------------------------
> 
> (Updated Oct. 12, 2011, 3:20 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Summary
> -------
> 
> There are several memory leaks in realtime_peer in chan_sip.c. For a thorough explanation, see the bug report.
> 
> Trying to patch those leaks would be making ugly code even uglier. This is an attempt at cleaning up the code a bit.
> 
> I attempted to keep the exact same behaviour as the original code, while increasing readability. (I had to clone the variable gotten from the peerlist to get proper cleanup behaviour.)
> 
> Differences:
> - sippeers ipaddr is now checked even though sippeers host was not matched (I could not make sense of why ipaddr wasn't checked when host was not matched)
> - I don't check sipregs for the insecure column
> - the leaks should be gone ;)
> 
> Up for review here, because the changes are significant enough for me to have made (lots of) errors and because someone might feel that a rewrite is not the way to go.
> 
> 
> This addresses bug ASTERISK-18356.
>     https://issues.asterisk.org/jira/browse/ASTERISK-18356
> 
> 
> Diffs
> -----
> 
>   /branches/1.8/configs/extconfig.conf.sample 340521 
>   /branches/1.8/include/asterisk/config.h 340521 
>   /branches/1.8/main/config.c 340521 
>   /branches/1.8/channels/chan_sip.c 340521 
> 
> Diff: https://reviewboard.asterisk.org/r/1395/diff
> 
> 
> Testing
> -------
> 
> I tested that I got the same behaviour for the tests mentioned in the bug report. The leaks are gone, the bevahour seemed the same.
> 
> I'm too tired to test normal cases right now though.
> 
> 
> Thanks,
> 
> wdoekes
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20111013/f2272484/attachment-0001.htm>


More information about the asterisk-dev mailing list