<p>neels <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/libosmocore/+/15961">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  neels: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">add osmo_sockaddr_str_cmp()<br><br>Currently planned user: for Distributed GSM in osmo-hlr: setting per-MSC<br>service addresses in VTY: replace/remove existing entries.<br><br>osmo_sockaddr_str_cmp() is useful to catch identical resulting IP addresses,<br>regardless of differing strings (e.g. '0::' and '::' are equal but differ in<br>strings).<br><br>Change-Id: I0dbc1cf707098dcda75f8e07c1b936951f9f9501<br>---<br>M include/osmocom/core/sockaddr_str.h<br>M include/osmocom/core/utils.h<br>M src/sockaddr_str.c<br>M tests/sockaddr_str/sockaddr_str_test.c<br>M tests/sockaddr_str/sockaddr_str_test.ok<br>5 files changed, 678 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/core/sockaddr_str.h b/include/osmocom/core/sockaddr_str.h</span><br><span>index 6dd428c..d7a8cdf 100644</span><br><span>--- a/include/osmocom/core/sockaddr_str.h</span><br><span>+++ b/include/osmocom/core/sockaddr_str.h</span><br><span>@@ -70,6 +70,7 @@</span><br><span> </span><br><span> bool osmo_sockaddr_str_is_set(const struct osmo_sockaddr_str *sockaddr_str);</span><br><span> bool osmo_sockaddr_str_is_nonzero(const struct osmo_sockaddr_str *sockaddr_str);</span><br><span style="color: hsl(120, 100%, 40%);">+int osmo_sockaddr_str_cmp(const struct osmo_sockaddr_str *a, const struct osmo_sockaddr_str *b);</span><br><span> </span><br><span> int osmo_sockaddr_str_from_str(struct osmo_sockaddr_str *sockaddr_str, const char *ip, uint16_t port);</span><br><span> </span><br><span>diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h</span><br><span>index 601bb56..c4e6f5f 100644</span><br><span>--- a/include/osmocom/core/utils.h</span><br><span>+++ b/include/osmocom/core/utils.h</span><br><span>@@ -21,6 +21,8 @@</span><br><span> #define OSMO_MAX(a, b) ((a) >= (b) ? (a) : (b))</span><br><span> /*! Return the minimum of two specified values */</span><br><span> #define OSMO_MIN(a, b) ((a) >= (b) ? (b) : (a))</span><br><span style="color: hsl(120, 100%, 40%);">+/*! Return a typical cmp result for comparable entities a and b. */</span><br><span style="color: hsl(120, 100%, 40%);">+#define OSMO_CMP(a, b) ((a) < (b)? -1 : ((a) > (b)? 1 : 0))</span><br><span> /*! Stringify the name of a macro x, e.g. an FSM event name.</span><br><span>  * Note: if nested within another preprocessor macro, this will</span><br><span>  * stringify the value of x instead of its name. */</span><br><span>diff --git a/src/sockaddr_str.c b/src/sockaddr_str.c</span><br><span>index f523050..5c548b4 100644</span><br><span>--- a/src/sockaddr_str.c</span><br><span>+++ b/src/sockaddr_str.c</span><br><span>@@ -95,6 +95,80 @@</span><br><span>      }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/*! Compare two osmo_sockaddr_str instances by string comparison.</span><br><span style="color: hsl(120, 100%, 40%);">+ * Compare by strcmp() for the address and compare port numbers, ignore the AF_INET/AF_INET6 value.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] a  left side of comparison.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] b  right side of comparison.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \return -1 if a < b, 0 if a == b, 1 if a > b.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+static int osmo_sockaddr_str_cmp_by_string(const struct osmo_sockaddr_str *a, const struct osmo_sockaddr_str *b)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   int cmp;</span><br><span style="color: hsl(120, 100%, 40%);">+      if (a == b)</span><br><span style="color: hsl(120, 100%, 40%);">+           return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     if (!a)</span><br><span style="color: hsl(120, 100%, 40%);">+               return -1;</span><br><span style="color: hsl(120, 100%, 40%);">+    if (!b)</span><br><span style="color: hsl(120, 100%, 40%);">+               return 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     cmp = strncmp(a->ip, b->ip, sizeof(a->ip));</span><br><span style="color: hsl(120, 100%, 40%);">+  if (cmp)</span><br><span style="color: hsl(120, 100%, 40%);">+              return cmp;</span><br><span style="color: hsl(120, 100%, 40%);">+   return OSMO_CMP(a->port, b->port);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/*! Compare two osmo_sockaddr_str instances by resulting IP address.</span><br><span style="color: hsl(120, 100%, 40%);">+ * Compare IP versions (AF_INET vs AF_INET6), compare resulting IP address bytes and compare port numbers.</span><br><span style="color: hsl(120, 100%, 40%);">+ * If the IP address strings cannot be parsed successfully / if the 'af' is neither AF_INET nor AF_INET6, fall back to</span><br><span style="color: hsl(120, 100%, 40%);">+ * pure string comparison of the ip address.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] a  left side of comparison.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] b  right side of comparison.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \return -1 if a < b, 0 if a == b, 1 if a > b.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+int osmo_sockaddr_str_cmp(const struct osmo_sockaddr_str *a, const struct osmo_sockaddr_str *b)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ int cmp;</span><br><span style="color: hsl(120, 100%, 40%);">+      uint32_t ipv4_a, ipv4_b;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct in6_addr ipv6_a = {}, ipv6_b = {};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (a == b)</span><br><span style="color: hsl(120, 100%, 40%);">+           return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     if (!a)</span><br><span style="color: hsl(120, 100%, 40%);">+               return -1;</span><br><span style="color: hsl(120, 100%, 40%);">+    if (!b)</span><br><span style="color: hsl(120, 100%, 40%);">+               return 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     cmp = OSMO_CMP(a->af, b->af);</span><br><span style="color: hsl(120, 100%, 40%);">+   if (cmp)</span><br><span style="color: hsl(120, 100%, 40%);">+              return cmp;</span><br><span style="color: hsl(120, 100%, 40%);">+   switch (a->af) {</span><br><span style="color: hsl(120, 100%, 40%);">+   case AF_INET:</span><br><span style="color: hsl(120, 100%, 40%);">+         if (osmo_sockaddr_str_to_32(a, &ipv4_a)</span><br><span style="color: hsl(120, 100%, 40%);">+               || osmo_sockaddr_str_to_32(b, &ipv4_b))</span><br><span style="color: hsl(120, 100%, 40%);">+                       goto fallback_to_strcmp;</span><br><span style="color: hsl(120, 100%, 40%);">+              cmp = OSMO_CMP(ipv4_a, ipv4_b);</span><br><span style="color: hsl(120, 100%, 40%);">+               break;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      case AF_INET6:</span><br><span style="color: hsl(120, 100%, 40%);">+                if (osmo_sockaddr_str_to_in6_addr(a, &ipv6_a)</span><br><span style="color: hsl(120, 100%, 40%);">+                 || osmo_sockaddr_str_to_in6_addr(b, &ipv6_b))</span><br><span style="color: hsl(120, 100%, 40%);">+                 goto fallback_to_strcmp;</span><br><span style="color: hsl(120, 100%, 40%);">+              cmp = memcmp(&ipv6_a, &ipv6_b, sizeof(ipv6_a));</span><br><span style="color: hsl(120, 100%, 40%);">+               break;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      default:</span><br><span style="color: hsl(120, 100%, 40%);">+              goto fallback_to_strcmp;</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (cmp)</span><br><span style="color: hsl(120, 100%, 40%);">+              return cmp;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ cmp = OSMO_CMP(a->port, b->port);</span><br><span style="color: hsl(120, 100%, 40%);">+       if (cmp)</span><br><span style="color: hsl(120, 100%, 40%);">+              return cmp;</span><br><span style="color: hsl(120, 100%, 40%);">+   return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+fallback_to_strcmp:</span><br><span style="color: hsl(120, 100%, 40%);">+      return osmo_sockaddr_str_cmp_by_string(a, b);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*! Distinguish between valid IPv4 and IPv6 strings.</span><br><span>  * This does not verify whether the string is a valid IP address; it assumes that the input is a valid IP address, and</span><br><span>  * on that premise returns whether it is an IPv4 or IPv6 string, by looking for '.' and ':' characters.  It is safe to</span><br><span>diff --git a/tests/sockaddr_str/sockaddr_str_test.c b/tests/sockaddr_str/sockaddr_str_test.c</span><br><span>index bf7d738..7d8fe4f 100644</span><br><span>--- a/tests/sockaddr_str/sockaddr_str_test.c</span><br><span>+++ b/tests/sockaddr_str/sockaddr_str_test.c</span><br><span>@@ -55,6 +55,7 @@</span><br><span>      { .af = AF_INET6, .ip = "::1:10.9.8.7", .port = 1 },</span><br><span>       { .af = AF_INET, .ip = "0.0.0.0", .port = 5 },</span><br><span>     { .af = AF_INET6, .ip = "::", .port = 5 },</span><br><span style="color: hsl(120, 100%, 40%);">+  { .af = AF_INET6, .ip = "0::", .port = 5 },</span><br><span> };</span><br><span> </span><br><span> const char *af_name(int af)</span><br><span>@@ -236,9 +237,34 @@</span><br><span> </span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static void test_osmo_sockaddr_str_cmp()</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       int i;</span><br><span style="color: hsl(120, 100%, 40%);">+        printf("\n\n%s\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+       for (i = 0; i < ARRAY_SIZE(oip_data); i++) {</span><br><span style="color: hsl(120, 100%, 40%);">+               /* use a copy to not hit the pointer comparison in osmo_sockaddr_str_cmp(). */</span><br><span style="color: hsl(120, 100%, 40%);">+                struct osmo_sockaddr_str _a = oip_data[i];</span><br><span style="color: hsl(120, 100%, 40%);">+            struct osmo_sockaddr_str *a = &_a;</span><br><span style="color: hsl(120, 100%, 40%);">+                int j;</span><br><span style="color: hsl(120, 100%, 40%);">+                printf("[%2d]\n", i);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+             for (j = 0; j < ARRAY_SIZE(oip_data); j++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                       struct osmo_sockaddr_str *b = &oip_data[j];</span><br><span style="color: hsl(120, 100%, 40%);">+                       int ip_rc = osmo_sockaddr_str_cmp(a, b);</span><br><span style="color: hsl(120, 100%, 40%);">+                      printf("  osmo_sockaddr_str_cmp(): " OSMO_SOCKADDR_STR_FMT "%s %s " OSMO_SOCKADDR_STR_FMT "%s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                              OSMO_SOCKADDR_STR_FMT_ARGS(a),</span><br><span style="color: hsl(120, 100%, 40%);">+                        osmo_sockaddr_str_is_nonzero(a) ? "" : "(zero)",</span><br><span style="color: hsl(120, 100%, 40%);">+                          ip_rc < 0? "<" : (ip_rc == 0 ? "==" : ">" ),</span><br><span style="color: hsl(120, 100%, 40%);">+                           OSMO_SOCKADDR_STR_FMT_ARGS(b),</span><br><span style="color: hsl(120, 100%, 40%);">+                        osmo_sockaddr_str_is_nonzero(b) ? "" : "(zero)");</span><br><span style="color: hsl(120, 100%, 40%);">+          }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> int main(int argc, char **argv)</span><br><span> {</span><br><span>       sockaddr_str_test_conversions();</span><br><span style="color: hsl(120, 100%, 40%);">+      test_osmo_sockaddr_str_cmp();</span><br><span>        return 0;</span><br><span> }</span><br><span> </span><br><span>diff --git a/tests/sockaddr_str/sockaddr_str_test.ok b/tests/sockaddr_str/sockaddr_str_test.ok</span><br><span>index bc18225..31f630f 100644</span><br><span>--- a/tests/sockaddr_str/sockaddr_str_test.ok</span><br><span>+++ b/tests/sockaddr_str/sockaddr_str_test.ok</span><br><span>@@ -362,3 +362,578 @@</span><br><span>   osmo_sockaddr_str_to_sockaddr() rc == 0 sockaddr_storage=0a00000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</span><br><span>    -> osmo_sockaddr_str_from_sockaddr() rc == 0 { .af = AF_INET6, .ip = "::", .port = 5 }</span><br><span>   osmo_sockaddr_str_from_str() rc == 0 { .af = AF_INET6, .ip = "::", .port = 5 }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+{ .af = AF_INET6, .ip = "0::", .port = 5 }</span><br><span style="color: hsl(120, 100%, 40%);">+  OSMO_SOCKADDR_STR_FMT: '[0::]:5'</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_is_set() = true</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_is_nonzero() = false</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_to_in_addr() rc < 0 in_addr=00000000</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_to_in6_addr() rc == 0 in6_addr=00000000000000000000000000000000</span><br><span style="color: hsl(120, 100%, 40%);">+   -> osmo_sockaddr_str_from_in6_addr() rc == 0 { .af = AF_INET6, .ip = "::", .port = 5 }</span><br><span style="color: hsl(120, 100%, 40%);">+      DIFFERS!</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_to_32() rc < 0 uint32_t=0x0</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_to_32n() rc < 0 uint32_t=0x0</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_to_sockaddr_in() rc < 0 sockaddr_in=00000000000000000000000000000000</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_to_sockaddr_in6() rc == 0 sockaddr_in6=0a000005000000000000000000000000000000000000000000000000</span><br><span style="color: hsl(120, 100%, 40%);">+   -> osmo_sockaddr_str_from_sockaddr_in6() rc == 0 { .af = AF_INET6, .ip = "::", .port = 5 }</span><br><span style="color: hsl(120, 100%, 40%);">+      DIFFERS!</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_to_sockaddr() rc == 0 sockaddr_storage=0a00000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</span><br><span style="color: hsl(120, 100%, 40%);">+   -> osmo_sockaddr_str_from_sockaddr() rc == 0 { .af = AF_INET6, .ip = "::", .port = 5 }</span><br><span style="color: hsl(120, 100%, 40%);">+      DIFFERS!</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_from_str() rc == 0 { .af = AF_INET6, .ip = "0::", .port = 5 }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test_osmo_sockaddr_str_cmp</span><br><span style="color: hsl(120, 100%, 40%);">+[ 0]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 == 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5 < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[ 1]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) == 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:0(zero) < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[ 2]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 == 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 255.255.255.255:65535 < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[ 3]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) == 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.256:1(zero) < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[ 4]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) == not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) < []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): not an ip address:1(zero) < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[ 5]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 == [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1:2:3::4]:5 > [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[ 6]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) == [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:0(zero) < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[ 7]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) == [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1]:0(zero) > [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[ 8]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 == [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 == [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 > [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[ 9]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 == [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 == [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535 > [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[10]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) == [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::fffff]:1(zero) > [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[11]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) == [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [not an ip address]:1(zero) > [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[12]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) == [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [1.2.3.4]:5(zero) > [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[13]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) == 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1:2:3::4:5(zero) < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[14]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) == 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:5(zero) < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[15]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) == :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): :5(zero) < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[16]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) > not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) == []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): []:5(zero) < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[17]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) == 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3.4:0(zero) < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[18]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) == 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 1.2.3:4:5:0(zero) < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[19]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 == [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::1:10.9.8.7]:1 > [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[20]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) == 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): 0.0.0.0:5(zero) < [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[21]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) == [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [::]:5(zero) == [0::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+[22]</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > 1.2.3.4:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > 0.0.0.0:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > 255.255.255.255:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > 0.0.0.256:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > not an ip address:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) < [1:2:3::4]:5</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > [::]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) < [::1]:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) < [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) < [FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF]:65535</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) < [::fffff]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) < [not an ip address]:1(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) < [1.2.3.4]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > 1:2:3::4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > 1.2.3.4:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > :5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > []:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > 1.2.3.4:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > 1.2.3:4:5:0(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) < [::1:10.9.8.7]:1</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) > 0.0.0.0:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) == [::]:5(zero)</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo_sockaddr_str_cmp(): [0::]:5(zero) == [0::]:5(zero)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmocore/+/15961">change 15961</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/libosmocore/+/15961"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I0dbc1cf707098dcda75f8e07c1b936951f9f9501 </div>
<div style="display:none"> Gerrit-Change-Number: 15961 </div>
<div style="display:none"> Gerrit-PatchSet: 7 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-CC: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>