> On Jan. 19, 2015, 6:56 p.m., rmudgett wrote:
> > cleanup_all_regs() should just be the ao2_callback() line and the original 
> > guts should be put into a cleanup_registration() ao2_callback function.
> 
> Matt Jordan wrote:
>     I'm not sure I understand your comment. cleanup_all_regs is being called 
> by the ao2_callback, and is only called by the ao2_callback. Why would the 
> structure need to be changed?

int cleanup_registration(void *obj, void *arg, flags)
{
  guts of original cleanup_all_regs to destroy one registration.  i.e., What 
you have currently converted cleanup_all_regs into.
  return CMP_MATCH;
}
void cleanup_all_regs()
{
  ao2_t_callback(registry_list, flags, cleanup_registration, NULL, "remove all 
SIP registry items");
}

This way you don't have to get the ao2_callback correct in two places. :)


- rmudgett


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


On Jan. 19, 2015, 7:50 p.m., Matt Jordan wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/4355/
> -----------------------------------------------------------
> 
> (Updated Jan. 19, 2015, 7:50 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Bugs: ASTERISK-24640 and ASTERISK-24673
>     https://issues.asterisk.org/jira/browse/ASTERISK-24640
>     https://issues.asterisk.org/jira/browse/ASTERISK-24673
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> When the SIP registrations were migrated to using ao2 in what was then trunk, 
> the explicit destruction of the registrations on module reload was removed 
> and not replaced with an ao2 equivalent. Debugging done by Stefan Engström, 
> the issue reporter, on ASTERISK-24673 confirmed that the reference in the 
> registry_list container was being leaked.
> 
> Since the purpose of cleanup_all_regs is to prep a registration for 
> destruction, this function has been converted to being an ao2_callback 
> function callback, and an ao2_callback with OBJ_MULTIPLE | OBJ_NODATA | 
> OBJ_UNLINK is now used to invoke the function. This cleans up each 
> registration, but also removes it from the registration container 
> registry_list.
> 
> 
> Diffs
> -----
> 
>   /branches/13/channels/chan_sip.c 430794 
> 
> Diff: https://reviewboard.asterisk.org/r/4355/diff/
> 
> 
> Testing
> -------
> 
> Created an outbound registration to a SIP trunk. Confirmed that Asterisk was 
> registered. Commented out the "register" line sip.conf, reloaded, and 
> confirmed that the registration was gone.
> 
> Stefan tested the patch independently and also confirmed that it fixed it on 
> his test system.
> 
> 
> Thanks,
> 
> Matt Jordan
> 
>

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to