From d38d3d5d6e1b613538c3a1a6ad760f3e76f8155c Mon Sep 17 00:00:00 2001 From: Vincent Li Date: Wed, 3 Dec 2025 19:59:48 +0000 Subject: [PATCH] dns: add new unbound-dhcp-leases-client script to send events to the bridge commit 7397809eb4cda1c51af68343d7d1efc414356e07 Author: Michael Tremer Date: Fri May 10 16:06:23 2024 +0100 unbound-dhcp-leases-client: A new script to send events to the bridge Signed-off-by: Michael Tremer Signed-off-by: Vincent Li --- config/unbound/unbound-dhcp-leases-client | 75 +++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 config/unbound/unbound-dhcp-leases-client diff --git a/config/unbound/unbound-dhcp-leases-client b/config/unbound/unbound-dhcp-leases-client new file mode 100644 index 000000000..b1b6291d9 --- /dev/null +++ b/config/unbound/unbound-dhcp-leases-client @@ -0,0 +1,75 @@ +#!/bin/bash +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2016 Michael Tremer # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +SOCKET="/var/run/unbound-dhcp-leases-bridge.sock" + +main() { + local event="${1}" + shift + + # Check if we have received an event + if [ -z "${event}" ]; then + echo "${0}: Missing event" >&2 + return 2 + fi + + # Check if the socket exists + if [ ! -S "${SOCKET}" ]; then + echo "${0}: ${SOCKET} does not exist" >&2 + return 1 + fi + + # Connect to the socket + coproc NC { nc -U "${SOCKET}"; } + + local arg + local response + + # Send the message + { + # Send the event + echo "EVENT=${event}" + + # Send all arguments + for arg in $@; do + echo "${arg}" + done + } >&"${NC[1]}" + + # Close the input part of the connection + exec {NC[1]}>&- + + # Capture the response + read response <&"${NC[0]}" + + case "${response}" in + OK) + return 0 + ;; + + *) + echo "${response}" >&2 + return 1 + ;; + esac +} + +main "$@" || exit $?