From: Francis Dupont Date: Wed, 12 Jan 2022 12:31:32 +0000 (+0100) Subject: [#2222] Removed the skipped when equal code X-Git-Tag: Kea-2.1.2~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc70f5750c35b4ea2c4fd15afeb24f2aa2f17e3f;p=thirdparty%2Fkea.git [#2222] Removed the skipped when equal code --- diff --git a/ChangeLog b/ChangeLog index 06940cff0c..07b432b4d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +1983. [bug] fdupont + Minimum and maximum values of lifetimes are no longer + skipped when the configuration is retrieved even when + they are the same as the default value. + (Gitlab #2222) + 1982. [bug] andrei The config for an HA peer now accepts an IPv6 address as a valid value for the "url" entry. diff --git a/src/bin/dhcp4/tests/get_config_unittest.cc b/src/bin/dhcp4/tests/get_config_unittest.cc index 2f1d027de2..f17dd69d04 100644 --- a/src/bin/dhcp4/tests/get_config_unittest.cc +++ b/src/bin/dhcp4/tests/get_config_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2017-2021 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2017-2020 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 @@ -69,7 +69,6 @@ namespace { ///@{ /// @brief extracted configurations const char* EXTRACTED_CONFIGS[] = { -/// put this after const char* EXTRACTED_CONFIGS[] = { // CONFIGURATION 0 "{\n" " \"interfaces-config\": {\n" @@ -2324,7 +2323,6 @@ const char* EXTRACTED_CONFIGS[] = { /// @brief unparsed configurations const char* UNPARSED_CONFIGS[] = { -///put this after const char* UNPARSED_CONFIGS[] = { // CONFIGURATION 0 "{\n" " \"authoritative\": false,\n" @@ -2486,6 +2484,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -2590,6 +2590,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -2805,6 +2807,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -2830,6 +2834,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 2,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -2855,6 +2861,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 3,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -2880,6 +2888,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 4,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -2986,6 +2996,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -3011,6 +3023,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 34,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -3036,6 +3050,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 100,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -3061,6 +3077,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1024,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -3167,6 +3185,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -3274,6 +3294,8 @@ const char* UNPARSED_CONFIGS[] = { " \"boot-file-name\": \"bar\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"next-server\": \"1.2.3.4\",\n" " \"option-data\": [ ],\n" " \"pools\": [\n" @@ -3383,6 +3405,8 @@ const char* UNPARSED_CONFIGS[] = { " \"boot-file-name\": \"bootfile.efi\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"next-server\": \"1.2.3.4\",\n" " \"option-data\": [ ],\n" " \"pools\": [\n" @@ -3491,6 +3515,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -3597,6 +3623,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -3704,6 +3732,8 @@ const char* UNPARSED_CONFIGS[] = { " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"match-client-id\": true,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -3730,6 +3760,8 @@ const char* UNPARSED_CONFIGS[] = { " \"calculate-tee-times\": false,\n" " \"id\": 2,\n" " \"match-client-id\": false,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -3837,6 +3869,8 @@ const char* UNPARSED_CONFIGS[] = { " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"match-client-id\": false,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -3862,6 +3896,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 2,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -3969,6 +4005,8 @@ const char* UNPARSED_CONFIGS[] = { " \"authoritative\": true,\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -3995,6 +4033,8 @@ const char* UNPARSED_CONFIGS[] = { " \"authoritative\": false,\n" " \"calculate-tee-times\": false,\n" " \"id\": 2,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -4102,6 +4142,8 @@ const char* UNPARSED_CONFIGS[] = { " \"authoritative\": false,\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -4127,6 +4169,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 2,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -4343,6 +4387,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -4372,6 +4418,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 2,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -4482,6 +4530,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -5230,6 +5280,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -5336,6 +5388,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [\n" " {\n" " \"always-send\": false,\n" @@ -5486,6 +5540,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -5761,6 +5817,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 3000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -5876,6 +5934,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [\n" " {\n" " \"always-send\": false,\n" @@ -5999,6 +6059,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [\n" " {\n" " \"always-send\": false,\n" @@ -6033,6 +6095,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 2,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [\n" " {\n" " \"always-send\": false,\n" @@ -6148,6 +6212,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -6271,6 +6337,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -6416,6 +6484,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -6682,6 +6752,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 3000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -6803,6 +6875,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -6928,6 +7002,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -7194,6 +7270,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -7300,6 +7378,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -7406,6 +7486,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -7512,6 +7594,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4,\n" +" \"min-valid-lifetime\": 4,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -7618,6 +7702,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4,\n" +" \"min-valid-lifetime\": 4,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -7725,6 +7811,8 @@ const char* UNPARSED_CONFIGS[] = { " \"calculate-tee-times\": false,\n" " \"client-class\": \"alpha\",\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -7751,6 +7839,8 @@ const char* UNPARSED_CONFIGS[] = { " \"calculate-tee-times\": false,\n" " \"client-class\": \"beta\",\n" " \"id\": 2,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -7777,6 +7867,8 @@ const char* UNPARSED_CONFIGS[] = { " \"calculate-tee-times\": false,\n" " \"client-class\": \"gamma\",\n" " \"id\": 3,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -7802,6 +7894,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 4,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -7908,6 +8002,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8029,6 +8125,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 123,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8054,6 +8152,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 234,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8134,6 +8234,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 542,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8298,6 +8400,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 234,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8424,6 +8528,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8452,6 +8558,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 2,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8480,6 +8588,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 3,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8507,6 +8617,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 4,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8534,6 +8646,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 5,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8559,6 +8673,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 6,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8587,6 +8703,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 7,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8696,6 +8814,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -8724,6 +8844,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 2,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -9142,6 +9264,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -9248,6 +9372,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"2001:db8::123/45\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -9354,6 +9480,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -9460,6 +9588,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"2001:db8::543/21\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -9566,6 +9696,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -9698,6 +9830,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -9823,6 +9957,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 7200,\n" +" \"min-valid-lifetime\": 7200,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -9927,6 +10063,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -10033,6 +10171,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -10140,6 +10280,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -10251,6 +10393,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -10518,6 +10662,8 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [\n" " {\n" " \"calculate-tee-times\": false,\n" +" \"max-valid-lifetime\": 7200,\n" +" \"min-valid-lifetime\": 7200,\n" " \"name\": \"foo\",\n" " \"option-data\": [ ],\n" " \"relay\": {\n" @@ -10531,6 +10677,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 100,\n" +" \"max-valid-lifetime\": 7200,\n" +" \"min-valid-lifetime\": 7200,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -10736,6 +10884,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 123,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -10761,6 +10911,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 542,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -10857,6 +11009,8 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [\n" " {\n" " \"calculate-tee-times\": true,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"name\": \"foo\",\n" " \"option-data\": [ ],\n" " \"relay\": {\n" @@ -10870,6 +11024,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 100,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -10893,6 +11049,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": true,\n" " \"id\": 200,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -10926,6 +11084,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 300,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -11030,6 +11190,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -11055,6 +11217,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 2,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -11161,6 +11325,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 1,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" @@ -11186,6 +11352,8 @@ const char* UNPARSED_CONFIGS[] = { " \"4o6-subnet\": \"\",\n" " \"calculate-tee-times\": false,\n" " \"id\": 2,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pools\": [\n" " {\n" diff --git a/src/bin/dhcp6/tests/get_config_unittest.cc b/src/bin/dhcp6/tests/get_config_unittest.cc index 9cb9b967da..1f3a3692e1 100644 --- a/src/bin/dhcp6/tests/get_config_unittest.cc +++ b/src/bin/dhcp6/tests/get_config_unittest.cc @@ -69,7 +69,6 @@ namespace { ///@{ /// @brief extracted configurations const char* EXTRACTED_CONFIGS[] = { -/// put this after const char* EXTRACTED_CONFIGS[] = { // CONFIGURATION 0 "{\n" " \"interfaces-config\": {\n" @@ -2049,7 +2048,6 @@ const char* EXTRACTED_CONFIGS[] = { /// @brief unparsed configurations const char* UNPARSED_CONFIGS[] = { -///put this after const char* UNPARSED_CONFIGS[] = { // CONFIGURATION 0 "{\n" " \"calculate-tee-times\": true,\n" @@ -2338,6 +2336,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -2363,6 +2365,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 2,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -2388,6 +2394,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 3,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -2413,6 +2423,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 4,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -2524,6 +2538,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -2549,6 +2567,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 34,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -2574,6 +2596,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 100,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -2599,6 +2625,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1024,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -2710,6 +2740,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -2735,6 +2769,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 2,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -2760,6 +2798,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 3,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -2785,6 +2827,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 4,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -3016,6 +3062,10 @@ const char* UNPARSED_CONFIGS[] = { " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" " \"interface\": \"eth0\",\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -3128,6 +3178,10 @@ const char* UNPARSED_CONFIGS[] = { " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" " \"interface-id\": \"foobar\",\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -3239,6 +3293,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -3268,6 +3326,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 2,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -3383,6 +3445,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -3494,6 +3560,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" " {\n" @@ -3607,6 +3677,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" " {\n" @@ -3722,6 +3796,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" " {\n" @@ -3852,6 +3930,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" " {\n" @@ -4456,6 +4538,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -4567,6 +4653,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [\n" " {\n" " \"always-send\": false,\n" @@ -4722,6 +4812,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -5007,6 +5101,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -5118,6 +5216,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [\n" " {\n" " \"always-send\": false,\n" @@ -5152,6 +5254,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 2,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [\n" " {\n" " \"always-send\": false,\n" @@ -5272,6 +5378,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" " {\n" @@ -5451,6 +5561,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -5581,6 +5695,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -5862,6 +5980,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -5973,6 +6095,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -6085,6 +6211,10 @@ const char* UNPARSED_CONFIGS[] = { " \"calculate-tee-times\": true,\n" " \"client-class\": \"alpha\",\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -6111,6 +6241,10 @@ const char* UNPARSED_CONFIGS[] = { " \"calculate-tee-times\": true,\n" " \"client-class\": \"beta\",\n" " \"id\": 2,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -6137,6 +6271,10 @@ const char* UNPARSED_CONFIGS[] = { " \"calculate-tee-times\": true,\n" " \"client-class\": \"gamma\",\n" " \"id\": 3,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -6162,6 +6300,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 4,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -6273,6 +6415,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -6399,6 +6545,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" " {\n" @@ -6533,6 +6683,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -6644,6 +6798,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -6755,6 +6913,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -6866,6 +7028,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 123,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -6891,6 +7057,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 234,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [ ],\n" @@ -6962,6 +7132,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 542,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [ ],\n" @@ -7112,6 +7286,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 234,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [ ],\n" @@ -7406,6 +7584,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -7434,6 +7616,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 2,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -7462,6 +7648,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 3,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -7489,6 +7679,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 4,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -7516,6 +7710,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 5,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -7541,6 +7739,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 6,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -7569,6 +7771,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 7,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -7683,6 +7889,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -7711,6 +7921,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 2,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -8253,6 +8467,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -8364,6 +8582,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -8475,6 +8697,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -8587,6 +8813,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -8704,6 +8934,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -8821,6 +9055,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" " {\n" @@ -8934,6 +9172,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" " {\n" @@ -9048,6 +9290,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" " {\n" @@ -9322,6 +9568,10 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [\n" " {\n" " \"calculate-tee-times\": true,\n" +" \"max-preferred-lifetime\": 3600,\n" +" \"max-valid-lifetime\": 7200,\n" +" \"min-preferred-lifetime\": 3600,\n" +" \"min-valid-lifetime\": 7200,\n" " \"name\": \"foo\",\n" " \"option-data\": [ ],\n" " \"preferred-lifetime\": 3600,\n" @@ -9334,6 +9584,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 100,\n" +" \"max-preferred-lifetime\": 3600,\n" +" \"max-valid-lifetime\": 7200,\n" +" \"min-preferred-lifetime\": 3600,\n" +" \"min-valid-lifetime\": 7200,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" " {\n" @@ -9549,6 +9803,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 123,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" @@ -9574,6 +9832,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 234,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [ ],\n" @@ -9594,6 +9856,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 542,\n" +" \"max-preferred-lifetime\": 3000,\n" +" \"max-valid-lifetime\": 4000,\n" +" \"min-preferred-lifetime\": 3000,\n" +" \"min-valid-lifetime\": 4000,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [ ],\n" @@ -9965,6 +10231,10 @@ const char* UNPARSED_CONFIGS[] = { " {\n" " \"calculate-tee-times\": true,\n" " \"id\": 1,\n" +" \"max-preferred-lifetime\": 3600,\n" +" \"max-valid-lifetime\": 7200,\n" +" \"min-preferred-lifetime\": 3600,\n" +" \"min-valid-lifetime\": 7200,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" " \"pools\": [\n" diff --git a/src/lib/dhcpsrv/network.cc b/src/lib/dhcpsrv/network.cc index b633a3edb7..c66ed8e952 100644 --- a/src/lib/dhcpsrv/network.cc +++ b/src/lib/dhcpsrv/network.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2017-2020 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2017-2022 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 @@ -175,14 +175,10 @@ Network::toElement() const { if (!valid_.unspecified()) { map->set("valid-lifetime", Element::create(static_cast(valid_.get()))); - if (valid_.getMin() < valid_.get()) { - map->set("min-valid-lifetime", - Element::create(static_cast(valid_.getMin()))); - } - if (valid_.getMax() > valid_.get()) { - map->set("max-valid-lifetime", - Element::create(static_cast(valid_.getMax()))); - } + map->set("min-valid-lifetime", + Element::create(static_cast(valid_.getMin()))); + map->set("max-valid-lifetime", + Element::create(static_cast(valid_.getMax()))); } // Set reservations-global @@ -352,14 +348,10 @@ Network6::toElement() const { if (!preferred_.unspecified()) { map->set("preferred-lifetime", Element::create(static_cast(preferred_.get()))); - if (preferred_.getMin() < preferred_.get()) { - map->set("min-preferred-lifetime", - Element::create(static_cast(preferred_.getMin()))); - } - if (preferred_.getMax() > preferred_.get()) { - map->set("max-preferred-lifetime", - Element::create(static_cast(preferred_.getMax()))); - } + map->set("min-preferred-lifetime", + Element::create(static_cast(preferred_.getMin()))); + map->set("max-preferred-lifetime", + Element::create(static_cast(preferred_.getMax()))); } // Set interface-id diff --git a/src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc b/src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc index de56233e4f..a920d2b7cc 100644 --- a/src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc +++ b/src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2017-2021 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2017-2022 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 @@ -234,7 +234,9 @@ TEST(CfgSharedNetworks4Test, unparse) { " \"option-data\": [ ],\n" " \"relay\": { \"ip-addresses\": [ ] },\n" " \"subnet4\": [ ],\n" - " \"valid-lifetime\": 100\n" + " \"valid-lifetime\": 100,\n" + " \"min-valid-lifetime\": 100,\n" + " \"max-valid-lifetime\": 100\n" " },\n" " {\n" " \"ddns-send-updates\": false,\n" diff --git a/src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc b/src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc index 6a4f6c9bd7..65b25efa6d 100644 --- a/src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc +++ b/src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc @@ -254,7 +254,11 @@ TEST(CfgSharedNetworks6Test, unparse) { " \"renew-timer\": 100,\n" " \"subnet6\": [ ],\n" " \"preferred-lifetime\": 200,\n" - " \"valid-lifetime\": 300\n," + " \"min-preferred-lifetime\": 200,\n" + " \"max-preferred-lifetime\": 200,\n" + " \"valid-lifetime\": 300,\n" + " \"min-valid-lifetime\": 300,\n" + " \"max-valid-lifetime\": 300,\n" " \"store-extended-info\": true,\n" " \"cache-max-age\": 80\n" " },\n" diff --git a/src/lib/dhcpsrv/tests/cfg_subnets4_unittest.cc b/src/lib/dhcpsrv/tests/cfg_subnets4_unittest.cc index 16c35f6397..171c887ccb 100644 --- a/src/lib/dhcpsrv/tests/cfg_subnets4_unittest.cc +++ b/src/lib/dhcpsrv/tests/cfg_subnets4_unittest.cc @@ -1077,6 +1077,8 @@ TEST(CfgSubnets4Test, unparseSubnet) { " \"rebind-timer\": 2,\n" " \"relay\": { \"ip-addresses\": [ ] },\n" " \"valid-lifetime\": 3,\n" + " \"min-valid-lifetime\": 3,\n" + " \"max-valid-lifetime\": 3,\n" " \"client-class\": \"foo\",\n" " \"4o6-interface\": \"\",\n" " \"4o6-interface-id\": \"\",\n" @@ -1092,6 +1094,8 @@ TEST(CfgSubnets4Test, unparseSubnet) { " \"rebind-timer\": 2,\n" " \"relay\": { \"ip-addresses\": [ \"10.0.0.1\" ] },\n" " \"valid-lifetime\": 100,\n" + " \"min-valid-lifetime\": 100,\n" + " \"max-valid-lifetime\": 100,\n" " \"4o6-interface\": \"\",\n" " \"4o6-interface-id\": \"\",\n" " \"4o6-subnet\": \"\",\n" @@ -1170,6 +1174,8 @@ TEST(CfgSubnets4Test, unparsePool) { " \"rebind-timer\": 2,\n" " \"relay\": { \"ip-addresses\": [ ] },\n" " \"valid-lifetime\": 3,\n" + " \"min-valid-lifetime\": 3,\n" + " \"max-valid-lifetime\": 3,\n" " \"4o6-interface\": \"\",\n" " \"4o6-interface-id\": \"\",\n" " \"4o6-subnet\": \"\",\n" @@ -1401,8 +1407,12 @@ TEST(CfgSubnets4Test, validLifetimeValidation) { data::ConstElementPtr value = repr->get("valid-lifetime"); ASSERT_TRUE(value); EXPECT_EQ("100", value->str()); - EXPECT_FALSE(repr->get("min-valid-lifetime")); - EXPECT_FALSE(repr->get("max-valid-lifetime")); + data::ConstElementPtr min_value = repr->get("min-valid-lifetime"); + ASSERT_TRUE(min_value); + EXPECT_EQ("100", min_value->str()); + data::ConstElementPtr max_value = repr->get("max-valid-lifetime"); + ASSERT_TRUE(max_value); + EXPECT_EQ("100", max_value->str()); } { @@ -1421,9 +1431,12 @@ TEST(CfgSubnets4Test, validLifetimeValidation) { data::ConstElementPtr value = repr->get("valid-lifetime"); ASSERT_TRUE(value); EXPECT_EQ("100", value->str()); - // Bound only: forgot it was a bound. - EXPECT_FALSE(repr->get("min-valid-lifetime")); - EXPECT_FALSE(repr->get("max-valid-lifetime")); + data::ConstElementPtr min_value = repr->get("min-valid-lifetime"); + ASSERT_TRUE(min_value); + EXPECT_EQ("100", min_value->str()); + data::ConstElementPtr max_value = repr->get("max-valid-lifetime"); + ASSERT_TRUE(max_value); + EXPECT_EQ("100", max_value->str()); } { @@ -1442,9 +1455,12 @@ TEST(CfgSubnets4Test, validLifetimeValidation) { data::ConstElementPtr value = repr->get("valid-lifetime"); ASSERT_TRUE(value); EXPECT_EQ("100", value->str()); - // Bound only: forgot it was a bound. - EXPECT_FALSE(repr->get("min-valid-lifetime")); - EXPECT_FALSE(repr->get("max-valid-lifetime")); + data::ConstElementPtr min_value = repr->get("min-valid-lifetime"); + ASSERT_TRUE(min_value); + EXPECT_EQ("100", min_value->str()); + data::ConstElementPtr max_value = repr->get("max-valid-lifetime"); + ASSERT_TRUE(max_value); + EXPECT_EQ("100", max_value->str()); } { @@ -1468,7 +1484,9 @@ TEST(CfgSubnets4Test, validLifetimeValidation) { data::ConstElementPtr min_value = repr->get("min-valid-lifetime"); ASSERT_TRUE(min_value); EXPECT_EQ("100", min_value->str()); - EXPECT_FALSE(repr->get("max-valid-lifetime")); + data::ConstElementPtr max_value = repr->get("max-valid-lifetime"); + ASSERT_TRUE(max_value); + EXPECT_EQ("200", max_value->str()); } { @@ -1489,10 +1507,12 @@ TEST(CfgSubnets4Test, validLifetimeValidation) { data::ConstElementPtr value = repr->get("valid-lifetime"); ASSERT_TRUE(value); EXPECT_EQ("100", value->str()); + data::ConstElementPtr min_value = repr->get("min-valid-lifetime"); + ASSERT_TRUE(min_value); + EXPECT_EQ("100", min_value->str()); data::ConstElementPtr max_value = repr->get("max-valid-lifetime"); ASSERT_TRUE(max_value); EXPECT_EQ("200", max_value->str()); - EXPECT_FALSE(repr->get("min-valid-lifetime")); } { @@ -1558,7 +1578,7 @@ TEST(CfgSubnets4Test, validLifetimeValidation) { } { - SCOPED_TRACE("equal bounds are ignored"); + SCOPED_TRACE("equal bounds are no longer ignored"); data::ElementPtr copied = data::copy(elems); copied->set("min-valid-lifetime", data::Element::create(100)); copied->set("valid-lifetime", data::Element::create(100)); @@ -1575,8 +1595,12 @@ TEST(CfgSubnets4Test, validLifetimeValidation) { data::ConstElementPtr value = repr->get("valid-lifetime"); ASSERT_TRUE(value); EXPECT_EQ("100", value->str()); - EXPECT_FALSE(repr->get("min-valid-lifetime")); - EXPECT_FALSE(repr->get("max-valid-lifetime")); + data::ConstElementPtr min_value = repr->get("min-valid-lifetime"); + ASSERT_TRUE(min_value); + EXPECT_EQ("100", min_value->str()); + data::ConstElementPtr max_value = repr->get("max-valid-lifetime"); + ASSERT_TRUE(max_value); + EXPECT_EQ("100", max_value->str()); } } diff --git a/src/lib/dhcpsrv/tests/cfg_subnets6_unittest.cc b/src/lib/dhcpsrv/tests/cfg_subnets6_unittest.cc index efb9111b69..dde02d4960 100644 --- a/src/lib/dhcpsrv/tests/cfg_subnets6_unittest.cc +++ b/src/lib/dhcpsrv/tests/cfg_subnets6_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2021 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2014-2022 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 @@ -678,7 +678,11 @@ TEST(CfgSubnets6Test, unparseSubnet) { " \"rebind-timer\": 2,\n" " \"relay\": { \"ip-addresses\": [ ] },\n" " \"preferred-lifetime\": 3,\n" + " \"min-preferred-lifetime\": 3,\n" + " \"max-preferred-lifetime\": 3,\n" " \"valid-lifetime\": 4,\n" + " \"min-valid-lifetime\": 4,\n" + " \"max-valid-lifetime\": 4,\n" " \"client-class\": \"foo\",\n" " \"pools\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -692,7 +696,11 @@ TEST(CfgSubnets6Test, unparseSubnet) { " \"rebind-timer\": 2,\n" " \"relay\": { \"ip-addresses\": [ \"2001:db8:ff::2\" ] },\n" " \"preferred-lifetime\": 100,\n" + " \"min-preferred-lifetime\": 100,\n" + " \"max-preferred-lifetime\": 100,\n" " \"valid-lifetime\": 200,\n" + " \"min-valid-lifetime\": 200,\n" + " \"max-valid-lifetime\": 200,\n" " \"user-context\": { },\n" " \"pools\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -769,7 +777,11 @@ TEST(CfgSubnets6Test, unparsePool) { " \"rebind-timer\": 2,\n" " \"relay\": { \"ip-addresses\": [ ] },\n" " \"preferred-lifetime\": 3,\n" + " \"min-preferred-lifetime\": 3,\n" + " \"max-preferred-lifetime\": 3,\n" " \"valid-lifetime\": 4,\n" + " \"min-valid-lifetime\": 4,\n" + " \"max-valid-lifetime\": 4,\n" " \"pools\": [\n" " {\n" " \"pool\": \"2001:db8:1::100-2001:db8:1::199\",\n" @@ -822,7 +834,11 @@ TEST(CfgSubnets6Test, unparsePdPool) { " \"rebind-timer\": 2,\n" " \"relay\": { \"ip-addresses\": [ ] },\n" " \"preferred-lifetime\": 3,\n" + " \"min-preferred-lifetime\": 3,\n" + " \"max-preferred-lifetime\": 3,\n" " \"valid-lifetime\": 4,\n" + " \"min-valid-lifetime\": 4,\n" + " \"max-valid-lifetime\": 4,\n" " \"pools\": [ ],\n" " \"pd-pools\": [\n" " {\n" @@ -1191,8 +1207,12 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) { data::ConstElementPtr value = repr->get("preferred-lifetime"); ASSERT_TRUE(value); EXPECT_EQ("100", value->str()); - EXPECT_FALSE(repr->get("min-preferred-lifetime")); - EXPECT_FALSE(repr->get("max-preferred-lifetime")); + data::ConstElementPtr min_value = repr->get("min-preferred-lifetime"); + ASSERT_TRUE(min_value); + EXPECT_EQ("100", min_value->str()); + data::ConstElementPtr max_value = repr->get("max-preferred-lifetime"); + ASSERT_TRUE(max_value); + EXPECT_EQ("100", max_value->str()); } { @@ -1211,9 +1231,12 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) { data::ConstElementPtr value = repr->get("preferred-lifetime"); ASSERT_TRUE(value); EXPECT_EQ("100", value->str()); - // Bound only: forgot it was a bound. - EXPECT_FALSE(repr->get("min-preferred-lifetime")); - EXPECT_FALSE(repr->get("max-preferred-lifetime")); + data::ConstElementPtr min_value = repr->get("min-preferred-lifetime"); + ASSERT_TRUE(min_value); + EXPECT_EQ("100", min_value->str()); + data::ConstElementPtr max_value = repr->get("max-preferred-lifetime"); + ASSERT_TRUE(max_value); + EXPECT_EQ("100", max_value->str()); } { @@ -1232,9 +1255,12 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) { data::ConstElementPtr value = repr->get("preferred-lifetime"); ASSERT_TRUE(value); EXPECT_EQ("100", value->str()); - // Bound only: forgot it was a bound. - EXPECT_FALSE(repr->get("min-preferred-lifetime")); - EXPECT_FALSE(repr->get("max-preferred-lifetime")); + data::ConstElementPtr min_value = repr->get("min-preferred-lifetime"); + ASSERT_TRUE(min_value); + EXPECT_EQ("100", min_value->str()); + data::ConstElementPtr max_value = repr->get("max-preferred-lifetime"); + ASSERT_TRUE(max_value); + EXPECT_EQ("100", max_value->str()); } { @@ -1258,7 +1284,9 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) { data::ConstElementPtr min_value = repr->get("min-preferred-lifetime"); ASSERT_TRUE(min_value); EXPECT_EQ("100", min_value->str()); - EXPECT_FALSE(repr->get("max-preferred-lifetime")); + data::ConstElementPtr max_value = repr->get("max-preferred-lifetime"); + ASSERT_TRUE(max_value); + EXPECT_EQ("200", max_value->str()); } { @@ -1279,10 +1307,12 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) { data::ConstElementPtr value = repr->get("preferred-lifetime"); ASSERT_TRUE(value); EXPECT_EQ("100", value->str()); + data::ConstElementPtr min_value = repr->get("min-preferred-lifetime"); + ASSERT_TRUE(min_value); + EXPECT_EQ("100", min_value->str()); data::ConstElementPtr max_value = repr->get("max-preferred-lifetime"); ASSERT_TRUE(max_value); EXPECT_EQ("200", max_value->str()); - EXPECT_FALSE(repr->get("min-preferred-lifetime")); } { @@ -1348,7 +1378,7 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) { } { - SCOPED_TRACE("equal bounds are ignored"); + SCOPED_TRACE("equal bounds are no longer ignored"); data::ElementPtr copied = data::copy(elems); copied->set("min-preferred-lifetime", data::Element::create(100)); copied->set("preferred-lifetime", data::Element::create(100)); @@ -1365,8 +1395,12 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) { data::ConstElementPtr value = repr->get("preferred-lifetime"); ASSERT_TRUE(value); EXPECT_EQ("100", value->str()); - EXPECT_FALSE(repr->get("min-preferred-lifetime")); - EXPECT_FALSE(repr->get("max-preferred-lifetime")); + data::ConstElementPtr min_value = repr->get("min-preferred-lifetime"); + ASSERT_TRUE(min_value); + EXPECT_EQ("100", min_value->str()); + data::ConstElementPtr max_value = repr->get("max-preferred-lifetime"); + ASSERT_TRUE(max_value); + EXPECT_EQ("100", max_value->str()); } } diff --git a/src/lib/dhcpsrv/tests/shared_network_unittest.cc b/src/lib/dhcpsrv/tests/shared_network_unittest.cc index 85763c5184..f9378e70ef 100644 --- a/src/lib/dhcpsrv/tests/shared_network_unittest.cc +++ b/src/lib/dhcpsrv/tests/shared_network_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2017-2021 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2017-2022 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 @@ -668,7 +668,9 @@ TEST(SharedNetwork4Test, unparse) { " },\n" " \"renew-timer\": 10,\n" " \"subnet\": \"10.0.0.0/8\",\n" - " \"valid-lifetime\": 30\n" + " \"valid-lifetime\": 30,\n" + " \"min-valid-lifetime\": 30,\n" + " \"max-valid-lifetime\": 30\n" " },\n" " {\n" " \"4o6-interface\": \"\",\n" @@ -683,11 +685,15 @@ TEST(SharedNetwork4Test, unparse) { " },\n" " \"renew-timer\": 10,\n" " \"subnet\": \"192.0.2.0/24\",\n" - " \"valid-lifetime\": 30\n" + " \"valid-lifetime\": 30,\n" + " \"min-valid-lifetime\": 30,\n" + " \"max-valid-lifetime\": 30\n" " }\n" " ],\n" " \"user-context\": { \"comment\": \"bar\", \"foo\": 1 },\n" - " \"valid-lifetime\": 200\n" + " \"valid-lifetime\": 200,\n" + " \"min-valid-lifetime\": 200,\n" + " \"max-valid-lifetime\": 200\n" "}\n"; test::runToElementTest(expected, *network); @@ -1363,6 +1369,8 @@ TEST(SharedNetwork6Test, unparse) { " \"name\": \"frog\",\n" " \"option-data\": [ ],\n" " \"preferred-lifetime\": 200,\n" + " \"min-preferred-lifetime\": 200,\n" + " \"max-preferred-lifetime\": 200,\n" " \"rapid-commit\": true,\n" " \"rebind-timer\": 150,\n" " \"relay\": {\n" @@ -1380,13 +1388,17 @@ TEST(SharedNetwork6Test, unparse) { " \"pd-pools\": [ ],\n" " \"pools\": [ ],\n" " \"preferred-lifetime\": 30,\n" + " \"min-preferred-lifetime\": 30,\n" + " \"max-preferred-lifetime\": 30,\n" " \"rebind-timer\": 20,\n" " \"relay\": {\n" " \"ip-addresses\": [ ]\n" " },\n" " \"renew-timer\": 10,\n" " \"subnet\": \"2001:db8:1::/64\",\n" - " \"valid-lifetime\": 40\n" + " \"valid-lifetime\": 40,\n" + " \"min-valid-lifetime\": 40,\n" + " \"max-valid-lifetime\": 40\n" " },\n" " {\n" " \"id\": 2,\n" @@ -1395,17 +1407,23 @@ TEST(SharedNetwork6Test, unparse) { " \"pd-pools\": [ ],\n" " \"pools\": [ ],\n" " \"preferred-lifetime\": 30,\n" + " \"min-preferred-lifetime\": 30,\n" + " \"max-preferred-lifetime\": 30,\n" " \"rebind-timer\": 20,\n" " \"relay\": {\n" " \"ip-addresses\": [ \"2001:db8:1::8\" ]\n" " },\n" " \"renew-timer\": 10,\n" " \"subnet\": \"3000::/16\",\n" - " \"valid-lifetime\": 40\n" + " \"valid-lifetime\": 40,\n" + " \"min-valid-lifetime\": 40,\n" + " \"max-valid-lifetime\": 40\n" " }\n" " ],\n" " \"user-context\": { \"foo\": \"bar\" },\n" - " \"valid-lifetime\": 300\n" + " \"valid-lifetime\": 300,\n" + " \"min-valid-lifetime\": 300,\n" + " \"max-valid-lifetime\": 300\n" "}\n"; test::runToElementTest(expected, *network);