]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1840] use generic name for options
authorRazvan Becheriu <razvan@isc.org>
Fri, 18 Jun 2021 13:29:42 +0000 (16:29 +0300)
committerRazvan Becheriu <razvan@isc.org>
Fri, 18 Jun 2021 13:29:42 +0000 (16:29 +0300)
doc/sphinx/arm/hooks-run-script.rst
src/hooks/dhcp/run_script/run_script.cc
src/hooks/dhcp/run_script/run_script.dox
src/hooks/dhcp/run_script/tests/run_script_test.sh.in
src/hooks/dhcp/run_script/tests/run_script_unittests.cc

index 652a333121c63360951e088e33fec48bc178b4af..a637a8962b5177724fd15b7f8881bfaf181e3288 100644 (file)
@@ -217,9 +217,9 @@ lease4_renew
    QUERY4_LOCAL_HWADDR_TYPE
    QUERY4_REMOTE_HWADDR
    QUERY4_REMOTE_HWADDR_TYPE
-   QUERY4_RAI
-   QUERY4_RAI_CIRCUIT_ID
-   QUERY4_RAI_REMOTE_ID
+   QUERY4_OPTION_82
+   QUERY4_OPTION_82_SUB_OPTION_1
+   QUERY4_OPTION_82_SUB_OPTION_2
    SUBNET4_ID
    SUBNET4_NAME
    SUBNET4_PREFIX
@@ -292,9 +292,9 @@ leases4_committed
    QUERY4_LOCAL_HWADDR_TYPE
    QUERY4_REMOTE_HWADDR
    QUERY4_REMOTE_HWADDR_TYPE
-   QUERY4_RAI
-   QUERY4_RAI_CIRCUIT_ID
-   QUERY4_RAI_REMOTE_ID
+   QUERY4_OPTION_82
+   QUERY4_OPTION_82_SUB_OPTION_1
+   QUERY4_OPTION_82_SUB_OPTION_2
    LEASES4_SIZE
    DELETED_LEASES4_SIZE
 
@@ -349,9 +349,9 @@ lease4_release
    QUERY4_LOCAL_HWADDR_TYPE
    QUERY4_REMOTE_HWADDR
    QUERY4_REMOTE_HWADDR_TYPE
-   QUERY4_RAI
-   QUERY4_RAI_CIRCUIT_ID
-   QUERY4_RAI_REMOTE_ID
+   QUERY4_OPTION_82
+   QUERY4_OPTION_82_SUB_OPTION_1
+   QUERY4_OPTION_82_SUB_OPTION_2
    LEASE4_ADDRESS
    LEASE4_CLTT
    LEASE4_HOSTNAME
@@ -388,9 +388,9 @@ lease4_decline
    QUERY4_LOCAL_HWADDR_TYPE
    QUERY4_REMOTE_HWADDR
    QUERY4_REMOTE_HWADDR_TYPE
-   QUERY4_RAI
-   QUERY4_RAI_CIRCUIT_ID
-   QUERY4_RAI_REMOTE_ID
+   QUERY4_OPTION_82
+   QUERY4_OPTION_82_SUB_OPTION_1
+   QUERY4_OPTION_82_SUB_OPTION_2
    LEASE4_ADDRESS
    LEASE4_CLTT
    LEASE4_HOSTNAME
index 4c27e0a7df3fdca721554445223ba723cf99973d..9c28e4e960687fbdb2dde819a663ac544790f01c 100644 (file)
@@ -74,12 +74,7 @@ RunScriptImpl::extractInteger(ProcessEnvVars& vars,
                               const uint64_t value,
                               const string& prefix,
                               const string& suffix) {
-    string data;
-    try {
-        data = boost::lexical_cast<string>(value);
-    } catch (...) {
-    }
-    string exported_data = prefix + suffix + "=" + data;
+    string exported_data = prefix + suffix + "=" + boost::lexical_cast<string>(value);
     vars.push_back(exported_data);
 }
 
@@ -125,9 +120,10 @@ RunScriptImpl::extractOption(ProcessEnvVars& vars,
                              const string& prefix,
                              const string& suffix) {
     if (option) {
-        RunScriptImpl::extractString(vars, option->toHexString(), prefix, suffix);
-    } else {
-        RunScriptImpl::extractString(vars, "", prefix, suffix);
+        RunScriptImpl::extractString(vars, option->toHexString(),
+                                     prefix + "_OPTION_" +
+                                     boost::lexical_cast<string>(option->getType()),
+                                     suffix);
     }
 }
 
@@ -138,9 +134,10 @@ RunScriptImpl::extractSubOption(ProcessEnvVars& vars,
                                 const string& prefix,
                                 const string& suffix) {
     if (option) {
-        RunScriptImpl::extractOption(vars, option->getOption(code), prefix, suffix);
-    } else {
-        RunScriptImpl::extractString(vars, "", prefix, suffix);
+        RunScriptImpl::extractOption(vars, option->getOption(code),
+                                     prefix + "_OPTION_" +
+                                     boost::lexical_cast<string>(option->getType()) +
+                                     "_SUB", suffix);
     }
 }
 
@@ -376,15 +373,15 @@ RunScriptImpl::extractPkt4(ProcessEnvVars& vars,
                                      prefix + "_REMOTE_HWADDR", suffix);
         RunScriptImpl::extractOption(vars,
                                      pkt4->getOption(DHO_DHCP_AGENT_OPTIONS),
-                                     prefix + "_RAI", suffix);
+                                     prefix, suffix);
         RunScriptImpl::extractSubOption(vars,
                                         pkt4->getOption(DHO_DHCP_AGENT_OPTIONS),
                                         RAI_OPTION_AGENT_CIRCUIT_ID,
-                                        prefix + "_RAI_CIRCUIT_ID", suffix);
+                                        prefix, suffix);
         RunScriptImpl::extractSubOption(vars,
                                         pkt4->getOption(DHO_DHCP_AGENT_OPTIONS),
                                         RAI_OPTION_REMOTE_ID,
-                                        prefix + "_RAI_REMOTE_ID", suffix);
+                                        prefix, suffix);
     } else {
         RunScriptImpl::extractString(vars, "", prefix + "_TYPE", suffix);
         RunScriptImpl::extractString(vars, "", prefix + "_TXID", suffix);
@@ -408,11 +405,6 @@ RunScriptImpl::extractPkt4(ProcessEnvVars& vars,
                                      prefix + "_LOCAL_HWADDR", suffix);
         RunScriptImpl::extractHWAddr(vars, HWAddrPtr(),
                                      prefix + "_REMOTE_HWADDR", suffix);
-        RunScriptImpl::extractString(vars, "", prefix + "_RAI", suffix);
-        RunScriptImpl::extractString(vars, "",
-                                     prefix + "_RAI_CIRCUIT_ID", suffix);
-        RunScriptImpl::extractString(vars, "",
-                                     prefix + "_RAI_REMOTE_ID", suffix);
     }
 }
 
index 9398abcbda87009c39d1c679f41a885cb7ee1374..fadda828f481a82f7ff11d36aba03202f98d7858 100644 (file)
@@ -235,9 +235,9 @@ QUERY4_LOCAL_HWADDR
 QUERY4_LOCAL_HWADDR_TYPE
 QUERY4_REMOTE_HWADDR
 QUERY4_REMOTE_HWADDR_TYPE
-QUERY4_RAI
-QUERY4_RAI_CIRCUIT_ID
-QUERY4_RAI_REMOTE_ID
+QUERY4_OPTION_82
+QUERY4_OPTION_82_SUB_OPTION_1
+QUERY4_OPTION_82_SUB_OPTION_2
 SUBNET4_ID
 SUBNET4_NAME
 SUBNET4_PREFIX
@@ -316,9 +316,9 @@ QUERY4_LOCAL_HWADDR
 QUERY4_LOCAL_HWADDR_TYPE
 QUERY4_REMOTE_HWADDR
 QUERY4_REMOTE_HWADDR_TYPE
-QUERY4_RAI
-QUERY4_RAI_CIRCUIT_ID
-QUERY4_RAI_REMOTE_ID
+QUERY4_OPTION_82
+QUERY4_OPTION_82_SUB_OPTION_1
+QUERY4_OPTION_82_SUB_OPTION_2
 LEASES4_SIZE
 DELETED_LEASES4_SIZE
 
@@ -377,9 +377,9 @@ QUERY4_LOCAL_HWADDR
 QUERY4_LOCAL_HWADDR_TYPE
 QUERY4_REMOTE_HWADDR
 QUERY4_REMOTE_HWADDR_TYPE
-QUERY4_RAI
-QUERY4_RAI_CIRCUIT_ID
-QUERY4_RAI_REMOTE_ID
+QUERY4_OPTION_82
+QUERY4_OPTION_82_SUB_OPTION_1
+QUERY4_OPTION_82_SUB_OPTION_2
 LEASE4_ADDRESS
 LEASE4_CLTT
 LEASE4_HOSTNAME
@@ -418,9 +418,9 @@ QUERY4_LOCAL_HWADDR
 QUERY4_LOCAL_HWADDR_TYPE
 QUERY4_REMOTE_HWADDR
 QUERY4_REMOTE_HWADDR_TYPE
-QUERY4_RAI
-QUERY4_RAI_CIRCUIT_ID
-QUERY4_RAI_REMOTE_ID
+QUERY4_OPTION_82
+QUERY4_OPTION_82_SUB_OPTION_1
+QUERY4_OPTION_82_SUB_OPTION_2
 LEASE4_ADDRESS
 LEASE4_CLTT
 LEASE4_HOSTNAME
index 9ac05902ed81989464898a55bbe05a4c084baa93..9ebb2d75dd1b4afdb2c3f5f5a8626735dc6f9e55 100644 (file)
@@ -64,9 +64,9 @@ lease4_renew () {
     TEST_EQ "QUERY4_LOCAL_HWADDR_TYPE" "1"
     TEST_EQ "QUERY4_REMOTE_HWADDR" "00:01:02:03"
     TEST_EQ "QUERY4_REMOTE_HWADDR_TYPE" "1"
-    TEST_EQ "QUERY4_RAI" "0x0105686F776479020587F67977EF06061A2B3C4D5E6F"
-    TEST_EQ "QUERY4_RAI_CIRCUIT_ID" "0x686F776479"
-    TEST_EQ "QUERY4_RAI_REMOTE_ID" "0x87F67977EF"
+    TEST_EQ "QUERY4_OPTION_82" "0x0105686F776479020587F67977EF06061A2B3C4D5E6F"
+    TEST_EQ "QUERY4_OPTION_82_SUB_OPTION_1" "0x686F776479"
+    TEST_EQ "QUERY4_OPTION_82_SUB_OPTION_2" "0x87F67977EF"
     TEST_EQ "SUBNET4_ID" "6"
     TEST_EQ "SUBNET4_NAME" "182.168.0.1/2"
     TEST_EQ "SUBNET4_PREFIX" "182.168.0.1"
@@ -136,9 +136,9 @@ leases4_committed () {
     TEST_EQ "QUERY4_LOCAL_HWADDR_TYPE" "1"
     TEST_EQ "QUERY4_REMOTE_HWADDR" "00:01:02:03"
     TEST_EQ "QUERY4_REMOTE_HWADDR_TYPE" "1"
-    TEST_EQ "QUERY4_RAI" "0x0105686F776479020587F67977EF06061A2B3C4D5E6F"
-    TEST_EQ "QUERY4_RAI_CIRCUIT_ID" "0x686F776479"
-    TEST_EQ "QUERY4_RAI_REMOTE_ID" "0x87F67977EF"
+    TEST_EQ "QUERY4_OPTION_82" "0x0105686F776479020587F67977EF06061A2B3C4D5E6F"
+    TEST_EQ "QUERY4_OPTION_82_SUB_OPTION_1" "0x686F776479"
+    TEST_EQ "QUERY4_OPTION_82_SUB_OPTION_2" "0x87F67977EF"
     TEST_EQ "LEASES4_SIZE" "2"
     TEST_EQ "LEASES4_AT0_ADDRESS" ""
     TEST_EQ "LEASES4_AT0_CLTT" ""
@@ -203,9 +203,9 @@ lease4_release () {
     TEST_EQ "QUERY4_LOCAL_HWADDR_TYPE" "1"
     TEST_EQ "QUERY4_REMOTE_HWADDR" "00:01:02:03"
     TEST_EQ "QUERY4_REMOTE_HWADDR_TYPE" "1"
-    TEST_EQ "QUERY4_RAI" "0x0105686F776479020587F67977EF06061A2B3C4D5E6F"
-    TEST_EQ "QUERY4_RAI_CIRCUIT_ID" "0x686F776479"
-    TEST_EQ "QUERY4_RAI_REMOTE_ID" "0x87F67977EF"
+    TEST_EQ "QUERY4_OPTION_82" "0x0105686F776479020587F67977EF06061A2B3C4D5E6F"
+    TEST_EQ "QUERY4_OPTION_82_SUB_OPTION_1" "0x686F776479"
+    TEST_EQ "QUERY4_OPTION_82_SUB_OPTION_2" "0x87F67977EF"
     TEST_EQ "LEASE4_ADDRESS" "192.168.0.1"
     TEST_EQ "LEASE4_CLTT" "3"
     TEST_EQ "LEASE4_HOSTNAME" "test.hostname"
@@ -241,9 +241,9 @@ lease4_decline () {
     TEST_EQ "QUERY4_LOCAL_HWADDR_TYPE" "1"
     TEST_EQ "QUERY4_REMOTE_HWADDR" "00:01:02:03"
     TEST_EQ "QUERY4_REMOTE_HWADDR_TYPE" "1"
-    TEST_EQ "QUERY4_RAI" "0x0105686F776479020587F67977EF06061A2B3C4D5E6F"
-    TEST_EQ "QUERY4_RAI_CIRCUIT_ID" "0x686F776479"
-    TEST_EQ "QUERY4_RAI_REMOTE_ID" "0x87F67977EF"
+    TEST_EQ "QUERY4_OPTION_82" "0x0105686F776479020587F67977EF06061A2B3C4D5E6F"
+    TEST_EQ "QUERY4_OPTION_82_SUB_OPTION_1" "0x686F776479"
+    TEST_EQ "QUERY4_OPTION_82_SUB_OPTION_2" "0x87F67977EF"
     TEST_EQ "LEASE4_ADDRESS" "192.168.0.1"
     TEST_EQ "LEASE4_CLTT" "3"
     TEST_EQ "LEASE4_HOSTNAME" "test.hostname"
index 9fa05277f27b558da9fe331478e5e3fbf6e0ee3b..420461eaf996a2d03837077d5449cd611c3cd836 100644 (file)
@@ -429,15 +429,12 @@ TEST(RunScript, extractOption) {
     ProcessEnvVars vars;
     OptionPtr option;
     RunScriptImpl::extractOption(vars, option, "OPTION_PREFIX", "_OPTION_SUFFIX");
-    ASSERT_EQ(1, vars.size());
-    string expected = "OPTION_PREFIX_OPTION_SUFFIX=\n";
-    EXPECT_EQ(expected, join(vars));
-    vars.clear();
+    ASSERT_EQ(0, vars.size());
     OptionBuffer buffer = { 0xca, 0xfe, 0xba, 0xbe };
     option = generateOption(Option::V4, DHO_USER_CLASS, buffer);
     RunScriptImpl::extractOption(vars, option, "OPTION_PREFIX", "_OPTION_SUFFIX");
     ASSERT_EQ(1, vars.size());
-    expected = "OPTION_PREFIX_OPTION_SUFFIX=0xCAFEBABE\n";
+    std::string expected = "OPTION_PREFIX_OPTION_77_OPTION_SUFFIX=0xCAFEBABE\n";
     EXPECT_EQ(expected, join(vars));
 }
 
@@ -446,10 +443,7 @@ TEST(RunScript, extractSubOption) {
     ProcessEnvVars vars;
     OptionPtr option;
     RunScriptImpl::extractOption(vars, option, "OPTION_SUBOPTION_PREFIX", "_OPTION_SUBOPTION_SUFFIX");
-    ASSERT_EQ(1, vars.size());
-    string expected = "OPTION_SUBOPTION_PREFIX_OPTION_SUBOPTION_SUFFIX=\n";
-    EXPECT_EQ(expected, join(vars));
-    vars.clear();
+    ASSERT_EQ(0, vars.size());
     OptionBuffer data;
     option = generateOption(Option::V4, DHO_DHCP_AGENT_OPTIONS, data);
     uint8_t subscriber_id[] = { 0x1a, 0x2b, 0x3c, 0x4d, 0x5e, 0x6f };
@@ -459,7 +453,7 @@ TEST(RunScript, extractSubOption) {
     option->addOption(subscriber_id_opt);
     RunScriptImpl::extractSubOption(vars, option, RAI_OPTION_SUBSCRIBER_ID, "OPTION_SUBOPTION_PREFIX", "_OPTION_SUBOPTION_SUFFIX");
     ASSERT_EQ(1, vars.size());
-    expected = "OPTION_SUBOPTION_PREFIX_OPTION_SUBOPTION_SUFFIX=0x1A2B3C4D5E6F\n";
+    std::string expected = "OPTION_SUBOPTION_PREFIX_OPTION_82_SUB_OPTION_6_OPTION_SUBOPTION_SUFFIX=0x1A2B3C4D5E6F\n";
     EXPECT_EQ(expected, join(vars));
 }
 
@@ -686,7 +680,7 @@ TEST(RunScript, extractPkt4) {
     ProcessEnvVars vars;
     Pkt4Ptr pkt4;
     RunScriptImpl::extractPkt4(vars, pkt4, "PKT4_PREFIX", "_PKT4_SUFFIX");
-    ASSERT_EQ(25, vars.size());
+    ASSERT_EQ(22, vars.size());
     string expected = "PKT4_PREFIX_TYPE_PKT4_SUFFIX=\n"
                       "PKT4_PREFIX_TXID_PKT4_SUFFIX=\n"
                       "PKT4_PREFIX_LOCAL_ADDR_PKT4_SUFFIX=\n"
@@ -708,10 +702,7 @@ TEST(RunScript, extractPkt4) {
                       "PKT4_PREFIX_LOCAL_HWADDR_PKT4_SUFFIX=\n"
                       "PKT4_PREFIX_LOCAL_HWADDR_TYPE_PKT4_SUFFIX=\n"
                       "PKT4_PREFIX_REMOTE_HWADDR_PKT4_SUFFIX=\n"
-                      "PKT4_PREFIX_REMOTE_HWADDR_TYPE_PKT4_SUFFIX=\n"
-                      "PKT4_PREFIX_RAI_PKT4_SUFFIX=\n"
-                      "PKT4_PREFIX_RAI_CIRCUIT_ID_PKT4_SUFFIX=\n"
-                      "PKT4_PREFIX_RAI_REMOTE_ID_PKT4_SUFFIX=\n";
+                      "PKT4_PREFIX_REMOTE_HWADDR_TYPE_PKT4_SUFFIX=\n";
     EXPECT_EQ(expected, join(vars));
     vars.clear();
     pkt4 = generatePkt4();
@@ -739,9 +730,9 @@ TEST(RunScript, extractPkt4) {
                "PKT4_PREFIX_LOCAL_HWADDR_TYPE_PKT4_SUFFIX=1\n"
                "PKT4_PREFIX_REMOTE_HWADDR_PKT4_SUFFIX=00:01:02:03\n"
                "PKT4_PREFIX_REMOTE_HWADDR_TYPE_PKT4_SUFFIX=1\n"
-               "PKT4_PREFIX_RAI_PKT4_SUFFIX=0x0105686F776479020587F67977EF06061A2B3C4D5E6F\n"
-               "PKT4_PREFIX_RAI_CIRCUIT_ID_PKT4_SUFFIX=0x686F776479\n"
-               "PKT4_PREFIX_RAI_REMOTE_ID_PKT4_SUFFIX=0x87F67977EF\n";
+               "PKT4_PREFIX_OPTION_82_PKT4_SUFFIX=0x0105686F776479020587F67977EF06061A2B3C4D5E6F\n"
+               "PKT4_PREFIX_OPTION_82_SUB_OPTION_1_PKT4_SUFFIX=0x686F776479\n"
+               "PKT4_PREFIX_OPTION_82_SUB_OPTION_2_PKT4_SUFFIX=0x87F67977EF\n";
     EXPECT_EQ(expected, join(vars));
 }