From c20cfcdcf05168a5d4e8ef9e0263706e6094eba0 Mon Sep 17 00:00:00 2001
From: Sean Bright <sean@malleable.com>
Date: Mon, 27 Feb 2012 17:03:46 +0000
Subject: [PATCH] Address comments from Mark Michelson

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@357014 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_iax2.c | 5 ++---
 main/netsock.c       | 5 +++++
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 24f49d8bf4..fab2752c78 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -12270,7 +12270,7 @@ static int check_srcaddr(struct ast_sockaddr *addr)
 {
 	int sd;
 
-	sd = socket(ast_sockaddr_is_ipv4(addr) ? AF_INET : AF_INET6, SOCK_DGRAM, 0);
+	sd = socket(addr->ss.ss_family, SOCK_DGRAM, 0);
 	if (sd < 0) {
 		ast_log(LOG_ERROR, "Socket: %s\n", strerror(errno));
 		return -1;
@@ -12302,8 +12302,7 @@ static int peer_set_srcaddr(struct iax2_peer *peer, const char *srcaddr)
 	if (!(tmp = ast_strdupa(srcaddr)))
 		return -1;
 
-	host = strsep(&tmp, ":");
-	portstr = tmp;
+	ast_sockaddr_split_hostport(tmp, &host, &portstr, 0);
 
 	if (portstr) {
 		port = atoi(portstr);
diff --git a/main/netsock.c b/main/netsock.c
index 334617da6b..994afc6015 100644
--- a/main/netsock.c
+++ b/main/netsock.c
@@ -167,6 +167,11 @@ struct ast_netsock *ast_netsock_bind(struct ast_netsock_list *list, struct io_co
 	struct ast_sockaddr addr;
 
 	if (ast_sockaddr_parse(&addr, bindinfo, 0)) {
+		if (!ast_sockaddr_is_ipv4(&addr)) {
+			ast_log(LOG_WARNING, "Only IPv4 addresses are supported at this time.\n");
+			return NULL;
+		}
+
 		if (!ast_sockaddr_port(&addr)) {
 			ast_sockaddr_set_port(&addr, defaultport);
 		}
-- 
GitLab