aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
authortransnexus <transnexus@f38db490-d61c-443f-a65b-d21fe96a405b>2010-08-10 07:26:17 +0000
committertransnexus <transnexus@f38db490-d61c-443f-a65b-d21fe96a405b>2010-08-10 07:26:17 +0000
commit1fc76768a99f651fccb359a836928fec4a6615a4 (patch)
treef830d72b0157e53f99cf61adb791e2c496344eaf /channels/chan_sip.c
parent815b5b09da5e555add7bba3d8fca588e7611248a (diff)
Fixed the issue caused by EXTEN including user parameters.
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.8@281497 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r--channels/chan_sip.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 47dc2610d..cdf598a66 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -12652,7 +12652,6 @@ static int expire_register(const void *data)
peer->expire = -1;
peer->portinuri = 0;
- memset(&peer->addr, 0, sizeof(peer->addr));
destroy_association(peer); /* remove registration data from storage */
set_socket_transport(&peer->socket, peer->default_outbound_transport);
@@ -12681,6 +12680,10 @@ static int expire_register(const void *data)
}
}
+ /* Only clear the addr after we check for destruction. The addr must remain
+ * in order to unlink from the peers_by_ip container correctly */
+ memset(&peer->addr, 0, sizeof(peer->addr));
+
unref_peer(peer, "removing peer ref for expire_register");
return 0;