aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-07-25 17:31:50 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-07-25 17:31:50 +0000
commitbc01e2ac4fc94f9ea3c863d6981dabf147370ec8 (patch)
tree81dbb5a2c125da540ee128455d2dbd9c6a13e7ed /channels
parentea032696e61ce3822587bc7d49a36c44670057f1 (diff)
ensure socket address family is copied (bug #4789)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6190 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_sip.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index d7fe50010..20f198f12 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -1639,9 +1639,11 @@ static int create_addr_from_peer(struct sip_pvt *r, struct sip_peer *peer)
if ((peer->addr.sin_addr.s_addr || peer->defaddr.sin_addr.s_addr) &&
(!peer->maxms || ((peer->lastms >= 0) && (peer->lastms <= peer->maxms)))) {
if (peer->addr.sin_addr.s_addr) {
+ r->sa.sin_family = peer->addr.sin_family;
r->sa.sin_addr = peer->addr.sin_addr;
r->sa.sin_port = peer->addr.sin_port;
} else {
+ r->sa.sin_family = peer->defaddr.sin_family;
r->sa.sin_addr = peer->defaddr.sin_addr;
r->sa.sin_port = peer->defaddr.sin_port;
}