From 7397809eb4cda1c51af68343d7d1efc414356e07 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Fri, 10 May 2024 16:06:23 +0100 Subject: [PATCH] unbound-dhcp-leases-client: A new script to send events to the bridge Signed-off-by: Michael Tremer --- config/rootfiles/common/unbound | 1 + config/unbound/unbound-dhcp-leases-client | 75 +++++++++++++++++++++++ lfs/unbound | 2 + 3 files changed, 78 insertions(+) create mode 100644 config/unbound/unbound-dhcp-leases-client diff --git a/config/rootfiles/common/unbound b/config/rootfiles/common/unbound index 95dafc4da..6caff464d 100644 --- a/config/rootfiles/common/unbound +++ b/config/rootfiles/common/unbound @@ -19,6 +19,7 @@ usr/sbin/unbound-checkconf usr/sbin/unbound-control usr/sbin/unbound-control-setup usr/sbin/unbound-dhcp-leases-bridge +usr/sbin/unbound-dhcp-leases-client usr/sbin/unbound-host #usr/share/man/man1/unbound-host.1 #usr/share/man/man3/libunbound.3 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 $? diff --git a/lfs/unbound b/lfs/unbound index f09e76b1b..1e5ac9efa 100644 --- a/lfs/unbound +++ b/lfs/unbound @@ -99,6 +99,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # Install DHCP leases bridge install -v -m 755 $(DIR_SRC)/config/unbound/unbound-dhcp-leases-bridge \ /usr/sbin/unbound-dhcp-leases-bridge + install -v -m 755 $(DIR_SRC)/config/unbound/unbound-dhcp-leases-client \ + /usr/sbin/unbound-dhcp-leases-client # Install key -mkdir -pv /var/lib/unbound -- 2.39.5