only use resolvconf is available, fall back to resolvectl if present
otherwise. don't set dns if both are missing.

---
 src/tools/wg-quick/linux.bash | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)


diff --git a/src/tools/wg-quick/linux.bash b/src/tools/wg-quick/linux.bash
index 3f1976b..f86f0c8 100755
--- a/src/tools/wg-quick/linux.bash
+++ b/src/tools/wg-quick/linux.bash
@@ -151,13 +151,21 @@ resolvconf_iface_prefix() {
 HAVE_SET_DNS=0
 set_dns() {
 	[[ ${#DNS[@]} -gt 0 ]] || return 0
-	printf 'nameserver %s\n' "${DNS[@]}" | cmd resolvconf -a "$(resolvconf_iface_prefix)$INTERFACE" -m 0 -x
+	if [ -x /usr/bin/resolvconf ]; then
+		printf 'nameserver %s\n' "${DNS[@]}" | cmd resolvconf -a "$(resolvconf_iface_prefix)$INTERFACE" -m 0 -x
+	elif [ -x /usr/bin/resolvectl ]; then
+		cmd resolvectl dns $INTERFACE "${DNS[@]}"
+	fi
 	HAVE_SET_DNS=1
 }
 
 unset_dns() {
 	[[ ${#DNS[@]} -gt 0 ]] || return 0
-	cmd resolvconf -d "$(resolvconf_iface_prefix)$INTERFACE"
+	if [ -x /usr/bin/resolvconf ]; then
+		cmd resolvconf -d "$(resolvconf_iface_prefix)$INTERFACE"
+	elif [ -x /usr/bin/resolvectl ]; then
+		cmd resolvectl revert $INTERFACE
+	fi
 }
 
 add_route() {

_______________________________________________
WireGuard mailing list
[email protected]
https://lists.zx2c4.com/mailman/listinfo/wireguard

Reply via email to