summaryrefslogtreecommitdiffstats
path: root/debian/knot-resolver.preinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/knot-resolver.preinst')
-rw-r--r--debian/knot-resolver.preinst29
1 files changed, 29 insertions, 0 deletions
diff --git a/debian/knot-resolver.preinst b/debian/knot-resolver.preinst
new file mode 100644
index 0000000..c6df754
--- /dev/null
+++ b/debian/knot-resolver.preinst
@@ -0,0 +1,29 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-3.0-or-later
+set -e
+
+# upgrade-4-to-5
+if [ -f /lib/systemd/system/kresd.socket ] ; then
+ export UPG_DIR=/var/lib/knot-resolver/.upgrade-4-to-5
+ mkdir -p ${UPG_DIR}
+ touch ${UPG_DIR}/.unfinished
+
+ for sock in kresd.socket kresd-tls.socket ; do
+ if deb-systemd-helper is-enabled ${sock} 2>/dev/null | grep -qv masked ; then
+ #TODO: handle systems not running systemd
+ systemctl show ${sock} -p Listen > ${UPG_DIR}/${sock}
+ case "$(systemctl show ${sock} -p BindIPv6Only)" in
+ *ipv6-only)
+ touch ${UPG_DIR}/${sock}.v6only
+ ;;
+ *default)
+ if cat /proc/sys/net/ipv6/bindv6only | grep -q 1 ; then
+ touch ${UPG_DIR}/${sock}.v6only
+ fi
+ ;;
+ esac
+ fi
+ done
+fi
+
+#DEBHELPER#