]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#4078] release changes
authorWlodek Wencel <wlodek@isc.org>
Mon, 25 Aug 2025 13:30:17 +0000 (15:30 +0200)
committerRazvan Becheriu <razvan@isc.org>
Wed, 27 Aug 2025 17:48:37 +0000 (20:48 +0300)
46 files changed:
ChangeLog
changelog_unreleased/226-adaptive-lease-time-threshold [deleted file]
changelog_unreleased/3931-update-netconf-dependencies-to-v3 [deleted file]
changelog_unreleased/3949-ddns-qualifying-suffix-added-to-fqdn-reservations-with-different-suffixes [deleted file]
changelog_unreleased/4014-v6-fix-cb-command-behavior-for-mulitple-options-with-the-same-code-in-a-given-scope [deleted file]
changelog_unreleased/4047-early-call-to-selectsubnet-with-sanity_only-true-alters-behavior-for-broadcast-clients [deleted file]
changelog_unreleased/4049-d2-hooks-may-not-have-their-ioservice-s-poll-method-called-frequently-enough [deleted file]
changelog_unreleased/4058-reused-v6-expired-leases-do-not-get-hardware-address [deleted file]
changelog_unreleased/CVE-2025-40779-Kea-crash-on-108-in-PRL [deleted file]
doc/sphinx/api-files.txt
doc/sphinx/debug-messages.rst
doc/sphinx/grammar/grammar-dhcp4-parser.rst
doc/sphinx/grammar/grammar-dhcp6-parser.rst
doc/sphinx/kea-messages.rst
doc/sphinx/man/keactrl.8.rst
src/bin/dhcp4/dhcp4_lexer.cc
src/bin/dhcp4/dhcp4_srv.h
src/bin/dhcp4/tests/simple_parser4_unittest.cc
src/bin/dhcp6/dhcp6_lexer.cc
src/hooks/dhcp/lease_cmds/lease_cmds.dox
src/hooks/dhcp/mysql/mysql_cb_dhcp6.h
src/hooks/dhcp/mysql/tests/mysql_cb_dhcp6_unittest.cc
src/hooks/dhcp/pgsql/pgsql_cb_dhcp6.h
src/hooks/dhcp/pgsql/tests/pgsql_cb_dhcp6_unittest.cc
src/lib/asiolink/io_service_mgr.cc
src/lib/asiolink/io_service_mgr.h
src/lib/asiolink/tests/io_service_unittest.cc
src/lib/dhcpsrv/allocator.cc
src/lib/dhcpsrv/allocator.h
src/lib/dhcpsrv/cfg_hosts.h
src/lib/dhcpsrv/config_backend_dhcp6.h
src/lib/dhcpsrv/config_backend_pool_dhcp6.cc
src/lib/dhcpsrv/config_backend_pool_dhcp6.h
src/lib/dhcpsrv/d2_client_mgr.h
src/lib/dhcpsrv/flq_allocation_state.cc
src/lib/dhcpsrv/flq_allocation_state.h
src/lib/dhcpsrv/flq_allocator.h
src/lib/dhcpsrv/memfile_lease_storage.h
src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc
src/lib/dhcpsrv/tests/flq_allocation_state_unittest.cc
src/lib/dhcpsrv/testutils/concrete_lease_mgr.cc
src/lib/dhcpsrv/testutils/concrete_lease_mgr.h
src/lib/dhcpsrv/testutils/generic_cb_dhcp6_unittest.h
src/lib/dhcpsrv/testutils/generic_lease_mgr_unittest.h
src/lib/dhcpsrv/testutils/test_config_backend_dhcp6.h
src/lib/log/interprocess/interprocess_sync_file.cc

index d8f05bd17f7e3f04e0fdf0f70f626cf7f072eeb6..465527baa7fa0f69281ca6cf6e7713d6bf690f87 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,54 @@
+Kea 3.1.1 (development) released on September 27, 2025
+
+2391.  [bug]           fdupont
+       When reusing an expired lease, kea-dhcp6 now correctly saves
+       the client hardware address in the lease.
+       (Gitlab #4058)
+
+2390.  [func]          fdupont
+       Added the new "adaptive-lease-time-threshold" parameter
+       for the FLQ (Free Lease Queue) allocator which reduces
+       the lifetime of leases when pools of a subnet have an
+       occupancy rate above a configured threshold (new feature
+       from ISC DHCP).
+       (Gitlab #226)
+
+2389.  [bug]           tmark
+       Corrected an issue in kea-dhcp4 which caused
+       broadcasted client queries to fail to match subnets
+       restricted to classes assigned during early global
+       host lookups.
+       (Gitlab #4047)
+
+2388.  [bug]           tmark
+       Fixed an issue in kea-dhcp-ddns which was
+       causing GSS-TSIG key exchanges to timeout when
+       NCR traffic is intermittent.
+       (Gitlab #4049)
+
+2387.  [func]*         andrei, razvan
+       Updated kea-netconf to libyang and sysrepo version 3.
+       (Gitlab #3931)
+
+2386.  [sec]           tmark
+       Corrected an issue in kea-dhcp4 that caused
+       the server to exit after receiving a broadcast
+       query that requests option 108 and fails to
+       match a subnet.
+       CVE:2025-40779
+       (Gitlab #4048)
+
+2385.  [bug]           tmark
+       Avoid adding the qualifying-suffix to fully qualified
+       host names specified in host reservations.
+       (Gitlab #3949)
+
+2384.  [bug]           tmark
+       kea-dhcp6 now correctly supports option class-tags
+       (i.e."client-classes") in host and config back ends
+       for both MySQL and PosgreSQL.
+       (Gitlab #4014)
+
 2383.  [func]          razvan
        The kea-dhcp4 server now supports configuring vivso options with
        suboptions.
diff --git a/changelog_unreleased/226-adaptive-lease-time-threshold b/changelog_unreleased/226-adaptive-lease-time-threshold
deleted file mode 100644 (file)
index bffd321..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-[func]         fdupont
-       Added the new "adaptive-lease-time-threshold" parameter
-       for the FLQ (Free Lease Queue) allocator which reduces
-       the lifetime of leases when pools of a subnet have an
-       occupancy rate above a configured threshold (new feature
-       from ISC DHCP).
-       (Gitlab #226)
diff --git a/changelog_unreleased/3931-update-netconf-dependencies-to-v3 b/changelog_unreleased/3931-update-netconf-dependencies-to-v3
deleted file mode 100644 (file)
index 6acd099..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-[func]*                andrei, razvan
-       Updated kea-netconf to libyang and sysrepo version 3.
-       (Gitlab #3931)
diff --git a/changelog_unreleased/3949-ddns-qualifying-suffix-added-to-fqdn-reservations-with-different-suffixes b/changelog_unreleased/3949-ddns-qualifying-suffix-added-to-fqdn-reservations-with-different-suffixes
deleted file mode 100644 (file)
index b305d94..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-[bug]          tmark
-       Avoid adding the qualifying-suffix to fully qualified
-       host names specified in host reservations.
-       (Gitlab #3949)
diff --git a/changelog_unreleased/4014-v6-fix-cb-command-behavior-for-mulitple-options-with-the-same-code-in-a-given-scope b/changelog_unreleased/4014-v6-fix-cb-command-behavior-for-mulitple-options-with-the-same-code-in-a-given-scope
deleted file mode 100644 (file)
index 6fc98d2..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-[bug]          tmark
-       kea-dhcp6 now correctly supports option class-tags
-       (i.e."client-classes") in host and config back ends
-       for both MySQL and PosgreSQL.
-       (Gitlab #4014)
diff --git a/changelog_unreleased/4047-early-call-to-selectsubnet-with-sanity_only-true-alters-behavior-for-broadcast-clients b/changelog_unreleased/4047-early-call-to-selectsubnet-with-sanity_only-true-alters-behavior-for-broadcast-clients
deleted file mode 100644 (file)
index b27e145..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-[bug]          tmark
-       Corrected an issue in kea-dhcp4 which caused
-       broadcasted client queries to fail to match subnets
-       restricted to classes assigned during early global
-       host lookups.
-       (Gitlab #4047)
diff --git a/changelog_unreleased/4049-d2-hooks-may-not-have-their-ioservice-s-poll-method-called-frequently-enough b/changelog_unreleased/4049-d2-hooks-may-not-have-their-ioservice-s-poll-method-called-frequently-enough
deleted file mode 100644 (file)
index 57a60c0..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-[bug]          tmark
-       Fixed an issue in kea-dhcp-ddns which was
-       causing GSS-TSIG key exchanges to timeout when
-       NCR traffic is intermittent.
-       (Gitlab #4049)
diff --git a/changelog_unreleased/4058-reused-v6-expired-leases-do-not-get-hardware-address b/changelog_unreleased/4058-reused-v6-expired-leases-do-not-get-hardware-address
deleted file mode 100644 (file)
index c3761ee..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-[bug]          fdupont
-       When reusing an expired lease, kea-dhcp6 now correctly saves
-       the client hardware address in the lease.
-       (Gitlab #4058)
diff --git a/changelog_unreleased/CVE-2025-40779-Kea-crash-on-108-in-PRL b/changelog_unreleased/CVE-2025-40779-Kea-crash-on-108-in-PRL
deleted file mode 100644 (file)
index 22a04cc..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-[sec]          tmark
-       Corrected an issue in kea-dhcp4 that caused
-       the server to exit after receiving a broadcast
-       query that requests option 108 and fails to
-       match a subnet.
-       CVE:2025-40779
-       (Gitlab #4048)
index b8a89815dacdbd3c4c2485ed42559fa5e015cc06..9806449c08861346ab7e5f2968eec28f2d558fab 100644 (file)
@@ -61,8 +61,8 @@ src/share/api/lease6-del.json
 src/share/api/lease6-get.json
 src/share/api/lease6-get-all.json
 src/share/api/lease6-get-by-duid.json
-src/share/api/lease6-get-by-hw-address.json
 src/share/api/lease6-get-by-hostname.json
+src/share/api/lease6-get-by-hw-address.json
 src/share/api/lease6-get-page.json
 src/share/api/lease6-resend-ddns.json
 src/share/api/lease6-update.json
index c4b31a6077b63c1e5d2ca19ef325ccb0ae9d6735..c09b538108e3e45abb1821493c77ab5f4f259a48 100644 (file)
@@ -996,7 +996,8 @@ Messages printed on debuglevel 50
 - DHCPSRV_MEMFILE_GET_EXPIRED6
 - DHCPSRV_MEMFILE_GET_HOSTNAME4
 - DHCPSRV_MEMFILE_GET_HOSTNAME6
-- DHCPSRV_MEMFILE_GET_HWADDR
+- DHCPSRV_MEMFILE_GET_HWADDR4
+- DHCPSRV_MEMFILE_GET_HWADDR6
 - DHCPSRV_MEMFILE_GET_IAID_DUID
 - DHCPSRV_MEMFILE_GET_IAID_SUBID_DUID
 - DHCPSRV_MEMFILE_GET_PAGE4
@@ -1054,7 +1055,8 @@ Messages printed on debuglevel 50
 - MYSQL_LB_GET_EXPIRED6
 - MYSQL_LB_GET_HOSTNAME4
 - MYSQL_LB_GET_HOSTNAME6
-- MYSQL_LB_GET_HWADDR
+- MYSQL_LB_GET_HWADDR4
+- MYSQL_LB_GET_HWADDR6
 - MYSQL_LB_GET_IAID_DUID
 - MYSQL_LB_GET_IAID_SUBID_DUID
 - MYSQL_LB_GET_PAGE4
@@ -1098,7 +1100,8 @@ Messages printed on debuglevel 50
 - PGSQL_LB_GET_EXPIRED6
 - PGSQL_LB_GET_HOSTNAME4
 - PGSQL_LB_GET_HOSTNAME6
-- PGSQL_LB_GET_HWADDR
+- PGSQL_LB_GET_HWADDR4
+- PGSQL_LB_GET_HWADDR6
 - PGSQL_LB_GET_IAID_DUID
 - PGSQL_LB_GET_IAID_SUBID_DUID
 - PGSQL_LB_GET_PAGE4
index 4224b2b8ef74d3cf963cd56906d4bedeccbac304..12428e6a761eb5a884003034753417c296f93041 100644 (file)
@@ -130,6 +130,7 @@ This grammar is generated from ``dhcp4_parser.yy``. See :ref:`dhcp4` for more de
                  | t2_percent
                  | cache_threshold
                  | cache_max_age
+                 | adaptive_lease_time_threshold
                  | loggers
                  | hostname_char_set
                  | hostname_char_replacement
@@ -180,6 +181,8 @@ This grammar is generated from ``dhcp4_parser.yy``. See :ref:`dhcp4` for more de
 
      cache_max_age ::= "cache-max-age" ":" INTEGER
 
+     adaptive_lease_time_threshold ::= "adaptive-lease-time-threshold" ":" FLOAT
+
      decline_probation_period ::= "decline-probation-period" ":" INTEGER
 
      server_tag ::= "server-tag" ":" STRING
@@ -544,6 +547,7 @@ This grammar is generated from ``dhcp4_parser.yy``. See :ref:`dhcp4` for more de
                   | t2_percent
                   | cache_threshold
                   | cache_max_age
+                  | adaptive_lease_time_threshold
                   | ddns_send_updates
                   | ddns_override_no_update
                   | ddns_override_client_update
@@ -634,6 +638,7 @@ This grammar is generated from ``dhcp4_parser.yy``. See :ref:`dhcp4` for more de
                          | t2_percent
                          | cache_threshold
                          | cache_max_age
+                         | adaptive_lease_time_threshold
                          | ddns_send_updates
                          | ddns_override_no_update
                          | ddns_override_client_update
index 6be622c13d04f330652ddd507b0e2b4cde998db8..65175797b5ac5c1f4c23d3830fb2d522da791dea 100644 (file)
@@ -133,6 +133,7 @@ This grammar is generated from ``dhcp6_parser.yy``. See :ref:`dhcp6` for more de
                  | t2_percent
                  | cache_threshold
                  | cache_max_age
+                 | adaptive_lease_time_threshold
                  | loggers
                  | hostname_char_set
                  | hostname_char_replacement
@@ -190,6 +191,8 @@ This grammar is generated from ``dhcp6_parser.yy``. See :ref:`dhcp6` for more de
 
      cache_max_age ::= "cache-max-age" ":" INTEGER
 
+     adaptive_lease_time_threshold ::= "adaptive-lease-time-threshold" ":" FLOAT
+
      decline_probation_period ::= "decline-probation-period" ":" INTEGER
 
      ddns_send_updates ::= "ddns-send-updates" ":" BOOLEAN
@@ -539,6 +542,7 @@ This grammar is generated from ``dhcp6_parser.yy``. See :ref:`dhcp6` for more de
                   | t2_percent
                   | cache_threshold
                   | cache_max_age
+                  | adaptive_lease_time_threshold
                   | hostname_char_set
                   | hostname_char_replacement
                   | ddns_send_updates
@@ -627,6 +631,7 @@ This grammar is generated from ``dhcp6_parser.yy``. See :ref:`dhcp6` for more de
                          | t2_percent
                          | cache_threshold
                          | cache_max_age
+                         | adaptive_lease_time_threshold
                          | hostname_char_set
                          | hostname_char_replacement
                          | ddns_send_updates
index 1d8c3ffaa30fd1874a7b44152d8197d54761cf8a..499ae0ed921d0ff8a66d89e0f422ba6a651b2daf 100644 (file)
@@ -9731,8 +9731,8 @@ A debug message issued when the server is attempting to obtain a set of
 IPv6 leases from the memory file database for a client with the specified
 hostname.
 
-DHCPSRV_MEMFILE_GET_HWADDR
-==========================
+DHCPSRV_MEMFILE_GET_HWADDR4
+===========================
 
 .. code-block:: text
 
@@ -9743,6 +9743,18 @@ A debug message issued when the server is attempting to obtain a set of
 IPv4 leases from the memory file database for a client with the specified
 hardware address.
 
+DHCPSRV_MEMFILE_GET_HWADDR6
+===========================
+
+.. code-block:: text
+
+    obtaining IPv6 leases for hardware address %1
+
+Logged at debug log level 50.
+A debug message issued when the server is attempting to obtain a set of
+IPv6 leases from the memory file database for a client with the specified
+hardware address.
+
 DHCPSRV_MEMFILE_GET_IAID_DUID
 =============================
 
@@ -20721,8 +20733,8 @@ A debug message issued when the server is attempting to obtain a set
 of IPv6 leases from the MySQL database for a client with the specified
 hostname.
 
-MYSQL_LB_GET_HWADDR
-===================
+MYSQL_LB_GET_HWADDR4
+====================
 
 .. code-block:: text
 
@@ -20733,6 +20745,18 @@ A debug message issued when the server is attempting to obtain a set
 of IPv4 leases from the MySQL database for a client with the specified
 hardware address.
 
+MYSQL_LB_GET_HWADDR6
+====================
+
+.. code-block:: text
+
+    obtaining IPv6 leases for hardware address %1
+
+Logged at debug log level 50.
+A debug message issued when the server is attempting to obtain a set
+of IPv6 leases from the MySQL database for a client with the specified
+hardware address.
+
 MYSQL_LB_GET_IAID_DUID
 ======================
 
@@ -23846,8 +23870,8 @@ A debug message issued when the server is attempting to obtain a set
 of IPv6 leases from the PostgreSQL database for a client with the specified
 hostname.
 
-PGSQL_LB_GET_HWADDR
-===================
+PGSQL_LB_GET_HWADDR4
+====================
 
 .. code-block:: text
 
@@ -23858,6 +23882,18 @@ A debug message issued when the server is attempting to obtain a set
 of IPv4 leases from the PostgreSQL database for a client with the specified
 hardware address.
 
+PGSQL_LB_GET_HWADDR6
+====================
+
+.. code-block:: text
+
+    obtaining IPv6 leases for hardware address %1
+
+Logged at debug log level 50.
+A debug message issued when the server is attempting to obtain a set
+of IPv6 leases from the PostgreSQL database for a client with the specified
+hardware address.
+
 PGSQL_LB_GET_IAID_DUID
 ======================
 
index a338ff21e81a6a512ab95ad44f3eb62513ec50ea..27dccb7033e9e1c7d24f71e8f1a891e3f7fda5f6 100644 (file)
@@ -1,5 +1,5 @@
 ..
-   Copyright (C) 2019-2024 Internet Systems Consortium, Inc. ("ISC")
+   Copyright (C) 2019-2025 Internet Systems Consortium, Inc. ("ISC")
 
    This Source Code Form is subject to the terms of the Mozilla Public
    License, v. 2.0. If a copy of the MPL was not distributed with this
index eee75ebbde367510fec075ee998b488cd32d224c..7e602585adab3efa430c847f17475e36d39daf1e 100644 (file)
@@ -328,7 +328,6 @@ typedef int16_t flex_int16_t;
 typedef uint16_t flex_uint16_t;
 typedef int32_t flex_int32_t;
 typedef uint32_t flex_uint32_t;
-typedef uint64_t flex_uint64_t;
 #else
 typedef signed char flex_int8_t;
 typedef short int flex_int16_t;
@@ -453,7 +452,7 @@ typedef size_t yy_size_t;
 #endif
 
 /* %if-not-reentrant */
-extern yy_size_t yyleng;
+extern int yyleng;
 /* %endif */
 
 /* %if-c-only */
@@ -506,7 +505,7 @@ struct yy_buffer_state
        /* Number of characters read into yy_ch_buf, not including EOB
         * characters.
         */
-       yy_size_t yy_n_chars;
+       int yy_n_chars;
 
        /* Whether we "own" the buffer - i.e., we know we created it,
         * and can realloc() it to grow it, and should free() it to
@@ -587,8 +586,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
 /* %not-for-header */
 /* yy_hold_char holds the character lost when yytext is formed. */
 static char yy_hold_char;
-static yy_size_t yy_n_chars;           /* number of characters read into yy_ch_buf */
-yy_size_t yyleng;
+static int yy_n_chars;         /* number of characters read into yy_ch_buf */
+int yyleng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = NULL;
@@ -618,7 +617,7 @@ static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
 
 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
 YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
-YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, yy_size_t len  );
+YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
 
 /* %endif */
 
@@ -686,7 +685,7 @@ static void yynoreturn yy_fatal_error ( const char* msg  );
 #define YY_DO_BEFORE_ACTION \
        (yytext_ptr) = yy_bp; \
 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
-       yyleng = (yy_size_t) (yy_cp - yy_bp); \
+       yyleng = (int) (yy_cp - yy_bp); \
        (yy_hold_char) = *yy_cp; \
        *yy_cp = '\0'; \
 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
@@ -2312,7 +2311,7 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
-#line 2315 "dhcp4_lexer.cc"
+#line 2314 "dhcp4_lexer.cc"
 /* noyywrap disables automatic rewinding for the next file to parse. Since we
    always parse only a single string, there's no need to do any wraps. And
    using yywrap requires linking with -lfl, which provides the default yywrap
@@ -2338,8 +2337,8 @@ using namespace isc::dhcp;
    by moving it ahead by yyleng bytes. yyleng specifies the length of the
    currently matched token. */
 #define YY_USER_ACTION  driver.loc_.columns(yyleng);
+#line 2340 "dhcp4_lexer.cc"
 #line 2341 "dhcp4_lexer.cc"
-#line 2342 "dhcp4_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -2395,7 +2394,7 @@ FILE *yyget_out ( void );
 
 void yyset_out  ( FILE * _out_str  );
 
-                       yy_size_t yyget_leng ( void );
+                       int yyget_leng ( void );
 
 char *yyget_text ( void );
 
@@ -2482,7 +2481,7 @@ static int input ( void );
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
                { \
                int c = '*'; \
-               yy_size_t n; \
+               int n; \
                for ( n = 0; n < max_size && \
                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
                        buf[n] = (char) c; \
@@ -2667,7 +2666,7 @@ YY_DECL
     }
 
 
-#line 2670 "dhcp4_lexer.cc"
+#line 2669 "dhcp4_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -6009,7 +6008,7 @@ YY_RULE_SETUP
 #line 2642 "dhcp4_lexer.ll"
 ECHO;
        YY_BREAK
-#line 6012 "dhcp4_lexer.cc"
+#line 6011 "dhcp4_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -6211,7 +6210,7 @@ static int yy_get_next_buffer (void)
 
        else
                {
-                       yy_size_t num_to_read =
+                       int num_to_read =
                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
                while ( num_to_read <= 0 )
@@ -6225,7 +6224,7 @@ static int yy_get_next_buffer (void)
 
                        if ( b->yy_is_our_buffer )
                                {
-                               yy_size_t new_size = b->yy_buf_size * 2;
+                               int new_size = b->yy_buf_size * 2;
 
                                if ( new_size <= 0 )
                                        b->yy_buf_size += b->yy_buf_size / 8;
@@ -6283,7 +6282,7 @@ static int yy_get_next_buffer (void)
 
        if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
                /* Extend the array by 50%, plus the number we really need. */
-               yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+               int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
                YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
                        (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
                if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
@@ -6404,7 +6403,7 @@ static int yy_get_next_buffer (void)
 
                else
                        { /* need more input */
-                       yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+                       int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
                        ++(yy_c_buf_p);
 
                        switch ( yy_get_next_buffer(  ) )
@@ -6847,12 +6846,12 @@ YY_BUFFER_STATE yy_scan_string (const char * yystr )
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, yy_size_t  _yybytes_len )
+YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
 {
        YY_BUFFER_STATE b;
        char *buf;
        yy_size_t n;
-       yy_size_t i;
+       int i;
     
        /* Get memory for full buffer, including space for trailing EOB's. */
        n = (yy_size_t) (_yybytes_len + 2);
@@ -6899,7 +6898,7 @@ static void yynoreturn yy_fatal_error (const char* msg )
        do \
                { \
                /* Undo effects of setting up yytext. */ \
-        yy_size_t yyless_macro_arg = (n); \
+        int yyless_macro_arg = (n); \
         YY_LESS_LINENO(yyless_macro_arg);\
                yytext[yyleng] = (yy_hold_char); \
                (yy_c_buf_p) = yytext + yyless_macro_arg; \
@@ -6943,7 +6942,7 @@ FILE *yyget_out  (void)
 /** Get the length of the current token.
  * 
  */
-yy_size_t yyget_leng  (void)
+int yyget_leng  (void)
 {
         return yyleng;
 }
index 109ad99acc13cc1e6f3bad45a4c209457ff996c2..611d16c5e7bb6b60f3a90eb7712bdeb3ab2f4c32 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2011-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2011-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 421217f0fde6a8e559d51ad6de9f712bb173d219..d84ff3d1ffff95967bbd92f9773182909a24ceff 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2016-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 43e22d17c6ea455f8e4aef3089f932d05243aa2a..db7809eb0398c9ef104b7b8ec3d9a67057ba8d93 100644 (file)
@@ -328,7 +328,6 @@ typedef int16_t flex_int16_t;
 typedef uint16_t flex_uint16_t;
 typedef int32_t flex_int32_t;
 typedef uint32_t flex_uint32_t;
-typedef uint64_t flex_uint64_t;
 #else
 typedef signed char flex_int8_t;
 typedef short int flex_int16_t;
@@ -453,7 +452,7 @@ typedef size_t yy_size_t;
 #endif
 
 /* %if-not-reentrant */
-extern yy_size_t yyleng;
+extern int yyleng;
 /* %endif */
 
 /* %if-c-only */
@@ -506,7 +505,7 @@ struct yy_buffer_state
        /* Number of characters read into yy_ch_buf, not including EOB
         * characters.
         */
-       yy_size_t yy_n_chars;
+       int yy_n_chars;
 
        /* Whether we "own" the buffer - i.e., we know we created it,
         * and can realloc() it to grow it, and should free() it to
@@ -587,8 +586,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
 /* %not-for-header */
 /* yy_hold_char holds the character lost when yytext is formed. */
 static char yy_hold_char;
-static yy_size_t yy_n_chars;           /* number of characters read into yy_ch_buf */
-yy_size_t yyleng;
+static int yy_n_chars;         /* number of characters read into yy_ch_buf */
+int yyleng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = NULL;
@@ -618,7 +617,7 @@ static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
 
 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
 YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
-YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, yy_size_t len  );
+YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
 
 /* %endif */
 
@@ -686,7 +685,7 @@ static void yynoreturn yy_fatal_error ( const char* msg  );
 #define YY_DO_BEFORE_ACTION \
        (yytext_ptr) = yy_bp; \
 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
-       yyleng = (yy_size_t) (yy_cp - yy_bp); \
+       yyleng = (int) (yy_cp - yy_bp); \
        (yy_hold_char) = *yy_cp; \
        *yy_cp = '\0'; \
 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
@@ -2285,7 +2284,7 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
-#line 2288 "dhcp6_lexer.cc"
+#line 2287 "dhcp6_lexer.cc"
 /* noyywrap disables automatic rewinding for the next file to parse. Since we
    always parse only a single string, there's no need to do any wraps. And
    using yywrap requires linking with -lfl, which provides the default yywrap
@@ -2311,8 +2310,8 @@ using namespace isc::dhcp;
    by moving it ahead by yyleng bytes. yyleng specifies the length of the
    currently matched token. */
 #define YY_USER_ACTION  driver.loc_.columns(yyleng);
+#line 2313 "dhcp6_lexer.cc"
 #line 2314 "dhcp6_lexer.cc"
-#line 2315 "dhcp6_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -2368,7 +2367,7 @@ FILE *yyget_out ( void );
 
 void yyset_out  ( FILE * _out_str  );
 
-                       yy_size_t yyget_leng ( void );
+                       int yyget_leng ( void );
 
 char *yyget_text ( void );
 
@@ -2455,7 +2454,7 @@ static int input ( void );
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
                { \
                int c = '*'; \
-               yy_size_t n; \
+               int n; \
                for ( n = 0; n < max_size && \
                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
                        buf[n] = (char) c; \
@@ -2642,7 +2641,7 @@ YY_DECL
     }
 
 
-#line 2645 "dhcp6_lexer.cc"
+#line 2644 "dhcp6_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -6024,7 +6023,7 @@ YY_RULE_SETUP
 #line 2675 "dhcp6_lexer.ll"
 ECHO;
        YY_BREAK
-#line 6027 "dhcp6_lexer.cc"
+#line 6026 "dhcp6_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -6226,7 +6225,7 @@ static int yy_get_next_buffer (void)
 
        else
                {
-                       yy_size_t num_to_read =
+                       int num_to_read =
                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
                while ( num_to_read <= 0 )
@@ -6240,7 +6239,7 @@ static int yy_get_next_buffer (void)
 
                        if ( b->yy_is_our_buffer )
                                {
-                               yy_size_t new_size = b->yy_buf_size * 2;
+                               int new_size = b->yy_buf_size * 2;
 
                                if ( new_size <= 0 )
                                        b->yy_buf_size += b->yy_buf_size / 8;
@@ -6298,7 +6297,7 @@ static int yy_get_next_buffer (void)
 
        if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
                /* Extend the array by 50%, plus the number we really need. */
-               yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+               int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
                YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
                        (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
                if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
@@ -6419,7 +6418,7 @@ static int yy_get_next_buffer (void)
 
                else
                        { /* need more input */
-                       yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+                       int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
                        ++(yy_c_buf_p);
 
                        switch ( yy_get_next_buffer(  ) )
@@ -6862,12 +6861,12 @@ YY_BUFFER_STATE yy_scan_string (const char * yystr )
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, yy_size_t  _yybytes_len )
+YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
 {
        YY_BUFFER_STATE b;
        char *buf;
        yy_size_t n;
-       yy_size_t i;
+       int i;
     
        /* Get memory for full buffer, including space for trailing EOB's. */
        n = (yy_size_t) (_yybytes_len + 2);
@@ -6914,7 +6913,7 @@ static void yynoreturn yy_fatal_error (const char* msg )
        do \
                { \
                /* Undo effects of setting up yytext. */ \
-        yy_size_t yyless_macro_arg = (n); \
+        int yyless_macro_arg = (n); \
         YY_LESS_LINENO(yyless_macro_arg);\
                yytext[yyleng] = (yy_hold_char); \
                (yy_c_buf_p) = yytext + yyless_macro_arg; \
@@ -6958,7 +6957,7 @@ FILE *yyget_out  (void)
 /** Get the length of the current token.
  * 
  */
-yy_size_t yyget_leng  (void)
+int yyget_leng  (void)
 {
         return yyleng;
 }
index 37ad0e3b76ea580b5e842e5799df42b612e5f1de..f8b4ebac3db68b3b9a06abf13ef367cb62a92d40 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2017-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 12fcc239f9770056c74e64ac1e358d4df5456726..5495b6dfb3e4266068aad228d6af305484a05ccb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2019-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2019-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 7a5bdf6901e3b5e13e8f92f8b34c3daedda3fcc1..9336cce056a1e65ca19d63b1e439f3a6c926a0d3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2019-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2019-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 44f8c5529acaf8d04a86bac30d0cbba56bbab5ac..51a8c59322ea93fa8d90cdb744a5bbebc0e12525 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2022-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2022-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 4778355bfc8acb2ce471bfe925143f027a76744c..00bbe93315305395b78f2adc073c4d7a3f63b651 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2022-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2022-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 0bd8ff66aa984e585687297eb9f771bebcfa91df..63a84be46745ea27e965e64002b9894a2c09520f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2011-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2011-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index ef820ca2c6848dde89349383320f5f8723e36652..f96f0a941a471c4ed3b3cf2074040b9b8970c1a2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2024-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index a97041a3bb2b6471d8ce66cb3f3346fdb8b7c0c9..d46ce833adff516d0ed1e85499e92749c05958cb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2013-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2013-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 433ac4d7a7561281e0659f2f9e7e946700566b26..3ae7ba1721c0a31dc3769ddf736f0cee208c8fce 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2022-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2022-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 01e117edaf5fd925afb16a678f1062ca9f510303..d9cf620e6b5eb9bcb904057df97281a4be73b4ef 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2022-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2022-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 80ea6f41a6eefe88709afb0c8820588aca16530f..67de1428e6547020cc85e34304d2f18140720300 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2014-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 9275585f0a4d0e2e81e1e0e53f90b0ee687af711..9b0450c4e135420638fc7ee00d29134d62ce5741 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2019-2021 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2019-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index e6ed8a1155201d4d409cb12d1fae2cde947ee459..f8bebd30185e6278a483c57de9e3e6cd76ec152f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2019-2021 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2019-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 73e0435304444c9aec6532752b4777bde3464c5c..96ee9d06d2c13cd9393ec86164a98916560dc70d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2019-2022 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2019-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 7454c5f22319deb1057ea7060a51f597d6ed57a3..7344f19a4097ecccb4b5a9bcfb0b1d7926d3df0e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2014-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index f73afa4766765f755a791e85ff6ccdf87d453706..60b97a033a6829bdd0952eaa65c3424f28e1b9f5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2023-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 9962046a7d519032cf3a7494573354962830e842..1f72d20fd3a3d164aeffe67574ebbc079d5d97cf 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2023-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index e2e772aa253f40cccf224eb592f9432d9bdcffab..78e503722b2390cd97f498c03f94169c7d5bd28a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2023-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 8907f4f5210ecb364a76d3b4ea8a5e039d87243a..b1387850a58534658d716f89ef97fc5afaee6d8a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2015-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2015-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 430cf8db20bd90201c3ebcd69a11305706dc46bc..87eef61c77ec07db85d26658baec30dadc63babe 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2017-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index b3c61f03b2ca6a063c0b4cdd293de83db0c4b0a7..b5765554c475728940c50b4586b0ec6ac95ac285 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2023-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 40ea946e4f8f75e49d50d4191d424f3da15f567d..3e8c5975c849e8a8e2c10c5f9b055905e88da445 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2023-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2023-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 19a6ebab53418d0d1c30f72149f805e3828dcd98..1c686137e48c159019d458ea25a7a20708e7f83e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2023-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2023-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index b97d85fa06bcecaf1b25d7c7cea1e91fb0fcc4fe..7952c5742c55f56cbe3660712e431419cb5d99a8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2022-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2022-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index fea4b309a83e9a90f49ea7072a0b2664b390e010..68497a8a5ab36676176c1ead6c4aeb3dac4a5ee4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2014-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index 6c2818b95de0692e139dfb54875d5e825dad8774..f2ccbc32f415bb7441cc4e1306f7302bc8080d71 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2019-2021 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2019-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
index c77b9ea3f9e64409d449305b03c06b3089e042f5..f89898bda13e93c7239484b7e3fe580039da36e9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2012-2015 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2012-2025 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this