summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--channels/chan_iax2.c5
-rw-r--r--main/netsock.c5
2 files changed, 7 insertions, 3 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 24f49d8bf..fab2752c7 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 334617da6..994afc601 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);
}