This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
neels gerrit-no-reply at lists.osmocom.orgneels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/16030 ) Change subject: osmo_sockaddr_str: fix 32bit addr mixup of host/network byte order ...................................................................... osmo_sockaddr_str: fix 32bit addr mixup of host/network byte order Of course both v4 and v6 addresses are kept in network byte order when represented in bytes, but when writing, I somehow must have assumed that inet_pton() returns host byte order. Fix that mixup: osmo_sockaddr_str_from_32() and osmo_sockaddr_str_to_32() actually use network byte order. Fix the doc strings. osmo_sockaddr_str_from_32n() and osmo_sockaddr_str_to_32n() actually use host byte order, though reflecting 'n' in their name. Deprecate these. Add osmo_sockaddr_str_from_32h() and osmo_sockaddr_str_to_32h() that are identical to the "32n" variants, but without the confusing names. sockaddr_str_test: use hexdump instead of %x to show the osmo_sockaddr_str_to_32*() conversions so that the error becomes obvious. (Printing %x reverses the bytes again and made it look correct.) Change-Id: I3cf150cc0cc06dd36039fbde091bc71b01697322 --- M TODO-RELEASE M include/osmocom/core/sockaddr_str.h M src/sockaddr_str.c M tests/sockaddr_str/sockaddr_str_test.c M tests/sockaddr_str/sockaddr_str_test.ok 5 files changed, 92 insertions(+), 66 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/16030/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 692bdc1..be858ae 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -11,3 +11,7 @@ core struct osmo_tdef fields min_val,max_val added, ABI break (arrays of structs used in programs) gsm API added osmo_gsm48_rfpowercap2powerclass() gb API added bssgp_bvc_ctx_free() +core osmo_sockaddr_str_from_32n(), + osmo_sockaddr_str_to_32n() Deprecate: named 'n' but use host byte order. +core osmo_sockaddr_str_from_32h(), + osmo_sockaddr_str_to_32h() New, use host byte order and are named appropriately. diff --git a/include/osmocom/core/sockaddr_str.h b/include/osmocom/core/sockaddr_str.h index d7a8cdf..e42216a 100644 --- a/include/osmocom/core/sockaddr_str.h +++ b/include/osmocom/core/sockaddr_str.h @@ -31,6 +31,7 @@ #include <stdint.h> #include <stdbool.h> #include <arpa/inet.h> +#include <osmocom/core/defs.h> struct in_addr; struct in6_addr; @@ -77,7 +78,7 @@ int osmo_sockaddr_str_from_in_addr(struct osmo_sockaddr_str *sockaddr_str, const struct in_addr *addr, uint16_t port); int osmo_sockaddr_str_from_in6_addr(struct osmo_sockaddr_str *sockaddr_str, const struct in6_addr *addr, uint16_t port); int osmo_sockaddr_str_from_32(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port); -int osmo_sockaddr_str_from_32n(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port); +int osmo_sockaddr_str_from_32h(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port); int osmo_sockaddr_str_from_sockaddr_in(struct osmo_sockaddr_str *sockaddr_str, const struct sockaddr_in *src); int osmo_sockaddr_str_from_sockaddr_in6(struct osmo_sockaddr_str *sockaddr_str, const struct sockaddr_in6 *src); int osmo_sockaddr_str_from_sockaddr(struct osmo_sockaddr_str *sockaddr_str, const struct sockaddr_storage *src); @@ -85,9 +86,14 @@ int osmo_sockaddr_str_to_in_addr(const struct osmo_sockaddr_str *sockaddr_str, struct in_addr *dst); int osmo_sockaddr_str_to_in6_addr(const struct osmo_sockaddr_str *sockaddr_str, struct in6_addr *dst); int osmo_sockaddr_str_to_32(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip); -int osmo_sockaddr_str_to_32n(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip); +int osmo_sockaddr_str_to_32h(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip); int osmo_sockaddr_str_to_sockaddr_in(const struct osmo_sockaddr_str *sockaddr_str, struct sockaddr_in *dst); int osmo_sockaddr_str_to_sockaddr_in6(const struct osmo_sockaddr_str *sockaddr_str, struct sockaddr_in6 *dst); int osmo_sockaddr_str_to_sockaddr(const struct osmo_sockaddr_str *sockaddr_str, struct sockaddr_storage *dst); +int osmo_sockaddr_str_from_32n(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port) + OSMO_DEPRECATED("osmo_sockaddr_str_from_32n() actually uses *host* byte order. Use osmo_sockaddr_str_from_32h() instead"); +int osmo_sockaddr_str_to_32n(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip) + OSMO_DEPRECATED("osmo_sockaddr_str_to_32n() actually uses *host* byte order. Use osmo_sockaddr_str_to_32h() instead"); + /*! @} */ diff --git a/src/sockaddr_str.c b/src/sockaddr_str.c index 7a81866..72534b3 100644 --- a/src/sockaddr_str.c +++ b/src/sockaddr_str.c @@ -258,7 +258,7 @@ return 0; } -/*! Convert IPv4 address from 32bit host-byte-order to osmo_sockaddr_str, and set port. +/*! Convert IPv4 address from 32bit network-byte-order to osmo_sockaddr_str, and set port. * \param[out] sockaddr_str The instance to copy to. * \param[in] addr 32bit IPv4 address data. * \param[in] port Port number. @@ -273,19 +273,26 @@ return osmo_sockaddr_str_from_in_addr(sockaddr_str, &addr, port); } -/*! Convert IPv4 address from 32bit network-byte-order to osmo_sockaddr_str, and set port. +/*! Convert IPv4 address from 32bit host-byte-order to osmo_sockaddr_str, and set port. * \param[out] sockaddr_str The instance to copy to. * \param[in] addr 32bit IPv4 address data. * \param[in] port Port number. * \return 0 on success, negative on error. */ -int osmo_sockaddr_str_from_32n(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port) +int osmo_sockaddr_str_from_32h(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port) { if (!sockaddr_str) return -ENOSPC; return osmo_sockaddr_str_from_32(sockaddr_str, osmo_ntohl(ip), port); } +/*! DEPRECATED: the name suggests a conversion from network byte order, but actually converts from host byte order. Use + * osmo_sockaddr_str_from_32 for network byte order and osmo_sockaddr_str_from_32h for host byte order. */ +int osmo_sockaddr_str_from_32n(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port) +{ + return osmo_sockaddr_str_from_32h(sockaddr_str, ip, port); +} + /*! Convert IPv4 address and port to osmo_sockaddr_str. * \param[out] sockaddr_str The instance to copy to. * \param[in] src IPv4 address and port data. @@ -379,9 +386,9 @@ return 0; } -/*! Convert osmo_sockaddr_str address string to IPv4 address data in host-byte-order. +/*! Convert osmo_sockaddr_str address string to IPv4 address data in network-byte-order. * \param[in] sockaddr_str The instance to convert the IP of. - * \param[out] dst IPv4 address data in 32bit host-byte-order format to write to. + * \param[out] dst IPv4 address data in 32bit network-byte-order format to write to. * \return 0 on success, negative on error (e.g. invalid IPv4 address string). */ int osmo_sockaddr_str_to_32(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip) @@ -399,12 +406,12 @@ return 0; } -/*! Convert osmo_sockaddr_str address string to IPv4 address data in network-byte-order. +/*! Convert osmo_sockaddr_str address string to IPv4 address data in host-byte-order. * \param[in] sockaddr_str The instance to convert the IP of. - * \param[out] dst IPv4 address data in 32bit network-byte-order format to write to. + * \param[out] dst IPv4 address data in 32bit host-byte-order format to write to. * \return 0 on success, negative on error (e.g. invalid IPv4 address string). */ -int osmo_sockaddr_str_to_32n(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip) +int osmo_sockaddr_str_to_32h(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip) { int rc; uint32_t ip_h; @@ -419,6 +426,13 @@ return 0; } +/*! DEPRECATED: the name suggests a conversion to network byte order, but actually converts to host byte order. Use + * osmo_sockaddr_str_to_32() for network byte order and osmo_sockaddr_str_to_32h() for host byte order. */ +int osmo_sockaddr_str_to_32n(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip) +{ + return osmo_sockaddr_str_to_32h(sockaddr_str, ip); +} + /*! Convert osmo_sockaddr_str address string and port to IPv4 address and port data. * \param[in] sockaddr_str The instance to convert the IP and port of. * \param[out] dst IPv4 address and port data to write to. diff --git a/tests/sockaddr_str/sockaddr_str_test.c b/tests/sockaddr_str/sockaddr_str_test.c index f1e844e..c4827e0 100644 --- a/tests/sockaddr_str/sockaddr_str_test.c +++ b/tests/sockaddr_str/sockaddr_str_test.c @@ -149,7 +149,8 @@ uint32_t a = 0; rc = osmo_sockaddr_str_to_32(x, &a); - printf(" osmo_sockaddr_str_to_32() %s uint32_t=0x%x\n", rc_name(rc), a); + printf(" osmo_sockaddr_str_to_32() %s uint8_t[4]=[ %s]\n", rc_name(rc), + osmo_hexdump((void*)&a, sizeof(a))); if (rc == 0) { struct osmo_sockaddr_str back; @@ -164,13 +165,14 @@ { uint32_t a = 0; - rc = osmo_sockaddr_str_to_32n(x, &a); - printf(" osmo_sockaddr_str_to_32n() %s uint32_t=0x%x\n", rc_name(rc), a); + rc = osmo_sockaddr_str_to_32h(x, &a); + printf(" osmo_sockaddr_str_to_32h() %s uint8_t[4]=[ %s]\n", rc_name(rc), + osmo_hexdump((void*)&a, sizeof(a))); if (rc == 0) { struct osmo_sockaddr_str back; - rc = osmo_sockaddr_str_from_32n(&back, a, x->port); - printf(" -> osmo_sockaddr_str_from_32n() %s ", rc_name(rc)); + rc = osmo_sockaddr_str_from_32h(&back, a, x->port); + printf(" -> osmo_sockaddr_str_from_32h() %s ", rc_name(rc)); dump_oip(&back); if (memcmp(x, &back, sizeof(back))) printf(" DIFFERS!\n"); diff --git a/tests/sockaddr_str/sockaddr_str_test.ok b/tests/sockaddr_str/sockaddr_str_test.ok index 31f630f..910e919 100644 --- a/tests/sockaddr_str/sockaddr_str_test.ok +++ b/tests/sockaddr_str/sockaddr_str_test.ok @@ -7,10 +7,10 @@ osmo_sockaddr_str_to_in_addr() rc == 0 in_addr=01020304 -> osmo_sockaddr_str_from_in_addr() rc == 0 { .af = AF_INET, .ip = "1.2.3.4", .port = 5 } osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc == 0 uint32_t=0x4030201 + osmo_sockaddr_str_to_32() rc == 0 uint8_t[4]=[ 01 02 03 04 ] -> osmo_sockaddr_str_from_32() rc == 0 { .af = AF_INET, .ip = "1.2.3.4", .port = 5 } - osmo_sockaddr_str_to_32n() rc == 0 uint32_t=0x1020304 - -> osmo_sockaddr_str_from_32n() rc == 0 { .af = AF_INET, .ip = "1.2.3.4", .port = 5 } + osmo_sockaddr_str_to_32h() rc == 0 uint8_t[4]=[ 04 03 02 01 ] + -> osmo_sockaddr_str_from_32h() rc == 0 { .af = AF_INET, .ip = "1.2.3.4", .port = 5 } osmo_sockaddr_str_to_sockaddr_in() rc == 0 sockaddr_in=02000005010203040000000000000000 -> osmo_sockaddr_str_from_sockaddr_in() rc == 0 { .af = AF_INET, .ip = "1.2.3.4", .port = 5 } osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=00000000000000000000000000000000000000000000000000000000 @@ -26,10 +26,10 @@ osmo_sockaddr_str_to_in_addr() rc == 0 in_addr=00000000 -> osmo_sockaddr_str_from_in_addr() rc == 0 { .af = AF_INET, .ip = "0.0.0.0", .port = 0 } osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc == 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc == 0 uint8_t[4]=[ 00 00 00 00 ] -> osmo_sockaddr_str_from_32() rc == 0 { .af = AF_INET, .ip = "0.0.0.0", .port = 0 } - osmo_sockaddr_str_to_32n() rc == 0 uint32_t=0x0 - -> osmo_sockaddr_str_from_32n() rc == 0 { .af = AF_INET, .ip = "0.0.0.0", .port = 0 } + osmo_sockaddr_str_to_32h() rc == 0 uint8_t[4]=[ 00 00 00 00 ] + -> osmo_sockaddr_str_from_32h() rc == 0 { .af = AF_INET, .ip = "0.0.0.0", .port = 0 } osmo_sockaddr_str_to_sockaddr_in() rc == 0 sockaddr_in=02000000000000000000000000000000 -> osmo_sockaddr_str_from_sockaddr_in() rc == 0 { .af = AF_INET, .ip = "0.0.0.0", .port = 0 } osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=00000000000000000000000000000000000000000000000000000000 @@ -45,10 +45,10 @@ osmo_sockaddr_str_to_in_addr() rc == 0 in_addr=ffffffff -> osmo_sockaddr_str_from_in_addr() rc == 0 { .af = AF_INET, .ip = "255.255.255.255", .port = 65535 } osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc == 0 uint32_t=0xffffffff + osmo_sockaddr_str_to_32() rc == 0 uint8_t[4]=[ ff ff ff ff ] -> osmo_sockaddr_str_from_32() rc == 0 { .af = AF_INET, .ip = "255.255.255.255", .port = 65535 } - osmo_sockaddr_str_to_32n() rc == 0 uint32_t=0xffffffff - -> osmo_sockaddr_str_from_32n() rc == 0 { .af = AF_INET, .ip = "255.255.255.255", .port = 65535 } + osmo_sockaddr_str_to_32h() rc == 0 uint8_t[4]=[ ff ff ff ff ] + -> osmo_sockaddr_str_from_32h() rc == 0 { .af = AF_INET, .ip = "255.255.255.255", .port = 65535 } osmo_sockaddr_str_to_sockaddr_in() rc == 0 sockaddr_in=0200ffffffffffff0000000000000000 -> osmo_sockaddr_str_from_sockaddr_in() rc == 0 { .af = AF_INET, .ip = "255.255.255.255", .port = 65535 } osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=00000000000000000000000000000000000000000000000000000000 @@ -63,8 +63,8 @@ osmo_sockaddr_str_is_nonzero() = false osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=02000001000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=00000000000000000000000000000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr() rc < 0 sockaddr_storage=0200000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -77,8 +77,8 @@ osmo_sockaddr_str_is_nonzero() = false osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=02000001000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=00000000000000000000000000000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr() rc < 0 sockaddr_storage=0200000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -92,8 +92,8 @@ osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc == 0 in6_addr=00010002000300000000000000000004 -> osmo_sockaddr_str_from_in6_addr() rc == 0 { .af = AF_INET6, .ip = "1:2:3::4", .port = 5 } - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc == 0 sockaddr_in6=0a000005000000000001000200030000000000000000000400000000 -> osmo_sockaddr_str_from_sockaddr_in6() rc == 0 { .af = AF_INET6, .ip = "1:2:3::4", .port = 5 } @@ -109,8 +109,8 @@ osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc == 0 in6_addr=00000000000000000000000000000000 -> osmo_sockaddr_str_from_in6_addr() rc == 0 { .af = AF_INET6, .ip = "::", .port = 0 } - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc == 0 sockaddr_in6=0a000000000000000000000000000000000000000000000000000000 -> osmo_sockaddr_str_from_sockaddr_in6() rc == 0 { .af = AF_INET6, .ip = "::", .port = 0 } @@ -126,8 +126,8 @@ osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc == 0 in6_addr=00000000000000000000000000000001 -> osmo_sockaddr_str_from_in6_addr() rc == 0 { .af = AF_INET6, .ip = "::1", .port = 0 } - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc == 0 sockaddr_in6=0a000000000000000000000000000000000000000000000100000000 -> osmo_sockaddr_str_from_sockaddr_in6() rc == 0 { .af = AF_INET6, .ip = "::1", .port = 0 } @@ -143,8 +143,8 @@ osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc == 0 in6_addr=ffffffffffffffffffffffffffffffff -> osmo_sockaddr_str_from_in6_addr() rc == 0 { .af = AF_INET6, .ip = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", .port = 65535 } - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc == 0 sockaddr_in6=0a00ffff00000000ffffffffffffffffffffffffffffffff00000000 -> osmo_sockaddr_str_from_sockaddr_in6() rc == 0 { .af = AF_INET6, .ip = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", .port = 65535 } @@ -161,8 +161,8 @@ osmo_sockaddr_str_to_in6_addr() rc == 0 in6_addr=ffffffffffffffffffffffffffffffff -> osmo_sockaddr_str_from_in6_addr() rc == 0 { .af = AF_INET6, .ip = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", .port = 65535 } DIFFERS! - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc == 0 sockaddr_in6=0a00ffff00000000ffffffffffffffffffffffffffffffff00000000 -> osmo_sockaddr_str_from_sockaddr_in6() rc == 0 { .af = AF_INET6, .ip = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", .port = 65535 } @@ -179,8 +179,8 @@ osmo_sockaddr_str_is_nonzero() = false osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=0a000001000000000000000000000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr() rc < 0 sockaddr_storage=0a00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -193,8 +193,8 @@ osmo_sockaddr_str_is_nonzero() = false osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=0a000001000000000000000000000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr() rc < 0 sockaddr_storage=0a00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -207,8 +207,8 @@ osmo_sockaddr_str_is_nonzero() = false osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=0a000005000000000000000000000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr() rc < 0 sockaddr_storage=0a00000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -222,8 +222,8 @@ osmo_sockaddr_str_is_nonzero() = false osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=02000005000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=00000000000000000000000000000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr() rc < 0 sockaddr_storage=0200000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -237,8 +237,8 @@ osmo_sockaddr_str_is_nonzero() = false osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=00000000000000000000000000000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr() rc < 0 sockaddr_storage=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -252,8 +252,8 @@ osmo_sockaddr_str_is_nonzero() = false osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=02000005000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=00000000000000000000000000000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr() rc < 0 sockaddr_storage=0200000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -266,8 +266,8 @@ osmo_sockaddr_str_is_nonzero() = false osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=0a000005000000000000000000000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr() rc < 0 sockaddr_storage=0a00000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -281,10 +281,10 @@ osmo_sockaddr_str_to_in_addr() rc == 0 in_addr=01020304 -> osmo_sockaddr_str_from_in_addr() rc == 0 { .af = AF_INET, .ip = "1.2.3.4", .port = 0 } osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc == 0 uint32_t=0x4030201 + osmo_sockaddr_str_to_32() rc == 0 uint8_t[4]=[ 01 02 03 04 ] -> osmo_sockaddr_str_from_32() rc == 0 { .af = AF_INET, .ip = "1.2.3.4", .port = 0 } - osmo_sockaddr_str_to_32n() rc == 0 uint32_t=0x1020304 - -> osmo_sockaddr_str_from_32n() rc == 0 { .af = AF_INET, .ip = "1.2.3.4", .port = 0 } + osmo_sockaddr_str_to_32h() rc == 0 uint8_t[4]=[ 04 03 02 01 ] + -> osmo_sockaddr_str_from_32h() rc == 0 { .af = AF_INET, .ip = "1.2.3.4", .port = 0 } osmo_sockaddr_str_to_sockaddr_in() rc == 0 sockaddr_in=02000000010203040000000000000000 -> osmo_sockaddr_str_from_sockaddr_in() rc == 0 { .af = AF_INET, .ip = "1.2.3.4", .port = 0 } osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=00000000000000000000000000000000000000000000000000000000 @@ -299,8 +299,8 @@ osmo_sockaddr_str_is_nonzero() = false osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=02000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=00000000000000000000000000000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr() rc < 0 sockaddr_storage=0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -316,8 +316,8 @@ osmo_sockaddr_str_to_in6_addr() rc == 0 in6_addr=0000000000000000000000010a090807 -> osmo_sockaddr_str_from_in6_addr() rc == 0 { .af = AF_INET6, .ip = "::1:a09:807", .port = 1 } DIFFERS! - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc == 0 sockaddr_in6=0a000001000000000000000000000000000000010a09080700000000 -> osmo_sockaddr_str_from_sockaddr_in6() rc == 0 { .af = AF_INET6, .ip = "::1:a09:807", .port = 1 } @@ -335,10 +335,10 @@ osmo_sockaddr_str_to_in_addr() rc == 0 in_addr=00000000 -> osmo_sockaddr_str_from_in_addr() rc == 0 { .af = AF_INET, .ip = "0.0.0.0", .port = 5 } osmo_sockaddr_str_to_in6_addr() rc < 0 in6_addr=00000000000000000000000000000000 - osmo_sockaddr_str_to_32() rc == 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc == 0 uint8_t[4]=[ 00 00 00 00 ] -> osmo_sockaddr_str_from_32() rc == 0 { .af = AF_INET, .ip = "0.0.0.0", .port = 5 } - osmo_sockaddr_str_to_32n() rc == 0 uint32_t=0x0 - -> osmo_sockaddr_str_from_32n() rc == 0 { .af = AF_INET, .ip = "0.0.0.0", .port = 5 } + osmo_sockaddr_str_to_32h() rc == 0 uint8_t[4]=[ 00 00 00 00 ] + -> osmo_sockaddr_str_from_32h() rc == 0 { .af = AF_INET, .ip = "0.0.0.0", .port = 5 } osmo_sockaddr_str_to_sockaddr_in() rc == 0 sockaddr_in=02000005000000000000000000000000 -> osmo_sockaddr_str_from_sockaddr_in() rc == 0 { .af = AF_INET, .ip = "0.0.0.0", .port = 5 } osmo_sockaddr_str_to_sockaddr_in6() rc < 0 sockaddr_in6=00000000000000000000000000000000000000000000000000000000 @@ -354,8 +354,8 @@ osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000 osmo_sockaddr_str_to_in6_addr() rc == 0 in6_addr=00000000000000000000000000000000 -> osmo_sockaddr_str_from_in6_addr() rc == 0 { .af = AF_INET6, .ip = "::", .port = 5 } - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc == 0 sockaddr_in6=0a000005000000000000000000000000000000000000000000000000 -> osmo_sockaddr_str_from_sockaddr_in6() rc == 0 { .af = AF_INET6, .ip = "::", .port = 5 } @@ -372,8 +372,8 @@ osmo_sockaddr_str_to_in6_addr() rc == 0 in6_addr=00000000000000000000000000000000 -> osmo_sockaddr_str_from_in6_addr() rc == 0 { .af = AF_INET6, .ip = "::", .port = 5 } DIFFERS! - osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0 - osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0 + osmo_sockaddr_str_to_32() rc < 0 uint8_t[4]=[ 00 00 00 00 ] + osmo_sockaddr_str_to_32h() rc < 0 uint8_t[4]=[ 00 00 00 00 ] osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000 osmo_sockaddr_str_to_sockaddr_in6() rc == 0 sockaddr_in6=0a000005000000000000000000000000000000000000000000000000 -> osmo_sockaddr_str_from_sockaddr_in6() rc == 0 { .af = AF_INET6, .ip = "::", .port = 5 } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/16030 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3cf150cc0cc06dd36039fbde091bc71b01697322 Gerrit-Change-Number: 16030 Gerrit-PatchSet: 1 Gerrit-Owner: neels <nhofmeyr at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20191111/8b289f7e/attachment.htm>