From: Tomek Mrugalski Date: Tue, 6 Dec 2016 19:29:31 +0000 (+0100) Subject: [5036] Support for parameters in hooks-libraries added. X-Git-Tag: trac5085_base~14 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c19f1840cc1c37c974a0536559646d6715dd139e;p=thirdparty%2Fkea.git [5036] Support for parameters in hooks-libraries added. --- diff --git a/doc/examples/kea6/hooks.json b/doc/examples/kea6/hooks.json index 85e10da445..c4039b845d 100644 --- a/doc/examples/kea6/hooks.json +++ b/doc/examples/kea6/hooks.json @@ -41,7 +41,11 @@ "library": "/opt/lib/security.so" }, { - "library": "/opt/lib/charging.so" + "library": "/opt/lib/charging.so", + "parameters": { + "path": "/var/kea/var", + "base-name": "kea-forensic6" + } } ] } diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index 0ebe6e818c..92864b74b3 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -744,6 +744,16 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} } } + +\"parameters\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: + return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_); + } +} + \"library\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index 248975084b..4de439d4d6 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -114,6 +114,7 @@ using namespace std; HOOKS_LIBRARIES "hooks-libraries" LIBRARY "library" + PARAMETERS "parameters" EXPIRED_LEASES_PROCESSING "expired-leases-processing" @@ -593,7 +594,10 @@ hooks_params: hooks_param | hooks_params COMMA hooks_param ; -hooks_param: LIBRARY { +hooks_param: library + | parameters; + +library: LIBRARY { ctx.enter(ctx.NO_KEYWORD); } COLON STRING { ElementPtr lib(new StringElement($4, ctx.loc2pos(@4))); @@ -601,6 +605,13 @@ hooks_param: LIBRARY { ctx.leave(); }; +parameters: PARAMETERS { + ctx.enter(ctx.NO_KEYWORD); +} COLON value { + ctx.stack_.back()->set("parameters", $4); + ctx.leave(); +} + // --- expired-leases-processing ------------------------ expired_leases_processing: EXPIRED_LEASES_PROCESSING { ElementPtr m(new MapElement(ctx.loc2pos(@1)));