diff --git a/pfsense_zbx.php b/pfsense_zbx.php index 6b5f354..e940ca5 100644 --- a/pfsense_zbx.php +++ b/pfsense_zbx.php @@ -8,9 +8,40 @@ This program is licensed under Apache 2.0 License */ //Some Useful defines - define('SPEEDTEST_INTERVAL', 8); //Speedtest Interval (in hours) +$exec_0 = fn(callable $f) => $f; +$exec_1 = fn(callable $f) => fn($parameters) => $f($parameters[0]); +$exec_2 = fn(callable $f) => fn($parameters) => $f($parameters[0], $parameters[1]); +define('COMMAND_HANDLERS', [ + "carp_status" => $exec_0(fn() => pfz_carp_status()), + "cert_date" => $exec_1(fn($p0) => pfz_get_cert_date($p0)), + "cron_cleanup" => $exec_0(fn() => pfz_speedtest_cron_install(false)), + "dhcp" => $exec_2(fn($p0, $p1) => pfz_dhcp($p0, $p1)), + "discovery" => $exec_1(fn($p0) => pfz_discovery($p0)), + "file_exists" => $exec_1(fn($p0) => pfz_file_exists($p0)), + "gw_status" => $exec_0(fn() => pfz_gw_rawstatus()), + "gw_value" => $exec_2(fn($p0, $p1) => pfz_gw_value($p0, $p1)), + "if_name" => $exec_1(fn($p0) => pfz_get_if_name($p0)), + "if_speedtest_value" => $exec_2(function ($p0, $p1) { + pfz_speedtest_cron_install(); + pfz_interface_speedtest_value($p0, $p1); + }), + "ipsec_ph1" => $exec_2(fn($p0, $p1) => pfz_ipsec_ph1($p0, $p1)), + "ipsec_ph2" => $exec_2(fn($p0, $p1) => pfz_ipsec_ph2($p0, $p1)), + "openvpn_clientvalue" => $exec_2(fn($p0, $p1) => pfz_openvpn_clientvalue($p0, $p1)), + "openvpn_server_uservalue" => $exec_2(fn($p0, $p1) => pfz_openvpn_server_uservalue($p0, $p1)), + "openvpn_server_uservalue_numeric" => $exec_2(fn($p0, $p1) => pfz_openvpn_server_uservalue($p0, $p1, "0")), + "openvpn_servervalue" => $exec_2(fn($p0, $p1) => pfz_openvpn_servervalue($p0, $p1)), + "service_value" => $exec_2(fn($p0, $p1) => pfz_service_value($p0, $p1)), + "speedtest_cron" => $exec_0(function () { + pfz_speedtest_cron_install(); + pfz_speedtest_cron(); + }), + "smart_status" => $exec_0(fn() => pfz_get_smart_status()), + "system" => $exec_1(fn($p0) => pfz_get_system_value($p0)), + "temperature" => $exec_1(fn($p0) => pfz_get_temperature($p0)), +]); require_once('globals.inc'); require_once('functions.inc'); require_once('config.inc'); @@ -1274,40 +1305,6 @@ function pfz_discovery($section){ } } -$exec_0 = fn(callable $f) => $f; -$exec_1 = fn(callable $f) => fn($parameters) => $f($parameters[0]); -$exec_2 = fn(callable $f) => fn($parameters) => $f($parameters[0], $parameters[1]); - -define('COMMAND_HANDLERS', [ - "carp_status" => $exec_0(fn() => pfz_carp_status()), - "cert_date" => $exec_1(fn($p0) => pfz_get_cert_date($p0)), - "cron_cleanup" => $exec_0(fn() => pfz_speedtest_cron_install(false)), - "dhcp" => $exec_2(fn($p0, $p1) => pfz_dhcp($p0, $p1)), - "discovery" => $exec_1(fn($p0) => pfz_discovery($p0)), - "file_exists" => $exec_1(fn($p0) => pfz_file_exists($p0)), - "gw_status" => $exec_0(fn() => pfz_gw_rawstatus()), - "gw_value" => $exec_2(fn($p0, $p1) => pfz_gw_value($p0, $p1)), - "if_name" => $exec_1(fn($p0) => pfz_get_if_name($p0)), - "if_speedtest_value" => $exec_2(function ($p0, $p1) { - pfz_speedtest_cron_install(); - pfz_interface_speedtest_value($p0, $p1); - }), - "ipsec_ph1" => $exec_2(fn($p0, $p1) => pfz_ipsec_ph1($p0, $p1)), - "ipsec_ph2" => $exec_2(fn($p0, $p1) => pfz_ipsec_ph2($p0, $p1)), - "openvpn_clientvalue" => $exec_2(fn($p0, $p1) => pfz_openvpn_clientvalue($p0, $p1)), - "openvpn_server_uservalue" => $exec_2(fn($p0, $p1) => pfz_openvpn_server_uservalue($p0, $p1)), - "openvpn_server_uservalue_numeric" => $exec_2(fn($p0, $p1) => pfz_openvpn_server_uservalue($p0, $p1, "0")), - "openvpn_servervalue" => $exec_2(fn($p0, $p1) => pfz_openvpn_servervalue($p0, $p1)), - "service_value" => $exec_2(fn($p0, $p1) => pfz_service_value($p0, $p1)), - "speedtest_cron" => $exec_0(function () { - pfz_speedtest_cron_install(); - pfz_speedtest_cron(); - }), - "smart_status" => $exec_0(fn() => pfz_get_smart_status()), - "system" => $exec_1(fn($p0) => pfz_get_system_value($p0)), - "temperature" => $exec_1(fn($p0) => pfz_get_temperature($p0)), -]); - function main($arguments) { $command = strtolower($arguments[1]);