From: Kinsey Moore Date: Mon, 12 Sep 2011 13:25:42 +0000 (+0000) Subject: Prevent IAX2 from getting IPv6 addresses via DNS X-Git-Tag: 1.8.8.0-rc1~80 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b1b865d7b284333ff5490a624a6d482e66368dca;p=thirdparty%2Fasterisk.git Prevent IAX2 from getting IPv6 addresses via DNS IAX2 does not support IPv6 and getting such addresses from DNS can cause error messages on the remote end involving bad IPv4 address casts in the presence of IPv6/IPv4 tunnels. This patch ensures that IAX2 will not encounter IPv6 addresses via DNS queries. (closes issue ASTERISK-18090) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@335320 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 84bd3fe34f..03a3f71e90 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -8480,6 +8480,7 @@ static int iax2_append_register(const char *hostname, const char *username, if (!(reg = ast_calloc(1, sizeof(*reg)))) return -1; + reg->addr.ss.ss_family = AF_INET; if (ast_dnsmgr_lookup(hostname, ®->addr, ®->dnsmgr, srvlookup ? "_iax._udp" : NULL) < 0) { ast_free(reg); return -1; @@ -12309,6 +12310,7 @@ static struct iax2_peer *build_peer(const char *name, struct ast_variable *v, st peer->expire = -1; peer->pokeexpire = -1; peer->sockfd = defaultsockfd; + peer->addr.ss.ss_family = AF_INET; if (ast_string_field_init(peer, 32)) peer = peer_unref(peer); }