summaryrefslogtreecommitdiff
path: root/pjlib-util
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 /pjlib-util
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 'pjlib-util')
-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
6 files changed, 43 insertions, 21 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)