diff options
author | Francis Dupont <fdupont@isc.org> | 2017-11-14 00:36:29 +0100 |
---|---|---|
committer | Francis Dupont <fdupont@isc.org> | 2018-11-29 16:42:21 +0100 |
commit | cd03f0656eb74f61f3cd443a98eaf4d7b115574c (patch) | |
tree | 96fb520fdb66631f3ba0566f5df17adad34b51db /keama | |
parent | 3ad1489b3b46da7ba22a78fa471ac8d063b30909 (diff) | |
download | isc-dhcp-cd03f0656eb74f61f3cd443a98eaf4d7b115574c.tar.gz |
Added always-sent reference for PRL/ORO hack
Diffstat (limited to 'keama')
-rw-r--r-- | keama/doc.txt | 2 | ||||
-rw-r--r-- | keama/parse.c | 26 | ||||
-rw-r--r-- | keama/tests/README | 1 | ||||
-rw-r--r-- | keama/tests/czb/kea.json | 40 | ||||
-rw-r--r-- | keama/tests/fordhcp/kea.json | 6 | ||||
-rw-r--r-- | keama/tests/hostidentifier4.outL (renamed from keama/tests/hostidentifier4.out) | 2 | ||||
-rw-r--r-- | keama/tests/optiondata4.out | 2 | ||||
-rw-r--r-- | keama/tests/runone.sh | 7 |
8 files changed, 82 insertions, 4 deletions
diff --git a/keama/doc.txt b/keama/doc.txt index 3d7fddd5..e11bbb9c 100644 --- a/keama/doc.txt +++ b/keama/doc.txt @@ -522,9 +522,7 @@ Variables: to recognize booleans and numbers. Unfortunately this is very spcific... TODO: - - missing CASE - match if *and* spawn with - host set class & setReservedClientClasses - shared network 5306, 5307 - vendor/site 5073 - - always-send 5241 diff --git a/keama/parse.c b/keama/parse.c index e28776d5..7352bfb4 100644 --- a/keama/parse.c +++ b/keama/parse.c @@ -4264,6 +4264,32 @@ parse_option_statement(struct element *result, TAILQ_INSERT_TAIL(&opt_data->comments, comment); } + /* Setting PRL is a standard hack */ + if ((option->space == space_lookup("dhcp")) && + (option->code == 55)) { + struct comment *comment; + + comment = createComment("/// Possible PRL hack"); + TAILQ_INSERT_TAIL(&opt_data->comments, comment); + comment = createComment("/// Consider setting \"always-send\" " + "to true when setting data " + "for relevant options, cf Kea #5241"); + TAILQ_INSERT_TAIL(&opt_data->comments, comment); + } + + /* Setting ORO is a standard hack */ + if ((option->space == space_lookup("dhcp6")) && + (option->code == 6)) { + struct comment *comment; + + comment = createComment("/// Possible ORO hack"); + TAILQ_INSERT_TAIL(&opt_data->comments, comment); + comment = createComment("/// Consider setting \"always-send\" " + "to true when setting data " + "for relevant options, cf Kea #5241"); + TAILQ_INSERT_TAIL(&opt_data->comments, comment); + } + token = peek_token(&val, NULL, cfile); /* We should keep a list of defined empty options */ if ((token == SEMI) && (option->format[0] != 'Z')) { diff --git a/keama/tests/README b/keama/tests/README index 48372b6a..55ddb858 100644 --- a/keama/tests/README +++ b/keama/tests/README @@ -12,6 +12,7 @@ Extensions: - .in4 = source for working test in DHCPv4 - .in6 = source for working test in DHCPv6 - .inL = source for working test in DHCPv4 with -l $HOOK + - .outL = resultat for working test with default hook library path - .out = resultat for working test There is no working test in DHCPv4 and DHCPv6. The body of the name of a working test must include 4 or 6 so diff --git a/keama/tests/czb/kea.json b/keama/tests/czb/kea.json index 221a81d5..f4511495 100644 --- a/keama/tests/czb/kea.json +++ b/keama/tests/czb/kea.json @@ -253816,6 +253816,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -290158,6 +290160,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -290332,6 +290336,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -290506,6 +290512,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -290680,6 +290688,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -290854,6 +290864,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -291028,6 +291040,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -291202,6 +291216,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -291376,6 +291392,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -291550,6 +291568,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -291724,6 +291744,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -291898,6 +291920,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -292072,6 +292096,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -292246,6 +292272,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -292420,6 +292448,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -292666,6 +292696,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -407078,6 +407110,8 @@ "code": 46, "data": "8" }, + /// Possible PRL hack + /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 { "space": "dhcp4", "name": "dhcp-parameter-request-list", @@ -407245,6 +407279,8 @@ "code": 46, "data": "8" }, + /// Possible PRL hack + /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 { "space": "dhcp4", "name": "dhcp-parameter-request-list", @@ -423219,6 +423255,8 @@ "code": 6, "data": "11.2.2.26, 142.20.10.156" }, + /// Possible PRL hack + /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 { "space": "dhcp4", "name": "dhcp-parameter-request-list", @@ -432933,6 +432971,8 @@ // } // }, // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", diff --git a/keama/tests/fordhcp/kea.json b/keama/tests/fordhcp/kea.json index de723e43..d22bf1bf 100644 --- a/keama/tests/fordhcp/kea.json +++ b/keama/tests/fordhcp/kea.json @@ -816,6 +816,8 @@ "test": "substring(option[60].hex,0,4) == 'MSFT'", "option-data": [ // # Windows doesn't put WPAD on its PRL, but does consume it. +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -945,6 +947,8 @@ // }, // "then": [ // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", @@ -1006,6 +1010,8 @@ // }, // "then": [ // { +// /// Possible PRL hack +// /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 // "option": { // "space": "dhcp4", // "name": "dhcp-parameter-request-list", diff --git a/keama/tests/hostidentifier4.out b/keama/tests/hostidentifier4.outL index 43a8dce3..c56ef414 100644 --- a/keama/tests/hostidentifier4.out +++ b/keama/tests/hostidentifier4.outL @@ -68,7 +68,7 @@ /// The flexible host identifier is a premium feature "hooks-libraries": [ { - "library": "/tmp/kea/premium/src/hooks/dhcp/flex_id/.libs/libdhcp_flex_id.so", + "library": "/path/libdhcp_flex_id.so", "parameters": { "identifier-expression": "option[250].hex" } diff --git a/keama/tests/optiondata4.out b/keama/tests/optiondata4.out index e51be66d..78c2d5cc 100644 --- a/keama/tests/optiondata4.out +++ b/keama/tests/optiondata4.out @@ -101,6 +101,8 @@ "code": 18, "data": "" }, + /// Possible PRL hack + /// Consider setting "always-send" to true when setting data for relevant options, cf Kea #5241 { "space": "dhcp4", "name": "dhcp-parameter-request-list", diff --git a/keama/tests/runone.sh b/keama/tests/runone.sh index 4fbcfb5f..e47f6034 100644 --- a/keama/tests/runone.sh +++ b/keama/tests/runone.sh @@ -38,6 +38,7 @@ fi options="" dual=0 +hook=0 case $trail in '') dual=1;; @@ -45,7 +46,7 @@ case $trail in 6) options="-6";; F) options="-4 -r fatal";; P) options="-4 -r pass";; - L) options="-4 -l ${HOOK:-/path/}";; + L) options="-4 -l ${HOOK:-/path/}"; hook=1;; *) echo "unrecognized trail '$trail' in '$full'" >&2; exit 1;; esac @@ -94,6 +95,10 @@ else fi fi +if [ $hook -eq 1 ]; then + sed s,/path/,${HOOK:-/path/}, < ${expected}L > $expected +fi + if [ $errcase -ne 0 ]; then cat $out | head -1 | diff --brief - $expected if [ $? -ne 0 ]; then |