Fix some code in chan_sip that was intended to unlink multiple objects from a

container.  The OBJ_MULTIPLE flag must be provided here.  Otherwise, this would
only remove a single object.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155241 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.2
Russell Bryant 17 years ago
parent 210df649a2
commit 1a239454f1

@ -13670,7 +13670,8 @@ static char *sip_prune_realtime(struct ast_cli_entry *e, int cmd, struct ast_cli
unref_peer(pi, "toss iterator peer ptr"); unref_peer(pi, "toss iterator peer ptr");
} }
if (pruned) { if (pruned) {
ao2_t_callback(peers, OBJ_NODATA|OBJ_UNLINK, peer_is_marked, 0, "initiating callback to remove marked peers"); ao2_t_callback(peers, OBJ_NODATA | OBJ_UNLINK | OBJ_MULTIPLE, peer_is_marked, 0,
"initiating callback to remove marked peers");
ast_cli(a->fd, "%d peers pruned.\n", pruned); ast_cli(a->fd, "%d peers pruned.\n", pruned);
} else } else
ast_cli(a->fd, "No peers found to prune.\n"); ast_cli(a->fd, "No peers found to prune.\n");
@ -20613,7 +20614,8 @@ static void *do_monitor(void *data)
of time since the last time we did it (when MWI is being sent, we can of time since the last time we did it (when MWI is being sent, we can
get back to this point every millisecond or less) get back to this point every millisecond or less)
*/ */
ao2_t_callback(dialogs, OBJ_UNLINK|OBJ_NODATA, dialog_needdestroy, &t, "callback to remove dialogs w/needdestroy"); ao2_t_callback(dialogs, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, dialog_needdestroy, &t,
"callback to remove dialogs w/needdestroy");
/* the old methodology would be to restart the search for dialogs to delete with every /* the old methodology would be to restart the search for dialogs to delete with every
dialog that was found and destroyed, probably because the list contents would change, dialog that was found and destroyed, probably because the list contents would change,
@ -23650,7 +23652,8 @@ static int sip_do_reload(enum channelreloadreason reason)
start_poke = time(0); start_poke = time(0);
/* Prune peers who still are supposed to be deleted */ /* Prune peers who still are supposed to be deleted */
ao2_t_callback(peers, OBJ_NODATA|OBJ_UNLINK, peer_is_marked, 0, "callback to remove marked peers"); ao2_t_callback(peers, OBJ_NODATA | OBJ_UNLINK | OBJ_MULTIPLE, peer_is_marked, 0,
"callback to remove marked peers");
ast_debug(4, "--------------- Done destroying pruned peers\n"); ast_debug(4, "--------------- Done destroying pruned peers\n");

Loading…
Cancel
Save