lease-script: split scripts for de/assign, add debug log

This commit is contained in:
Christian Hesse 2019-01-15 10:29:12 +01:00
parent eb14820f2e
commit 07973066c9

View file

@ -3,18 +3,32 @@
# Copyright (c) 2013-2019 Christian Hesse <mail@eworm.de> # Copyright (c) 2013-2019 Christian Hesse <mail@eworm.de>
# #
# run scripts on DHCP lease # run scripts on DHCP lease
# ( / ip dhcp-server set lease-script=lease-script [ find ] )
:local Scripts { :local Scripts;
:local ScriptsAssign {
"dhcp-to-dns"; "dhcp-to-dns";
"collect-wireless-mac.local"; "collect-wireless-mac.local";
"dhcp-lease-comment.local"; "dhcp-lease-comment.local";
"collect-wireless-mac.capsman"; "collect-wireless-mac.capsman";
"dhcp-lease-comment.capsman" "dhcp-lease-comment.capsman"
} }
:local ScriptsDeAssign {
"dhcp-to-dns"
}
# delay a second to give time to update the lease table :local State "";
:delay 1s; :if ($leaseBound = 0) do={
:set State "de";
:set Scripts $ScriptsDeAssign;
} else={
:set Scripts $ScriptsAssign;
}
:log debug ("DHCP Server " . $leaseServerName . " " . \
$State . "assigned lease " . $leaseActIP . " to " . $leaseActMAC);
# delay a moment to update the lease table, do not run in parallel for de/assign
:delay ((1 + $leaseBound) . "s");
:foreach Script in=$Scripts do={ :foreach Script in=$Scripts do={
:if ([ / system script print count-only where name=$Script ] > 0) do={ :if ([ / system script print count-only where name=$Script ] > 0) do={