nat: Clear the queued messages at the end

It is possible that the calls from the loop would queue
more messages for the BSC and then we would have a nice
memory leak... Move it to the bottom.
This commit is contained in:
Holger Hans Peter Freyther 2010-04-22 12:04:36 +08:00
parent a34585e296
commit e464ed4e7c
1 changed files with 5 additions and 4 deletions

View File

@ -437,10 +437,6 @@ static int ipaccess_msc_write_cb(struct bsc_fd *bfd, struct msgb *msg)
static void remove_bsc_connection(struct bsc_connection *connection)
{
struct sccp_connections *sccp_patch, *tmp;
bsc_unregister_fd(&connection->write_queue.bfd);
close(connection->write_queue.bfd.fd);
write_queue_clear(&connection->write_queue);
llist_del(&connection->list_entry);
/* stop the timeout timer */
bsc_del_timer(&connection->id_timeout);
@ -457,6 +453,11 @@ static void remove_bsc_connection(struct bsc_connection *connection)
/* close endpoints allocated by this BSC */
bsc_mgcp_clear_endpoints_for(connection);
bsc_unregister_fd(&connection->write_queue.bfd);
close(connection->write_queue.bfd.fd);
write_queue_clear(&connection->write_queue);
llist_del(&connection->list_entry);
talloc_free(connection);
}