From: Ronan Pigott Date: Wed, 28 Aug 2019 01:42:14 +0000 (-0700) Subject: wg-quick: linux: don't fail down when using systemd-resolved X-Git-Tag: v1.0.20191226~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4154476d89b66006ad28c6d2971de5c8aba7d527;p=thirdparty%2Fwireguard-tools.git wg-quick: linux: don't fail down when using systemd-resolved systemd-resolved has a compatibility interface for use with resolvconf scripts when resolvectl is called from a symlink from resolvconf. However, when tearing down the interface, cmd_down calls del_if and then unset_dns. In the case of systemd-resolved, deleting the interface also removes the systemd-resolved entry and causes resolvconf -d to fail when resolvconf really is a symlink to resolvectl. This causes `wg-quick down` and 'wg-quick@.service' to exit with failure. Instead we use the resolvconf '-f' flag to ignore non-existent interfaces, supported by both openresolv and sd-resolved resolvconf. Signed-off-by: Ronan Pigott [zx2c4: moved -f argument to end to remain compatible with Debian's resolvconf] Signed-off-by: Jason A. Donenfeld --- diff --git a/src/wg-quick/linux.bash b/src/wg-quick/linux.bash index 2f36dee..e690944 100755 --- a/src/wg-quick/linux.bash +++ b/src/wg-quick/linux.bash @@ -155,7 +155,7 @@ set_dns() { unset_dns() { [[ ${#DNS[@]} -gt 0 ]] || return 0 - cmd resolvconf -d "$(resolvconf_iface_prefix)$INTERFACE" + cmd resolvconf -d "$(resolvconf_iface_prefix)$INTERFACE" -f } add_route() {