]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[5036] Support for parameters in hooks-libraries added.
authorTomek Mrugalski <tomasz@isc.org>
Tue, 6 Dec 2016 19:29:31 +0000 (20:29 +0100)
committerTomek Mrugalski <tomasz@isc.org>
Tue, 6 Dec 2016 19:29:31 +0000 (20:29 +0100)
doc/examples/kea6/hooks.json
src/bin/dhcp6/dhcp6_lexer.ll
src/bin/dhcp6/dhcp6_parser.yy

index 85e10da445bd3dd0b1f45cb92b73c445fc945544..c4039b845d2badf2f19010bce292459e74dc212d 100644 (file)
         "library": "/opt/lib/security.so"
      },
      {
-        "library": "/opt/lib/charging.so"
+        "library": "/opt/lib/charging.so",
+        "parameters": {
+             "path": "/var/kea/var",
+             "base-name": "kea-forensic6"
+        }
      }
   ]
 }
index 0ebe6e818c138018e85f9289af9c309126ab319c..92864b74b3e6c1250efad4c9f27d43953c9220d3 100644 (file)
@@ -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:
index 248975084baff1ab74052c921e13a9ef4f91f3e3..4de439d4d6688fb9361b9a6701c4d32264c659a1 100644 (file)
@@ -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)));