]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#4425] Addressed more review comments
authorThomas Markwalder <tmark@isc.org>
Mon, 6 Apr 2026 13:18:19 +0000 (09:18 -0400)
committerThomas Markwalder <tmark@isc.org>
Mon, 6 Apr 2026 13:18:19 +0000 (09:18 -0400)
/src/bin/admin/tests/pgsql_tests.sh.in
     Minor nits

/src/lib/dhcpsrv/tests/sflq_allocator_unittest.cc
    Replace contains with count

/src/lib/dhcpsrv/testutils/sflqtest_lease_mgr.h
    Fixed override warnings

/src/share/database/scripts/pgsql/dhcpdb_create.pgsql
/src/share/database/scripts/pgsql/upgrade_032_to_033.sh.in
    inetToBytea(inet_address inet) - handle v6 addresses
    with empty first hextet

src/bin/admin/tests/pgsql_tests.sh.in
src/lib/dhcpsrv/tests/sflq_allocator_unittest.cc
src/lib/dhcpsrv/testutils/sflqtest_lease_mgr.h
src/share/database/scripts/pgsql/dhcpdb_create.pgsql
src/share/database/scripts/pgsql/upgrade_032_to_033.sh.in

index d361b919cf1f5d9cd9eba741525d54c2764841cb..c9d97a0817ee13d371b8600c2f1781ce33dc3129 100755 (executable)
@@ -4138,7 +4138,7 @@ pgsql_sflqDeleteLease6() {
 }
 # Verifies inetToBytea function
 pgsql_inetToBytea() {
-    test_start "pgsql.pgsql_sflqPickFreeLease6"
+    test_start "pgsql.pgsql_initToBytea"
 
     # Let's wipe the whole database
     pgsql_wipe
@@ -4152,24 +4152,28 @@ pgsql_inetToBytea() {
     run_statement "case 1" "$sql" "::1"
 
     sql="select byteaToInet(inetToBytea('::2222:1'::inet))"
-    run_statement "case 1" "$sql" "::34.34.0.1"
+    run_statement "case 2" "$sql" "::34.34.0.1"
 
     sql="select byteaToInet(inetToBytea('::'::inet))"
-    run_statement "case 1" "$sql" "::"
+    run_statement "case 3" "$sql" "::"
 
     sql="select byteaToInet(inetToBytea('3001::'::inet))"
-    run_statement "case 1" "$sql" "3001::"
+    run_statement "case 4" "$sql" "3001::"
 
     sql="select byteaToInet(inetToBytea('3001::ff'::inet))"
-    run_statement "case 1" "$sql" "3001::ff"
+    run_statement "case 5" "$sql" "3001::ff"
 
     sql="select byteaToInet(inetToBytea('2:dead:beef::ff'::inet))"
-    run_statement "case 1" "$sql" "2:dead:beef::ff"
+    run_statement "case 6" "$sql" "2:dead:beef::ff"
 
     sql="select byteaToInet(inetToBytea('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'::inet))"
-    run_statement "case 1" "$sql" "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"
+    run_statement "case 7" "$sql" "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"
 
-#    pgsql_wipe
+    sql="select byteaToInet(inetToBytea('00FF:0000:0000:0000:0000:0000:2222:1'))"
+    run_statement "case 8" "$sql" "ff::2222:1"
+
+
+    pgsql_wipe
 
     test_finish 0
 }
index 967bf421d47a1efce64d5d4b098a1a5d90596084..44c49152d637e5872b263e48c93f82a7d1b4d91e 100644 (file)
@@ -122,12 +122,12 @@ TEST_F(SharedFlqAllocatorTest4, pickAddress) {
     }
 
     ASSERT_EQ(picked.size(), 6);
-    ASSERT_TRUE(picked.contains(IOAddress("192.0.1.0")));
-    ASSERT_TRUE(picked.contains(IOAddress("192.0.1.1")));
-    ASSERT_TRUE(picked.contains(IOAddress("192.0.2.0")));
-    ASSERT_TRUE(picked.contains(IOAddress("192.0.2.1")));
-    ASSERT_TRUE(picked.contains(IOAddress("192.0.3.0")));
-    ASSERT_TRUE(picked.contains(IOAddress("192.0.3.1")));
+    ASSERT_TRUE(picked.count(IOAddress("192.0.1.0")));
+    ASSERT_TRUE(picked.count(IOAddress("192.0.1.1")));
+    ASSERT_TRUE(picked.count(IOAddress("192.0.2.0")));
+    ASSERT_TRUE(picked.count(IOAddress("192.0.2.1")));
+    ASSERT_TRUE(picked.count(IOAddress("192.0.3.0")));
+    ASSERT_TRUE(picked.count(IOAddress("192.0.3.1")));
 
     // Verify an additional pick returns zero address.
     ASSERT_EQ(alloc.pickAddress(client_classes, IdentifierBaseTypePtr(), zero_address),
@@ -149,8 +149,8 @@ TEST_F(SharedFlqAllocatorTest4, pickAddress) {
     }
 
     ASSERT_EQ(picked.size(), 2);
-    ASSERT_TRUE(picked.contains(IOAddress("192.0.2.0")));
-    ASSERT_TRUE(picked.contains(IOAddress("192.0.2.1")));
+    ASSERT_TRUE(picked.count(IOAddress("192.0.2.0")));
+    ASSERT_TRUE(picked.count(IOAddress("192.0.2.1")));
 
     // Verify an additional pick returns zero address.
     ASSERT_EQ(alloc.pickAddress(client_classes, IdentifierBaseTypePtr(), zero_address),
@@ -173,10 +173,10 @@ TEST_F(SharedFlqAllocatorTest4, pickAddress) {
     }
 
     ASSERT_EQ(picked.size(), 4);
-    ASSERT_TRUE(picked.contains(IOAddress("192.0.1.0")));
-    ASSERT_TRUE(picked.contains(IOAddress("192.0.1.1")));
-    ASSERT_TRUE(picked.contains(IOAddress("192.0.3.0")));
-    ASSERT_TRUE(picked.contains(IOAddress("192.0.3.1")));
+    ASSERT_TRUE(picked.count(IOAddress("192.0.1.0")));
+    ASSERT_TRUE(picked.count(IOAddress("192.0.1.1")));
+    ASSERT_TRUE(picked.count(IOAddress("192.0.3.0")));
+    ASSERT_TRUE(picked.count(IOAddress("192.0.3.1")));
 
     // Verify an additional pick returns zero address.
     ASSERT_EQ(alloc.pickAddress(client_classes, IdentifierBaseTypePtr(), zero_address),
@@ -318,12 +318,12 @@ TEST_F(SharedFlqAllocatorTest6, pickAddress) {
     }
 
     ASSERT_EQ(picked.size(), 6);
-    ASSERT_TRUE(picked.contains(IOAddress("3001::10")));
-    ASSERT_TRUE(picked.contains(IOAddress("3001::11")));
-    ASSERT_TRUE(picked.contains(IOAddress("3001::20")));
-    ASSERT_TRUE(picked.contains(IOAddress("3001::21")));
-    ASSERT_TRUE(picked.contains(IOAddress("3001::30")));
-    ASSERT_TRUE(picked.contains(IOAddress("3001::31")));
+    ASSERT_TRUE(picked.count(IOAddress("3001::10")));
+    ASSERT_TRUE(picked.count(IOAddress("3001::11")));
+    ASSERT_TRUE(picked.count(IOAddress("3001::20")));
+    ASSERT_TRUE(picked.count(IOAddress("3001::21")));
+    ASSERT_TRUE(picked.count(IOAddress("3001::30")));
+    ASSERT_TRUE(picked.count(IOAddress("3001::31")));
 
     // Verify an additional pick returns zero address.
     ASSERT_EQ(alloc.pickAddress(client_classes, IdentifierBaseTypePtr(), zero_address),
@@ -345,8 +345,8 @@ TEST_F(SharedFlqAllocatorTest6, pickAddress) {
     }
 
     ASSERT_EQ(picked.size(), 2);
-    ASSERT_TRUE(picked.contains(IOAddress("3001::20")));
-    ASSERT_TRUE(picked.contains(IOAddress("3001::21")));
+    ASSERT_TRUE(picked.count(IOAddress("3001::20")));
+    ASSERT_TRUE(picked.count(IOAddress("3001::21")));
 
     // Verify an additional pick returns zero address.
     ASSERT_EQ(alloc.pickAddress(client_classes, IdentifierBaseTypePtr(), zero_address),
@@ -369,10 +369,10 @@ TEST_F(SharedFlqAllocatorTest6, pickAddress) {
     }
 
     ASSERT_EQ(picked.size(), 4);
-    ASSERT_TRUE(picked.contains(IOAddress("3001::10")));
-    ASSERT_TRUE(picked.contains(IOAddress("3001::11")));
-    ASSERT_TRUE(picked.contains(IOAddress("3001::30")));
-    ASSERT_TRUE(picked.contains(IOAddress("3001::31")));
+    ASSERT_TRUE(picked.count(IOAddress("3001::10")));
+    ASSERT_TRUE(picked.count(IOAddress("3001::11")));
+    ASSERT_TRUE(picked.count(IOAddress("3001::30")));
+    ASSERT_TRUE(picked.count(IOAddress("3001::31")));
 
     // Verify an additional pick returns zero address.
     ASSERT_EQ(alloc.pickAddress(client_classes, IdentifierBaseTypePtr(), zero_address),
@@ -434,12 +434,12 @@ TEST_F(SharedFlqAllocatorTest6, pickPrefix) {
     }
 
     ASSERT_EQ(picked.size(), 6);
-    ASSERT_TRUE(picked.contains(IOAddress("2001::10")));
-    ASSERT_TRUE(picked.contains(IOAddress("2001::11")));
-    ASSERT_TRUE(picked.contains(IOAddress("2001::20")));
-    ASSERT_TRUE(picked.contains(IOAddress("2001::21")));
-    ASSERT_TRUE(picked.contains(IOAddress("2001::30")));
-    ASSERT_TRUE(picked.contains(IOAddress("2001::31")));
+    ASSERT_TRUE(picked.count(IOAddress("2001::10")));
+    ASSERT_TRUE(picked.count(IOAddress("2001::11")));
+    ASSERT_TRUE(picked.count(IOAddress("2001::20")));
+    ASSERT_TRUE(picked.count(IOAddress("2001::21")));
+    ASSERT_TRUE(picked.count(IOAddress("2001::30")));
+    ASSERT_TRUE(picked.count(IOAddress("2001::31")));
 
     // Verify an additional pick returns zero address.
     ASSERT_EQ(alloc.pickPrefix(client_classes, dummy, IdentifierBaseTypePtr(),
@@ -465,8 +465,8 @@ TEST_F(SharedFlqAllocatorTest6, pickPrefix) {
     }
 
     ASSERT_EQ(picked.size(), 2);
-    ASSERT_TRUE(picked.contains(IOAddress("2001::20")));
-    ASSERT_TRUE(picked.contains(IOAddress("2001::21")));
+    ASSERT_TRUE(picked.count(IOAddress("2001::20")));
+    ASSERT_TRUE(picked.count(IOAddress("2001::21")));
 
     // Verify an additional pick returns zero address.
     ASSERT_EQ(alloc.pickPrefix(client_classes, dummy, IdentifierBaseTypePtr(),
@@ -492,10 +492,10 @@ TEST_F(SharedFlqAllocatorTest6, pickPrefix) {
     }
 
     ASSERT_EQ(picked.size(), 4);
-    ASSERT_TRUE(picked.contains(IOAddress("2001::10")));
-    ASSERT_TRUE(picked.contains(IOAddress("2001::11")));
-    ASSERT_TRUE(picked.contains(IOAddress("2001::30")));
-    ASSERT_TRUE(picked.contains(IOAddress("2001::31")));
+    ASSERT_TRUE(picked.count(IOAddress("2001::10")));
+    ASSERT_TRUE(picked.count(IOAddress("2001::11")));
+    ASSERT_TRUE(picked.count(IOAddress("2001::30")));
+    ASSERT_TRUE(picked.count(IOAddress("2001::31")));
 
     // Verify an additional pick returns zero address.
     ASSERT_EQ(alloc.pickPrefix(client_classes, dummy, IdentifierBaseTypePtr(),
index 86fa5aa0e03086774a84f4b99b26c6e99eabdf31..a8705d6804c19a1bcdcf45ca97f45b92b7a6f24e 100644 (file)
@@ -117,7 +117,8 @@ public:
     /// @return True if the pool is (re)created, false it if already exists.
     virtual bool sflqCreateFlqPool4(asiolink::IOAddress start_address,
                                     asiolink::IOAddress end_address,
-                                    SubnetID subnet_id, bool recreate = false);
+                                    SubnetID subnet_id, bool recreate = false)
+                                    override;
 
     /// @brief Finds a free V4 address within the given pool range.
     ///
@@ -126,7 +127,8 @@ public:
     ///
     /// @return A free V4 address or IOAddress::IPV4_ZERO_ADDRESS().
     virtual asiolink::IOAddress sflqPickFreeLease4(asiolink::IOAddress start_address,
-                                                   asiolink::IOAddress end_address);
+                                                   asiolink::IOAddress end_address)
+                                                   override;
 
     /// @brief Calls stored procedure to create an SFLQ pool for v6.
     ///
@@ -142,7 +144,8 @@ public:
     virtual bool sflqCreateFlqPool6(asiolink::IOAddress start_address,
                                     asiolink::IOAddress end_address,
                                     Lease::Type lease_type, uint8_t delegated_len,
-                                    SubnetID subnet_id, bool recreate = false);
+                                    SubnetID subnet_id, bool recreate = false)
+                                    override;
 
     /// @brief Finds a free V6 address/prefix within the given pool range.
     ///
@@ -151,7 +154,8 @@ public:
     ///
     /// @return A free V6 address/prefix or IOAddress::IPV6_ZERO_ADDRESS().
     virtual asiolink::IOAddress sflqPickFreeLease6(asiolink::IOAddress start_address,
-                                                   asiolink::IOAddress end_address);
+                                                   asiolink::IOAddress end_address)
+                                                   override;
 
     /// @brief Finds an SflqPool in the list of SflqPools
     ///
index ea4b467b677e0ccdcfa5546016010e8f65507495..94d4b6353dd96effe765a44f961658aff0ad85cb 100644 (file)
@@ -7001,11 +7001,11 @@ CREATE OR REPLACE FUNCTION inetToBytea(inet_address inet)
 RETURNS bytea
 AS $$
 DECLARE
-    octets TEXT[];
-    num_octets SMALLINT;
-    octet_idx SMALLINT;
-    octet_len SMALLINT;
-    octet TEXT;
+    hextets TEXT[];
+    num_hextets SMALLINT;
+    hextet_idx SMALLINT;
+    hextet_len SMALLINT;
+    hextet TEXT;
     dummy VARCHAR(256);
     bin_address bytea;
     bin_idx SMALLINT;
@@ -7014,7 +7014,7 @@ DECLARE
     digit_place SMALLINT;
     cur_byte SMALLINT;
     num_pad SMALLINT;
-    first_octet_zero BOOLEAN := false;
+    first_hextet_zero BOOLEAN := false;
 BEGIN
     bin_address = '\x00000000000000000000000000000000'::bytea;
 
@@ -7022,33 +7022,33 @@ BEGIN
     IF (inet_address < '0000:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF'::inet)
     THEN
         inet_address = inet_address | ('FFFF::'::inet);
-        first_octet_zero = true;
+        first_hextet_zero = true;
     END IF;
 
-    octets = string_to_array(host(inet_address), ':');
-    num_octets = array_length(octets, 1);
+    hextets = string_to_array(host(inet_address), ':');
+    num_hextets = array_length(hextets, 1);
 
-    -- Skip first octet if we faked above.
-    IF (first_octet_zero = true)
+    -- Skip first hextet if we faked above.
+    IF (first_hextet_zero = true)
     THEN
-        octet_idx = 2;
+        hextet_idx = 2;
         bin_idx = 2;
     ELSE
-        octet_idx = 1;
+        hextet_idx = 1;
         bin_idx = 0;
     END IF;
 
     dummy = '';
-    WHILE (octet_idx <= num_octets) LOOP
-        octet = octets[octet_idx];
-        octet_len = char_length(octet);
-        IF (octet_len = 0)
+    WHILE (hextet_idx <= num_hextets) LOOP
+        hextet = hextets[hextet_idx];
+        hextet_len = char_length(hextet);
+        IF (hextet_len = 0)
         THEN
-            -- Skip over omitted octets.
-            num_pad = 8 - num_octets + 1;
+            -- Skip over omitted hextets.
+            num_pad = 8 - num_hextets + 1;
             bin_idx = bin_idx + (num_pad * 2);
         ELSE
-            num_pad = 4 - octet_len;
+            num_pad = 4 - hextet_len;
             digit_idx = 1;
             digit_place = 1;
             WHILE (digit_place <= 4) LOOP
@@ -7057,7 +7057,7 @@ BEGIN
                     digit = 0;
                     num_pad = num_pad - 1;
                 ELSE
-                    digit = hexToBin(ascii(substring(octet from digit_idx for 1))::smallint);
+                    digit = hexToBin(ascii(substring(hextet from digit_idx for 1))::smallint);
                     digit_idx = digit_idx + 1;
                 END IF;
 
@@ -7072,9 +7072,9 @@ BEGIN
                 END IF;
                 digit_place = digit_place + 1;
             END LOOP;
-            dummy = dummy || octet || '+';
+            dummy = dummy || hextet || '+';
         END IF;
-        octet_idx = octet_idx + 1;
+        hextet_idx = hextet_idx + 1;
     END LOOP;
 
     RETURN (bin_address);
index d7687c330f3476199e24cc762d39eab5cfc683db..bef89d33c177a975102ad94fe046bef6561a16dc 100755 (executable)
@@ -287,11 +287,11 @@ CREATE OR REPLACE FUNCTION inetToBytea(inet_address inet)
 RETURNS bytea
 AS \$\$
 DECLARE
-    octets TEXT[];
-    num_octets SMALLINT;
-    octet_idx SMALLINT;
-    octet_len SMALLINT;
-    octet TEXT;
+    hextets TEXT[];
+    num_hextets SMALLINT;
+    hextet_idx SMALLINT;
+    hextet_len SMALLINT;
+    hextet TEXT;
     dummy VARCHAR(256);
     bin_address bytea;
     bin_idx SMALLINT;
@@ -300,7 +300,7 @@ DECLARE
     digit_place SMALLINT;
     cur_byte SMALLINT;
     num_pad SMALLINT;
-    first_octet_zero BOOLEAN := false;
+    first_hextet_zero BOOLEAN := false;
 BEGIN
     bin_address = '\x00000000000000000000000000000000'::bytea;
 
@@ -308,33 +308,33 @@ BEGIN
     IF (inet_address < '0000:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF'::inet)
     THEN
         inet_address = inet_address | ('FFFF::'::inet);
-        first_octet_zero = true;
+        first_hextet_zero = true;
     END IF;
 
-    octets = string_to_array(host(inet_address), ':');
-    num_octets = array_length(octets, 1);
+    hextets = string_to_array(host(inet_address), ':');
+    num_hextets = array_length(hextets, 1);
 
-    -- Skip first octet if we faked above.
-    IF (first_octet_zero = true)
+    -- Skip first hextet if we faked above.
+    IF (first_hextet_zero = true)
     THEN
-        octet_idx = 2;
+        hextet_idx = 2;
         bin_idx = 2;
     ELSE
-        octet_idx = 1;
+        hextet_idx = 1;
         bin_idx = 0;
     END IF;
 
     dummy = '';
-    WHILE (octet_idx <= num_octets) LOOP
-        octet = octets[octet_idx];
-        octet_len = char_length(octet);
-        IF (octet_len = 0)
+    WHILE (hextet_idx <= num_hextets) LOOP
+        hextet = hextets[hextet_idx];
+        hextet_len = char_length(hextet);
+        IF (hextet_len = 0)
         THEN
-            -- Skip over omitted octets.
-            num_pad = 8 - num_octets + 1;
+            -- Skip over omitted hextets.
+            num_pad = 8 - num_hextets + 1;
             bin_idx = bin_idx + (num_pad * 2);
         ELSE
-            num_pad = 4 - octet_len;
+            num_pad = 4 - hextet_len;
             digit_idx = 1;
             digit_place = 1;
             WHILE (digit_place <= 4) LOOP
@@ -343,7 +343,7 @@ BEGIN
                     digit = 0;
                     num_pad = num_pad - 1;
                 ELSE
-                    digit = hexToBin(ascii(substring(octet from digit_idx for 1))::smallint);
+                    digit = hexToBin(ascii(substring(hextet from digit_idx for 1))::smallint);
                     digit_idx = digit_idx + 1;
                 END IF;
 
@@ -358,9 +358,9 @@ BEGIN
                 END IF;
                 digit_place = digit_place + 1;
             END LOOP;
-            dummy = dummy || octet || '+';
+            dummy = dummy || hextet || '+';
         END IF;
-        octet_idx = octet_idx + 1;
+        hextet_idx = hextet_idx + 1;
     END LOOP;
 
     RETURN (bin_address);