[PATCH] wg-quick: use resolvectl if present to set dns
Nathan Chancellor
natechancellor at gmail.com
Sat Aug 4 02:01:12 CEST 2018
On Wed, Aug 01, 2018 at 02:04:25PM +0200, j at mailb.org wrote:
>
> 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
> WireGuard at lists.zx2c4.com
> https://lists.zx2c4.com/mailman/listinfo/wireguard
I'd argue a better way to check if a command is available is the command
built-in:
if command -v resolvconf >/dev/null; then
do stuff
fi
The user may have resolvconf available in PATH but not in that location.
Jason can comment on if this makes sense, I don't use wg-quick on Linux.
Nathan
More information about the WireGuard
mailing list