ctdb-tests: Add extra IPv6 socket parsing tests
authorMartin Schwenke <martin@meltin.net>
Wed, 5 Jan 2022 01:09:45 +0000 (12:09 +1100)
committerVolker Lendecke <vl@samba.org>
Thu, 13 Jan 2022 16:13:38 +0000 (16:13 +0000)
Add tests to confirm that square brackets are handled and that
IPv4-mapped IPv6 addresses are parsed as expected.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Volker Lendecke <vl@samba.org>
ctdb/tests/src/protocol_util_test.c

index edd2a3411a049673c0f5099de086f86cf57050d9..841d290cb3f680d85c94e6579632ed99cd722472 100644 (file)
@@ -367,6 +367,25 @@ int main(int argc, char *argv[])
        test_sock_addr_cmp("fe80::6af7:28ff:fefa:d136:123",
                           "fe80::6af7:28ff:fefa:d136:122" , true, 1);
 
+       /*
+        * Confirm equivalence of IPv6 sockets with and without
+        * square-brackets
+        */
+       test_sock_addr_cmp("[::1]:234", "::1:234", true, 0);
+       test_sock_addr_cmp("[fe80::6af7:28ff:fefa:d136]:234",
+                          "fe80::6af7:28ff:fefa:d136:234",
+                          true,
+                          0);
+       /* Check IPv4-mapped IPv6 addresses */
+       test_sock_addr_cmp("::ffff:172.16.0.27:977",
+                          "172.16.0.27:977",
+                          true,
+                          0);
+       test_sock_addr_cmp("[::ffff:172.16.0.27]:977",
+                          "172.16.0.27:977",
+                          true,
+                          0);
+
        test_sock_addr_mask_from_string("127.0.0.1/8");
        test_sock_addr_mask_from_string("::1/128");
        test_sock_addr_mask_from_string("fe80::6af7:28ff:fefa:d136/64");