include /lib/network
MODIFYRESOLVCONF=modify_resolvconf_openwrt
RESTORERESOLVCONF=restore_resolvconf_openwrt
-elif [ -x /usr/bin/busctl ] && [ ${RESOLVEDENABLED} = 1 ]; then
+elif [ -x /usr/bin/resolvectl ] && [ ${RESOLVEDENABLED} = 1 ]; then
# For systemd-resolved (version 229 and above)
MODIFYRESOLVCONF=modify_resolved_manager
RESTORERESOLVCONF=restore_resolved_manager
/sbin/resolvconf -d $TUNDEV
}
-AF_INET=2
-
get_if_index() {
local link
link="$(ip link show dev "$1")" || return $?
echo ${link} | awk -F: '{print $1}'
}
-busctl_call() {
- local dest node
- dest=org.freedesktop.resolve1
- node=/org/freedesktop/resolve1
- busctl call "$dest" "${node}" "${dest}.Manager" "$@"
-}
-
-busctl_set_nameservers() {
- local if_index addresses args addr
+resolvectl_set_nameservers() {
+ local if_index addresses
if_index=$1
shift
addresses="$@"
- args="$if_index $#"
- for addr in ${addresses}; do
- args="$args ${AF_INET} 4 $(echo $addr | sed 's/[.]/ /g')"
- done
- busctl_call SetLinkDNS 'ia(iay)' ${args}
+ /usr/bin/resolvectl dns $if_index $addresses
}
-busctl_set_search() {
- local if_index domains args domain
+resolvectl_set_search() {
+ local if_index domains
if_index=$1
shift
domains="$@"
- args="$if_index $#"
- for domain in ${domains}; do
- args="$args ${domain} false"
- done
- busctl_call SetLinkDomains 'ia(sb)' ${args}
+ /usr/bin/resolvectl domain $if_index $domains
}
modify_resolved_manager() {
local if_index
if_index=$(get_if_index $TUNDEV)
- busctl_set_nameservers $if_index $INTERNAL_IP4_DNS
+ resolvectl_set_nameservers $if_index $INTERNAL_IP4_DNS
if [ -n "$CISCO_DEF_DOMAIN" ]; then
- busctl_set_search $if_index $CISCO_DEF_DOMAIN
+ resolvectl_set_search $if_index $CISCO_DEF_DOMAIN
fi
}
restore_resolved_manager() {
local if_index
if_index=$(get_if_index $TUNDEV)
- busctl_call RevertLink 'i' $if_index
+ /usr/bin/resolvectl revert $if_index
}
# === resolv.conf handling via unbound =========