diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-08-12 12:46:17 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-09-05 22:42:17 +0200 |
commit | b62983d3c3dc7e0f4c5ebbf014a9e02527868cfd (patch) | |
tree | 9a49a8b0f093d7bc4c45ac0befc76f1bbaafacfd /lib | |
parent | 881e97ed00070a0e68382cf86a0e8ea87f6d3cb3 (diff) |
lib/in46_addr: Add in46a_ntoa() function, similar to inet_ntoa()
Change-Id: I752b7033a106a74dc219047da5c3a7ad3cd3602e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/in46_addr.c | 10 | ||||
-rw-r--r-- | lib/in46_addr.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/in46_addr.c b/lib/in46_addr.c index 8f5cc09..4e7cbcd 100644 --- a/lib/in46_addr.c +++ b/lib/in46_addr.c @@ -69,6 +69,16 @@ const char *in46a_ntop(const struct in46_addr *in, char *dst, socklen_t dst_size return inet_ntop(af, (const void *) &in->v4, dst, dst_size); } +/* like inet_ntoa() */ +const char *in46a_ntoa(const struct in46_addr *in46) +{ + static char addrstr_buf[256]; + if (in46a_ntop(in46, addrstr_buf, sizeof(addrstr_buf)) < 0) + return "INVALID"; + else + return addrstr_buf; +} + /*! Determine if two in46_addr are equal or not * \returns 1 in case they are equal; 0 otherwise */ int in46a_equal(const struct in46_addr *a, const struct in46_addr *b) diff --git a/lib/in46_addr.h b/lib/in46_addr.h index 0afd2b4..1614c1d 100644 --- a/lib/in46_addr.h +++ b/lib/in46_addr.h @@ -17,6 +17,7 @@ struct in46_addr { extern int in46a_to_af(const struct in46_addr *in); extern int in46a_to_sas(struct sockaddr_storage *out, const struct in46_addr *in); extern const char *in46a_ntop(const struct in46_addr *in, char *dst, socklen_t dst_size); +extern const char *in46a_ntoa(const struct in46_addr *in46); extern int in46a_equal(const struct in46_addr *a, const struct in46_addr *b); extern int in46a_prefix_equal(const struct in46_addr *a, const struct in46_addr *b); extern int in46a_within_mask(const struct in46_addr *addr, const struct in46_addr *net, size_t prefixlen); |