summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2016-05-20 04:17:00 +0000
committerLiong Sauw Ming <ming@teluu.com>2016-05-20 04:17:00 +0000
commit58d6c60c881d265cee8c5ca5dbaad545ff44e995 (patch)
treeb2bb5a9c72e01491d8dd6bce70d3a4c6c1ab4750 /pjsip
parent2e1173b56db0083559b4bc09e00d27d03dbad8bc (diff)
Re #1922: Replace IPv4 specific APIs as per Apple's recommendations
https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW27 git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5311 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsip/sip_resolve.c6
-rw-r--r--pjsip/src/pjsip/sip_transport_udp.c28
-rw-r--r--pjsip/src/pjsua-lib/pjsua_acc.c4
-rw-r--r--pjsip/src/pjsua-lib/pjsua_core.c3
-rw-r--r--pjsip/src/pjsua-lib/pjsua_media.c7
-rw-r--r--pjsip/src/test/transport_tcp_test.c4
-rw-r--r--pjsip/src/test/transport_test.c5
7 files changed, 26 insertions, 31 deletions
diff --git a/pjsip/src/pjsip/sip_resolve.c b/pjsip/src/pjsip/sip_resolve.c
index 943fb3c4..23dab442 100644
--- a/pjsip/src/pjsip/sip_resolve.c
+++ b/pjsip/src/pjsip/sip_resolve.c
@@ -168,8 +168,8 @@ static int get_ip_addr_ver(const pj_str_t *host)
pj_in_addr dummy;
pj_in6_addr dummy6;
- /* First check with inet_aton() */
- if (pj_inet_aton(host, &dummy) > 0)
+ /* First check if this is an IPv4 address */
+ if (pj_inet_pton(pj_AF_INET(), host, &dummy) == PJ_SUCCESS)
return 4;
/* Then check if this is an IPv6 address */
@@ -260,7 +260,7 @@ PJ_DEF(void) pjsip_resolve( pjsip_resolver_t *resolver,
if (ip_addr_ver == 4) {
pj_sockaddr_init(pj_AF_INET(), &svr_addr.entry[0].addr,
NULL, 0);
- pj_inet_aton(&target->addr.host,
+ pj_inet_pton(pj_AF_INET(), &target->addr.host,
&svr_addr.entry[0].addr.ipv4.sin_addr);
} else {
pj_sockaddr_init(pj_AF_INET6(), &svr_addr.entry[0].addr,
diff --git a/pjsip/src/pjsip/sip_transport_udp.c b/pjsip/src/pjsip/sip_transport_udp.c
index 499cbeac..9e6d3ee5 100644
--- a/pjsip/src/pjsip/sip_transport_udp.c
+++ b/pjsip/src/pjsip/sip_transport_udp.c
@@ -160,17 +160,9 @@ static void udp_on_read_complete( pj_ioqueue_key_t *key,
rdata->pkt_info.len = bytes_read;
rdata->pkt_info.zero = 0;
pj_gettimeofday(&rdata->pkt_info.timestamp);
- if (src_addr->addr.sa_family == pj_AF_INET()) {
- pj_ansi_strcpy(rdata->pkt_info.src_name,
- pj_inet_ntoa(src_addr->ipv4.sin_addr));
- rdata->pkt_info.src_port = pj_ntohs(src_addr->ipv4.sin_port);
- } else {
- pj_inet_ntop(pj_AF_INET6(),
- pj_sockaddr_get_addr(&rdata->pkt_info.src_addr),
- rdata->pkt_info.src_name,
- sizeof(rdata->pkt_info.src_name));
- rdata->pkt_info.src_port = pj_ntohs(src_addr->ipv6.sin6_port);
- }
+ pj_sockaddr_print(src_addr, rdata->pkt_info.src_name,
+ sizeof(rdata->pkt_info.src_name), 0);
+ rdata->pkt_info.src_port = pj_sockaddr_get_port(src_addr);
size_eaten =
pjsip_tpmgr_receive_packet(rdata->tp_info.transport->tpmgr,
@@ -517,12 +509,12 @@ static pj_status_t get_published_name(pj_sock_t sock,
if (status != PJ_SUCCESS)
return status;
- pj_strcpy2(&bound_name->host, pj_inet_ntoa(hostip.ipv4.sin_addr));
+ status = pj_inet_ntop(pj_AF_INET(), &hostip.ipv4.sin_addr,
+ hostbuf, hostbufsz);
} else {
/* Otherwise use bound address. */
- pj_strcpy2(&bound_name->host,
- pj_inet_ntoa(tmp_addr.ipv4.sin_addr));
- status = PJ_SUCCESS;
+ status = pj_inet_ntop(pj_AF_INET(), &tmp_addr.ipv4.sin_addr,
+ hostbuf, hostbufsz);
}
} else {
@@ -542,9 +534,9 @@ static pj_status_t get_published_name(pj_sock_t sock,
status = pj_inet_ntop(tmp_addr.addr.sa_family,
pj_sockaddr_get_addr(&tmp_addr),
hostbuf, hostbufsz);
- if (status == PJ_SUCCESS) {
- bound_name->host.slen = pj_ansi_strlen(hostbuf);
- }
+ }
+ if (status == PJ_SUCCESS) {
+ bound_name->host.slen = pj_ansi_strlen(hostbuf);
}
diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c
index 15746cef..055d7ad7 100644
--- a/pjsip/src/pjsua-lib/pjsua_acc.c
+++ b/pjsip/src/pjsua-lib/pjsua_acc.c
@@ -3031,8 +3031,8 @@ static int get_ip_addr_ver(const pj_str_t *host)
pj_in_addr dummy;
pj_in6_addr dummy6;
- /* First check with inet_aton() */
- if (pj_inet_aton(host, &dummy) > 0)
+ /* First check if this is an IPv4 address */
+ if (pj_inet_pton(pj_AF_INET(), host, &dummy) == PJ_SUCCESS)
return 4;
/* Then check if this is an IPv6 address */
diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c
index 3c705540..d86013c7 100644
--- a/pjsip/src/pjsua-lib/pjsua_core.c
+++ b/pjsip/src/pjsua-lib/pjsua_core.c
@@ -2056,7 +2056,8 @@ static pj_status_t create_sip_udp_sock(int af,
}
if (pjsua_var.stun_srv.addr.sa_family != 0) {
- pj_ansi_strcpy(stun_ip_addr,pj_inet_ntoa(pjsua_var.stun_srv.ipv4.sin_addr));
+ pj_sockaddr_print(&pjsua_var.stun_srv,
+ stun_ip_addr, sizeof(stun_ip_addr), 0);
stun_srv = pj_str(stun_ip_addr);
} else {
stun_srv.slen = 0;
diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c
index 524915c7..bb8dc49b 100644
--- a/pjsip/src/pjsua-lib/pjsua_media.c
+++ b/pjsip/src/pjsua-lib/pjsua_media.c
@@ -359,8 +359,7 @@ static pj_status_t create_rtp_rtcp_sock(pjsua_call_media *call_med,
pj_sockaddr_in resolved_addr[2];
pjstun_setting stun_opt;
- pj_ansi_strcpy(ip_addr,
- pj_inet_ntoa(pjsua_var.stun_srv.ipv4.sin_addr));
+ pj_sockaddr_print(&pjsua_var.stun_srv, ip_addr,sizeof(ip_addr),0);
stun_srv = pj_str(ip_addr);
pj_bzero(&stun_opt, sizeof(stun_opt));
@@ -426,8 +425,8 @@ static pj_status_t create_rtp_rtcp_sock(pjsua_call_media *call_med,
if (status == PJ_SUCCESS) {
if (pjsua_var.stun_srv.addr.sa_family != 0) {
- pj_ansi_strcpy(ip_addr,
- pj_inet_ntoa(pjsua_var.stun_srv.ipv4.sin_addr));
+ pj_sockaddr_print(&pjsua_var.stun_srv,
+ ip_addr, sizeof(ip_addr), 0);
stun_srv = pj_str(ip_addr);
} else {
stun_srv.slen = 0;
diff --git a/pjsip/src/test/transport_tcp_test.c b/pjsip/src/test/transport_tcp_test.c
index 9024ef99..3ff5f8ff 100644
--- a/pjsip/src/test/transport_tcp_test.c
+++ b/pjsip/src/test/transport_tcp_test.c
@@ -37,6 +37,7 @@ int transport_tcp_test(void)
pj_sockaddr_in rem_addr;
pj_status_t status;
char url[PJSIP_MAX_URL_SIZE];
+ char addr[PJ_INET_ADDRSTRLEN];
int rtt[SEND_RECV_LOOP], min_rtt;
int i, pkt_lost;
@@ -57,7 +58,8 @@ int transport_tcp_test(void)
}
pj_ansi_sprintf(url, "sip:alice@%s:%d;transport=tcp",
- pj_inet_ntoa(rem_addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &rem_addr.sin_addr, addr,
+ sizeof(addr)),
pj_ntohs(rem_addr.sin_port));
diff --git a/pjsip/src/test/transport_test.c b/pjsip/src/test/transport_test.c
index ab22c5ef..e5083d1a 100644
--- a/pjsip/src/test/transport_test.c
+++ b/pjsip/src/test/transport_test.c
@@ -37,8 +37,9 @@ int generic_transport_test(pjsip_transport *tp)
{
struct pj_in_addr addr;
- /* Note: inet_aton() returns non-zero if addr is valid! */
- if (pj_inet_aton(&tp->local_name.host, &addr) != 0) {
+ if (pj_inet_pton(pj_AF_INET(), &tp->local_name.host,
+ &addr) == PJ_SUCCESS)
+ {
if (addr.s_addr==PJ_INADDR_ANY || addr.s_addr==PJ_INADDR_NONE) {
PJ_LOG(3,(THIS_FILE, " Error: invalid address name"));
return -420;