#!/bin/bash
+# I, Ian Kelling, follow the GNU license recommendations at
+# https://www.gnu.org/licenses/license-recommendations.en.html. They
+# recommend that small programs, < 300 lines, be licensed under the
+# Apache License 2.0. This file contains or is part of one or more small
+# programs. If a small program grows beyond 300 lines, I plan to switch
+# its license to GPL.
+
+# Copyright 2024 Ian Kelling
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
# Usage: run to trust or untrust dns. public wifi sometimes needs to
# trust dns initially to log in.
[[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@"
-source /a/bin/errhandle/err
+source /a/bin/bash-bear-trap/bash-bear
-readonly this_file=$(readlink -f -- "${BASH_SOURCE[0]}")
-readonly this_dir="${this_file%/*}"
script_name="${BASH_SOURCE[0]}"
script_name="${script_name##*/}"
rm -rf $tmpdir
}
-e $script_name
-exit 0
-
# i symlinked the script to another name to make it work different
trust=true
case $script_name in
fi
fi
- rm -fv /etc/systemd/resolved.conf.d/untrusted-network.conf
+ # https://github.com/jonathanio/update-systemd-resolved
+ # suggests this will help prevent leakage into a vpn interface
+ cat >/etc/systemd/resolved.conf.d/untrusted-network.conf <<EOF
+Domains=~.
+EOF
else #untrusted
# https://wiki.archlinux.org/index.php/Systemd-resolved#Manually
cat >/etc/systemd/resolved.conf.d/untrusted-network.conf <<EOF
[Resolve]
DNS=${servers[@]}
-Domains=b8.nz
+Domains=~. b8.nz
DNSOverTLS=yes
EOF
# wait for networkmanager to come back
-for f in {1..20}; do
+for ((i=0; i<10; i++)); do
if read -r _ _ _ _ gateway_if _ < <(ip route get 8.8.8.8); then
break
fi
m ifup $gateway_if
fi
- # at least on systemd 237 ifupdown it sets a global and this is not needed
- systemd-resolve --interface=$gateway_if --revert
+ # At least on systemd 237 ifupdown it sets a global and this is not
+ # needed. we are way past that, but I dont think it hurts.
+ resolvectl revert $gateway_if
else
e $0: no gateway_if found
fi