diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2019-10-24 04:08:16 +0200 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2019-11-11 20:14:01 +0100 |
commit | d0e8d6b9b566e9f0be64de0021b7c489e601a2fa (patch) | |
tree | 72b18b9605c0777d9f6bad9b8e143cfba67d4879 /include/osmocom | |
parent | 83d691048b8d181da610ddd45e9a7091310bcd28 (diff) |
fix OSMO_SOCKADDR_STR_FMT for IPv6
The format prints IP:port separated by a colon, which of course is confusing
when the IPv6 address itself contains mostly colons. The new format adds square
braces.
cafe:face::1:42 -> [cafe:face::1]:42
The IPv4 format remains unchanged:
1.2.3.4:42
Change-Id: I161f8427729ae31be0eac719b7a4a9290715e37f
Diffstat (limited to 'include/osmocom')
-rw-r--r-- | include/osmocom/core/sockaddr_str.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/osmocom/core/sockaddr_str.h b/include/osmocom/core/sockaddr_str.h index d47b2a4e..6dd428c7 100644 --- a/include/osmocom/core/sockaddr_str.h +++ b/include/osmocom/core/sockaddr_str.h @@ -61,8 +61,12 @@ struct osmo_sockaddr_str { * struct osmo_sockaddr_str *my_sockaddr_str = ...; * printf("got " OSMO_SOCKADDR_STR_FMT "\n", OSMO_SOCKADDR_STR_FMT_ARGS(my_sockaddr_str)); */ -#define OSMO_SOCKADDR_STR_FMT "%s:%u" -#define OSMO_SOCKADDR_STR_FMT_ARGS(R) ((R)? (R)->ip : "NULL"), ((R)? (R)->port : 0) +#define OSMO_SOCKADDR_STR_FMT "%s%s%s:%u" +#define OSMO_SOCKADDR_STR_FMT_ARGS(R) \ + ((R) && (R)->af == AF_INET6)? "[" : "", \ + (R)? (R)->ip : "NULL", \ + ((R) && (R)->af == AF_INET6)? "]" : "", \ + (R)? (R)->port : 0 bool osmo_sockaddr_str_is_set(const struct osmo_sockaddr_str *sockaddr_str); bool osmo_sockaddr_str_is_nonzero(const struct osmo_sockaddr_str *sockaddr_str); |