X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=trusted-network;h=a4325339c541c7db0c11c75dc8d16802cfae312d;hb=HEAD;hp=755fb1f5239dd999f2388471ee6fe09e352eb25b;hpb=d67edcdca8795a4bca116aa532d02dda246a6f53;p=distro-setup diff --git a/trusted-network b/trusted-network index 755fb1f..d065009 100755 --- a/trusted-network +++ b/trusted-network @@ -1,4 +1,25 @@ #!/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. @@ -80,10 +101,33 @@ EOF fi fi +# t11 uses dhclient.conf dhclient_restart=false # man dhclient.conf -if ! grep -qP '\bdomain-name-servers\b' /etc/dhcp/dhclient.conf; then - sed -i 's/^ *request/request domain-name-servers,/' /etc/dhcp/dhclient.conf +f=/etc/dhcp/dhclient.conf +if [[ -e $f ]]; then + if $trust; then + if ! grep -qP '\bdomain-name-servers\b' $f; then + sed -i 's/^ *request/request domain-name-servers,/' $f + dhclient_restart=true + e $0: dhclient_restart=true + fi + else + if grep -qP '\bdomain-name-servers\b' $f; then + sed -i 's/^ *request domain-name-servers,/request/' $f + dhclient_restart=true + e $0: dhclient_restart=true + fi + fi +fi + +# t12 uses dhclient.conf +f=/etc/dhcpcd.conf +# note: haven't tested +if ! $trust; then + line="nooption domain_name_servers" +fi +if [[ -e $f ]] && ! echo $line | cedit $f; then dhclient_restart=true e $0: dhclient_restart=true fi @@ -106,7 +150,7 @@ if [[ $gateway_if ]]; then # rm -f /run/systemd/resolved.conf.d/*$gateway_if* - if $dhclient_restart && grep -Pq "^ *auto ($gateway_if|.* $gateway_if( |$))" /etc/network/interfaces; then + if $dhclient_restart && grep -Pq "^ *auto ($gateway_if|.* $gateway_if( |$))" /etc/network/interfaces &>/dev/null; then m ifdown $gateway_if m ifup $gateway_if fi