summaryrefslogtreecommitdiff
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
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
-rw-r--r--pjlib-util/src/pjlib-util/cli_telnet.c3
-rw-r--r--pjlib-util/src/pjlib-util/dns_dump.c5
-rw-r--r--pjlib-util/src/pjlib-util/pcap.c8
-rw-r--r--pjlib-util/src/pjlib-util/resolver.c25
-rw-r--r--pjlib-util/src/pjlib-util/srv_resolver.c22
-rw-r--r--pjlib-util/src/pjlib-util/stun_simple_client.c1
-rw-r--r--pjlib/src/pjlib-test/echo_clt.c4
-rw-r--r--pjmedia/src/pjmedia/endpoint.c11
-rw-r--r--pjmedia/src/pjmedia/sdp.c7
-rw-r--r--pjnath/src/pjnath/nat_detect.c11
-rw-r--r--pjnath/src/pjnath/stun_msg_dump.c6
-rw-r--r--pjsip-apps/src/samples/proxy.h16
-rw-r--r--pjsip-apps/src/samples/siprtp.c6
-rw-r--r--pjsip-apps/src/samples/streamutil.c7
-rw-r--r--pjsip-apps/src/samples/vid_streamutil.c7
-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
22 files changed, 116 insertions, 80 deletions
diff --git a/pjlib-util/src/pjlib-util/cli_telnet.c b/pjlib-util/src/pjlib-util/cli_telnet.c
index 16baa7de..c6ce6eff 100644
--- a/pjlib-util/src/pjlib-util/cli_telnet.c
+++ b/pjlib-util/src/pjlib-util/cli_telnet.c
@@ -1928,7 +1928,8 @@ PJ_DEF(pj_status_t) pj_cli_telnet_get_info(pj_cli_front_end *fe,
if (status != PJ_SUCCESS)
return status;
- pj_strcpy2(&info->ip_address, pj_inet_ntoa(hostip.ipv4.sin_addr));
+ pj_sockaddr_print(&hostip, info->buf_, sizeof(info->buf_), 0);
+ pj_strset2(&info->ip_address, info->buf_);
info->port = tfe->cfg.port;
diff --git a/pjlib-util/src/pjlib-util/dns_dump.c b/pjlib-util/src/pjlib-util/dns_dump.c
index fdf29318..ab9ca684 100644
--- a/pjlib-util/src/pjlib-util/dns_dump.c
+++ b/pjlib-util/src/pjlib-util/dns_dump.c
@@ -90,6 +90,7 @@ static void dump_answer(unsigned index, const pj_dns_parsed_rr *rr)
const pj_str_t root_name = { "<Root>", 6 };
const pj_str_t *name = &rr->name;
char ttl_words[32];
+ char addr[PJ_INET6_ADDRSTRLEN];
if (name->slen == 0)
name = &root_name;
@@ -117,9 +118,9 @@ static void dump_answer(unsigned index, const pj_dns_parsed_rr *rr)
rr->rdata.cname.name.ptr));
} else if (rr->type == PJ_DNS_TYPE_A) {
PJ_LOG(3,(THIS_FILE, " IP address: %s",
- pj_inet_ntoa(rr->rdata.a.ip_addr)));
+ pj_inet_ntop2(pj_AF_INET(), &rr->rdata.a.ip_addr,
+ addr, sizeof(addr))));
} else if (rr->type == PJ_DNS_TYPE_AAAA) {
- char addr[PJ_INET6_ADDRSTRLEN];
PJ_LOG(3,(THIS_FILE, " IPv6 address: %s",
pj_inet_ntop2(pj_AF_INET6(), &rr->rdata.aaaa.ip_addr,
addr, sizeof(addr))));
diff --git a/pjlib-util/src/pjlib-util/pcap.c b/pjlib-util/src/pjlib-util/pcap.c
index 2ddcc59b..dd961b7a 100644
--- a/pjlib-util/src/pjlib-util/pcap.c
+++ b/pjlib-util/src/pjlib-util/pcap.c
@@ -229,9 +229,11 @@ PJ_DEF(pj_status_t) pj_pcap_read_udp(pj_pcap_file *file,
unsigned rec_incl;
pj_ssize_t sz;
pj_size_t sz_read = 0;
+ char addr[PJ_INET_ADDRSTRLEN];
pj_status_t status;
TRACE_((file->obj_name, "Reading packet.."));
+ pj_bzero(&addr, sizeof(addr));
/* Read PCAP packet header */
sz = sizeof(tmp.rec);
@@ -282,7 +284,8 @@ PJ_DEF(pj_status_t) pj_pcap_read_udp(pj_pcap_file *file,
/* Skip if IP source mismatch */
if (file->filter.ip_src && tmp.ip.ip_src != file->filter.ip_src) {
TRACE_((file->obj_name, "IP source %s mismatch, skipping",
- pj_inet_ntoa(*(pj_in_addr*)&tmp.ip.ip_src)));
+ pj_inet_ntop2(pj_AF_INET(), (pj_in_addr*)&tmp.ip.ip_src,
+ addr, sizeof(addr))));
SKIP_PKT();
continue;
}
@@ -290,7 +293,8 @@ PJ_DEF(pj_status_t) pj_pcap_read_udp(pj_pcap_file *file,
/* Skip if IP destination mismatch */
if (file->filter.ip_dst && tmp.ip.ip_dst != file->filter.ip_dst) {
TRACE_((file->obj_name, "IP detination %s mismatch, skipping",
- pj_inet_ntoa(*(pj_in_addr*)&tmp.ip.ip_dst)));
+ pj_inet_ntop2(pj_AF_INET(), (pj_in_addr*)&tmp.ip.ip_dst,
+ addr, sizeof(addr))));
SKIP_PKT();
continue;
}
diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c
index c7cd79da..6d7a5903 100644
--- a/pjlib-util/src/pjlib-util/resolver.c
+++ b/pjlib-util/src/pjlib-util/resolver.c
@@ -638,6 +638,7 @@ static pj_status_t transmit_query(pj_dns_resolver *resolver,
/* Send the packet to name servers */
for (i=0; i<server_cnt; ++i) {
+ char addr[PJ_INET6_ADDRSTRLEN];
pj_ssize_t sent = (pj_ssize_t) pkt_size;
struct nameserver *ns = &resolver->ns[servers[i]];
@@ -651,7 +652,8 @@ static pj_status_t transmit_query(pj_dns_resolver *resolver,
"%s %d bytes to NS %d (%s:%d): DNS %s query for %s",
(q->transmit_cnt==0? "Transmitting":"Re-transmitting"),
(int)pkt_size, servers[i],
- pj_inet_ntoa(ns->addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &ns->addr.sin_addr, addr,
+ sizeof(addr)),
(int)pj_ntohs(ns->addr.sin_port),
pj_dns_get_type_name(q->key.qtype),
q->key.name));
@@ -1034,6 +1036,7 @@ static void set_nameserver_state(pj_dns_resolver *resolver,
{
struct nameserver *ns = &resolver->ns[index];
enum ns_state old_state = ns->state;
+ char addr[PJ_INET_ADDRSTRLEN];
ns->state = state;
ns->state_expiry = *now;
@@ -1047,7 +1050,8 @@ static void set_nameserver_state(pj_dns_resolver *resolver,
ns->state_expiry.sec += resolver->settings.bad_ns_ttl;
PJ_LOG(5, (resolver->name.ptr, "Nameserver %s:%d state changed %s --> %s",
- pj_inet_ntoa(ns->addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &ns->addr.sin_addr, addr,
+ sizeof(addr)),
(int)pj_ntohs(ns->addr.sin_port),
state_names[old_state], state_names[state]));
}
@@ -1390,6 +1394,7 @@ static void on_read_complete(pj_ioqueue_key_t *key,
pj_pool_t *pool = NULL;
pj_dns_parsed_packet *dns_pkt;
pj_dns_async_query *q;
+ char addr[PJ_INET_ADDRSTRLEN];
pj_status_t status;
PJ_USE_EXCEPTION;
@@ -1406,7 +1411,8 @@ static void on_read_complete(pj_ioqueue_key_t *key,
pj_strerror(status, errmsg, sizeof(errmsg));
PJ_LOG(4,(resolver->name.ptr,
"DNS resolver read error from %s:%d: %s",
- pj_inet_ntoa(resolver->udp_src_addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &resolver->udp_src_addr.sin_addr,
+ addr, sizeof(addr)),
pj_ntohs(resolver->udp_src_addr.sin_port),
errmsg));
@@ -1416,7 +1422,8 @@ static void on_read_complete(pj_ioqueue_key_t *key,
PJ_LOG(5,(resolver->name.ptr,
"Received %d bytes DNS response from %s:%d",
(int)bytes_read,
- pj_inet_ntoa(resolver->udp_src_addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &resolver->udp_src_addr.sin_addr,
+ addr, sizeof(addr)),
pj_ntohs(resolver->udp_src_addr.sin_port)));
@@ -1450,7 +1457,8 @@ static void on_read_complete(pj_ioqueue_key_t *key,
pj_strerror(status, errmsg, sizeof(errmsg));
PJ_LOG(3,(resolver->name.ptr,
"Error parsing DNS response from %s:%d: %s",
- pj_inet_ntoa(resolver->udp_src_addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &resolver->udp_src_addr.sin_addr,
+ addr, sizeof(addr)),
pj_ntohs(resolver->udp_src_addr.sin_port),
errmsg));
goto read_next_packet;
@@ -1463,7 +1471,8 @@ static void on_read_complete(pj_ioqueue_key_t *key,
if (!q) {
PJ_LOG(5,(resolver->name.ptr,
"DNS response from %s:%d id=%d discarded",
- pj_inet_ntoa(resolver->udp_src_addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &resolver->udp_src_addr.sin_addr,
+ addr, sizeof(addr)),
pj_ntohs(resolver->udp_src_addr.sin_port),
(unsigned)dns_pkt->hdr.id));
goto read_next_packet;
@@ -1633,11 +1642,13 @@ PJ_DEF(void) pj_dns_resolver_dump(pj_dns_resolver *resolver,
PJ_LOG(3,(resolver->name.ptr, " Name servers:"));
for (i=0; i<resolver->ns_count; ++i) {
+ char addr[PJ_INET_ADDRSTRLEN];
struct nameserver *ns = &resolver->ns[i];
PJ_LOG(3,(resolver->name.ptr,
" NS %d: %s:%d (state=%s until %ds, rtt=%d ms)",
- i, pj_inet_ntoa(ns->addr.sin_addr),
+ i, pj_inet_ntop2(pj_AF_INET(), &ns->addr.sin_addr, addr,
+ sizeof(addr)),
pj_ntohs(ns->addr.sin_port),
state_names[ns->state],
ns->state_expiry.sec - now.sec,
diff --git a/pjlib-util/src/pjlib-util/srv_resolver.c b/pjlib-util/src/pjlib-util/srv_resolver.c
index 5eed2ac7..6e325b43 100644
--- a/pjlib-util/src/pjlib-util/srv_resolver.c
+++ b/pjlib-util/src/pjlib-util/srv_resolver.c
@@ -368,7 +368,9 @@ static void build_server_entries(pj_dns_srv_async_query *query_job,
continue;
}
- if (pj_inet_aton(&query_job->srv[i].target_name, &addr) != 0) {
+ if (pj_inet_pton(pj_AF_INET(), &query_job->srv[i].target_name,
+ &addr) == PJ_SUCCESS)
+ {
query_job->srv[i].addr[query_job->srv[i].addr_cnt++] = addr;
++query_job->host_resolved;
}
@@ -385,12 +387,13 @@ static void build_server_entries(pj_dns_srv_async_query *query_job,
(query_job->srv_cnt ? ':' : ' ')));
for (i=0; i<query_job->srv_cnt; ++i) {
- const char *addr;
+ char addr[PJ_INET_ADDRSTRLEN];
- if (query_job->srv[i].addr_cnt != 0)
- addr = pj_inet_ntoa(query_job->srv[i].addr[0]);
- else
- addr = "-";
+ if (query_job->srv[i].addr_cnt != 0) {
+ pj_inet_ntop(pj_AF_INET(), &query_job->srv[i].addr[0],
+ addr, sizeof(addr));
+ } else
+ pj_ansi_strcpy(addr, "-");
PJ_LOG(5,(query_job->objname,
" %d: SRV %d %d %d %.*s (%s)",
@@ -547,6 +550,7 @@ static void dns_callback(void *user_data,
/* Check that we really have answer */
if (status==PJ_SUCCESS && pkt->hdr.anscount != 0) {
+ char addr[PJ_INET_ADDRSTRLEN];
pj_dns_a_record rec;
/* Parse response */
@@ -573,7 +577,8 @@ static void dns_callback(void *user_data,
"DNS A for %.*s: %s",
(int)srv->target_name.slen,
srv->target_name.ptr,
- pj_inet_ntoa(rec.addr[0])));
+ pj_inet_ntop2(pj_AF_INET(), &rec.addr[0],
+ addr, sizeof(addr))));
}
/* Check for multiple IP addresses */
@@ -585,7 +590,8 @@ static void dns_callback(void *user_data,
"Additional DNS A for %.*s: %s",
(int)srv->target_name.slen,
srv->target_name.ptr,
- pj_inet_ntoa(rec.addr[i])));
+ pj_inet_ntop2(pj_AF_INET(), &rec.addr[i],
+ addr, sizeof(addr))));
}
} else if (status != PJ_SUCCESS) {
diff --git a/pjlib-util/src/pjlib-util/stun_simple_client.c b/pjlib-util/src/pjlib-util/stun_simple_client.c
index 9ba18dfd..7c247da7 100644
--- a/pjlib-util/src/pjlib-util/stun_simple_client.c
+++ b/pjlib-util/src/pjlib-util/stun_simple_client.c
@@ -33,7 +33,6 @@ static int stun_timer[] = {500, 500, 500, 500 };
#define STUN_MAGIC 0x2112A442
#define THIS_FILE "stun_client.c"
-#define LOG_ADDR(addr) pj_inet_ntoa(addr.sin_addr), pj_ntohs(addr.sin_port)
#define TRACE_(x) PJ_LOG(6,x)
diff --git a/pjlib/src/pjlib-test/echo_clt.c b/pjlib/src/pjlib-test/echo_clt.c
index 12c4e035..6fd5eb8e 100644
--- a/pjlib/src/pjlib-test/echo_clt.c
+++ b/pjlib/src/pjlib-test/echo_clt.c
@@ -57,6 +57,7 @@ static int echo_client_thread(void *arg)
pj_sock_t sock;
char send_buf[BUF_SIZE];
char recv_buf[BUF_SIZE];
+ char addr[PJ_INET_ADDRSTRLEN];
pj_sockaddr_in addr;
pj_str_t s;
pj_status_t rc;
@@ -87,7 +88,8 @@ static int echo_client_thread(void *arg)
}
PJ_LOG(3,("", "...socket connected to %s:%d",
- pj_inet_ntoa(addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &addr.sin_addr,
+ addr, sizeof(addr)),
pj_ntohs(addr.sin_port)));
pj_memset(send_buf, 'A', BUF_SIZE);
diff --git a/pjmedia/src/pjmedia/endpoint.c b/pjmedia/src/pjmedia/endpoint.c
index 82d7d568..f052b927 100644
--- a/pjmedia/src/pjmedia/endpoint.c
+++ b/pjmedia/src/pjmedia/endpoint.c
@@ -764,6 +764,7 @@ PJ_DEF(pj_status_t) pjmedia_endpt_create_base_sdp( pjmedia_endpt *endpt,
const pj_sockaddr *origin,
pjmedia_sdp_session **p_sdp)
{
+ char tmp_addr[PJ_INET6_ADDRSTRLEN];
pj_time_val tv;
pjmedia_sdp_session *sdp;
@@ -779,20 +780,16 @@ PJ_DEF(pj_status_t) pjmedia_endpt_create_base_sdp( pjmedia_endpt *endpt,
if (origin->addr.sa_family == pj_AF_INET()) {
sdp->origin.addr_type = STR_IP4;
- pj_strdup2(pool, &sdp->origin.addr,
- pj_inet_ntoa(origin->ipv4.sin_addr));
} else if (origin->addr.sa_family == pj_AF_INET6()) {
- char tmp_addr[PJ_INET6_ADDRSTRLEN];
-
sdp->origin.addr_type = STR_IP6;
- pj_strdup2(pool, &sdp->origin.addr,
- pj_sockaddr_print(origin, tmp_addr, sizeof(tmp_addr), 0));
-
} else {
pj_assert(!"Invalid address family");
return PJ_EAFNOTSUP;
}
+ pj_strdup2(pool, &sdp->origin.addr,
+ pj_sockaddr_print(origin, tmp_addr, sizeof(tmp_addr), 0));
+
if (sess_name)
pj_strdup(pool, &sdp->name, sess_name);
else
diff --git a/pjmedia/src/pjmedia/sdp.c b/pjmedia/src/pjmedia/sdp.c
index 8bf7d805..a9afe19f 100644
--- a/pjmedia/src/pjmedia/sdp.c
+++ b/pjmedia/src/pjmedia/sdp.c
@@ -431,6 +431,7 @@ PJ_DEF(pjmedia_sdp_attr*) pjmedia_sdp_attr_create_rtcp(pj_pool_t *pool,
enum {
ATTR_LEN = PJ_INET6_ADDRSTRLEN+16
};
+ char tmp_addr[PJ_INET6_ADDRSTRLEN];
pjmedia_sdp_attr *attr;
attr = PJ_POOL_ALLOC_T(pool, pjmedia_sdp_attr);
@@ -440,10 +441,10 @@ PJ_DEF(pjmedia_sdp_attr*) pjmedia_sdp_attr_create_rtcp(pj_pool_t *pool,
attr->value.slen =
pj_ansi_snprintf(attr->value.ptr, ATTR_LEN,
"%u IN IP4 %s",
- pj_ntohs(a->ipv4.sin_port),
- pj_inet_ntoa(a->ipv4.sin_addr));
+ pj_sockaddr_get_port(a),
+ pj_sockaddr_print(a, tmp_addr,
+ sizeof(tmp_addr), 0));
} else if (a->addr.sa_family == pj_AF_INET6()) {
- char tmp_addr[PJ_INET6_ADDRSTRLEN];
attr->value.slen =
pj_ansi_snprintf(attr->value.ptr, ATTR_LEN,
"%u IN IP6 %s",
diff --git a/pjnath/src/pjnath/nat_detect.c b/pjnath/src/pjnath/nat_detect.c
index a4fa588e..09be94a7 100644
--- a/pjnath/src/pjnath/nat_detect.c
+++ b/pjnath/src/pjnath/nat_detect.c
@@ -214,6 +214,7 @@ PJ_DEF(pj_status_t) pj_stun_detect_nat_type(const pj_sockaddr_in *server,
pj_stun_session_cb sess_cb;
pj_ioqueue_callback ioqueue_cb;
int addr_len;
+ char addr[PJ_INET_ADDRSTRLEN];
pj_status_t status;
PJ_ASSERT_RETURN(server && stun_cfg, PJ_EINVAL);
@@ -286,11 +287,13 @@ PJ_DEF(pj_status_t) pj_stun_detect_nat_type(const pj_sockaddr_in *server,
goto on_error;
PJ_LOG(5,(sess->pool->obj_name, "Local address is %s:%d",
- pj_inet_ntoa(sess->local_addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &sess->local_addr.sin_addr,
+ addr, sizeof(addr)),
pj_ntohs(sess->local_addr.sin_port)));
PJ_LOG(5,(sess->pool->obj_name, "Server set to %s:%d",
- pj_inet_ntoa(server->sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &server->sin_addr, addr,
+ sizeof(addr)),
pj_ntohs(server->sin_port)));
/*
@@ -814,6 +817,7 @@ static pj_status_t send_test(nat_detect_session *sess,
pj_uint32_t change_flag)
{
pj_uint32_t magic, tsx_id[3];
+ char addr[PJ_INET_ADDRSTRLEN];
pj_status_t status;
sess->result[test_id].executed = PJ_TRUE;
@@ -852,7 +856,8 @@ static pj_status_t send_test(nat_detect_session *sess,
PJ_LOG(5,(sess->pool->obj_name,
"Performing %s to %s:%d",
test_names[test_id],
- pj_inet_ntoa(sess->cur_server->sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &sess->cur_server->sin_addr,
+ addr, sizeof(addr)),
pj_ntohs(sess->cur_server->sin_port)));
/* Send the request */
diff --git a/pjnath/src/pjnath/stun_msg_dump.c b/pjnath/src/pjnath/stun_msg_dump.c
index 6428d97e..29f37c54 100644
--- a/pjnath/src/pjnath/stun_msg_dump.c
+++ b/pjnath/src/pjnath/stun_msg_dump.c
@@ -86,6 +86,7 @@ static int print_attr(char *buffer, unsigned length,
case PJ_STUN_ATTR_XOR_REFLECTED_FROM:
case PJ_STUN_ATTR_ALTERNATE_SERVER:
{
+ char addr[PJ_INET6_ADDRSTRLEN];
const pj_stun_sockaddr_attr *attr;
attr = (const pj_stun_sockaddr_attr*)ahdr;
@@ -93,8 +94,9 @@ static int print_attr(char *buffer, unsigned length,
if (attr->sockaddr.addr.sa_family == pj_AF_INET()) {
len = pj_ansi_snprintf(p, end-p,
", IPv4 addr=%s:%d\n",
- pj_inet_ntoa(attr->sockaddr.ipv4.sin_addr),
- pj_ntohs(attr->sockaddr.ipv4.sin_port));
+ pj_sockaddr_print(&attr->sockaddr,
+ addr, sizeof(addr),0),
+ pj_sockaddr_get_port(&attr->sockaddr));
} else if (attr->sockaddr.addr.sa_family == pj_AF_INET6()) {
len = pj_ansi_snprintf(p, end-p,
diff --git a/pjsip-apps/src/samples/proxy.h b/pjsip-apps/src/samples/proxy.h
index 93be0a8e..cf963175 100644
--- a/pjsip-apps/src/samples/proxy.h
+++ b/pjsip-apps/src/samples/proxy.h
@@ -252,21 +252,27 @@ static pj_status_t init_proxy(void)
* to be added in Record-Route.
*/
if (pj_gethostip(pj_AF_INET(), &pri_addr)==PJ_SUCCESS) {
- pj_strdup2(global.pool, &global.name[global.name_cnt].host,
- pj_inet_ntoa(pri_addr.ipv4.sin_addr));
+ char addr[PJ_INET_ADDRSTRLEN];
+ pj_inet_ntop(pj_AF_INET(), &pri_addr.ipv4.sin_addr, addr,
+ sizeof(addr));
+ pj_strdup2(global.pool, &global.name[global.name_cnt].host, addr);
global.name[global.name_cnt].port = global.port;
global.name_cnt++;
}
/* Get the rest of IP interfaces */
- if (pj_enum_ip_interface(pj_AF_INET(), &addr_cnt, addr_list) == PJ_SUCCESS) {
+ if (pj_enum_ip_interface(pj_AF_INET(), &addr_cnt, addr_list) == PJ_SUCCESS)
+ {
for (i=0; i<addr_cnt; ++i) {
-
+ char addr[PJ_INET_ADDRSTRLEN];
+
if (addr_list[i].ipv4.sin_addr.s_addr == pri_addr.ipv4.sin_addr.s_addr)
continue;
+ pj_inet_ntop(pj_AF_INET(), &addr_list[i].ipv4.sin_addr, addr,
+ sizeof(addr));
pj_strdup2(global.pool, &global.name[global.name_cnt].host,
- pj_inet_ntoa(addr_list[i].ipv4.sin_addr));
+ addr);
global.name[global.name_cnt].port = global.port;
global.name_cnt++;
}
diff --git a/pjsip-apps/src/samples/siprtp.c b/pjsip-apps/src/samples/siprtp.c
index 258d4765..a3b11f42 100644
--- a/pjsip-apps/src/samples/siprtp.c
+++ b/pjsip-apps/src/samples/siprtp.c
@@ -847,7 +847,7 @@ static int sip_worker_thread(void *arg)
/* Init application options */
static pj_status_t init_options(int argc, char *argv[])
{
- static char ip_addr[32];
+ static char ip_addr[PJ_INET_ADDRSTRLEN];
static char local_uri[64];
enum { OPT_START,
@@ -892,8 +892,8 @@ static pj_status_t init_options(int argc, char *argv[])
hostname = pj_gethostname();
pj_sockaddr_in_init(&tmp_addr, hostname, 0);
- addr = pj_inet_ntoa(tmp_addr.sin_addr);
- pj_ansi_strcpy(ip_addr, addr);
+ pj_inet_ntop(pj_AF_INET(), &tmp_addr.sin_addr, ip_addr,
+ sizeof(ip_addr));
}
/* Init defaults */
diff --git a/pjsip-apps/src/samples/streamutil.c b/pjsip-apps/src/samples/streamutil.c
index ee337eec..315f872a 100644
--- a/pjsip-apps/src/samples/streamutil.c
+++ b/pjsip-apps/src/samples/streamutil.c
@@ -230,6 +230,7 @@ int main(int argc, char *argv[])
pjmedia_stream *stream = NULL;
pjmedia_port *stream_port;
char tmp[10];
+ char addr[PJ_INET_ADDRSTRLEN];
pj_status_t status;
#if defined(PJMEDIA_HAS_SRTP) && (PJMEDIA_HAS_SRTP != 0)
@@ -577,13 +578,15 @@ int main(int argc, char *argv[])
local_port);
else if (dir == PJMEDIA_DIR_ENCODING)
printf("Stream is active, dir is send-only, sending to %s:%d\n",
- pj_inet_ntoa(remote_addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &remote_addr.sin_addr, addr,
+ sizeof(addr)),
pj_ntohs(remote_addr.sin_port));
else
printf("Stream is active, send/recv, local port is %d, "
"sending to %s:%d\n",
local_port,
- pj_inet_ntoa(remote_addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &remote_addr.sin_addr, addr,
+ sizeof(addr)),
pj_ntohs(remote_addr.sin_port));
diff --git a/pjsip-apps/src/samples/vid_streamutil.c b/pjsip-apps/src/samples/vid_streamutil.c
index 44c4f899..fd0ac3cc 100644
--- a/pjsip-apps/src/samples/vid_streamutil.c
+++ b/pjsip-apps/src/samples/vid_streamutil.c
@@ -347,6 +347,7 @@ int main(int argc, char *argv[])
pj_pool_t *pool;
pjmedia_vid_stream *stream = NULL;
pjmedia_port *enc_port, *dec_port;
+ char addr[PJ_INET_ADDRSTRLEN];
pj_status_t status;
pjmedia_vid_port *capture=NULL, *renderer=NULL;
@@ -859,13 +860,15 @@ int main(int argc, char *argv[])
local_port);
else if (dir == PJMEDIA_DIR_ENCODING)
printf("Stream is active, dir is send-only, sending to %s:%d\n",
- pj_inet_ntoa(remote_addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &remote_addr.sin_addr, addr,
+ sizeof(addr)),
pj_ntohs(remote_addr.sin_port));
else
printf("Stream is active, send/recv, local port is %d, "
"sending to %s:%d\n",
local_port,
- pj_inet_ntoa(remote_addr.sin_addr),
+ pj_inet_ntop2(pj_AF_INET(), &remote_addr.sin_addr, addr,
+ sizeof(addr)),
pj_ntohs(remote_addr.sin_port));
if (dir & PJMEDIA_DIR_ENCODING)
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;