diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index f9572fed5..1b00da375 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -1114,11 +1114,11 @@ function interface_bring_down($interface = "wan", $ifacecfg = false) } /* clear stale state files associated with this interface */ - @unlink("/tmp/nameserver_v6{$realifv6}"); - @unlink("/tmp/nameserver_{$realif}"); + @unlink("/tmp/{$realifv6}_nameserverv6"); @unlink("/tmp/{$realifv6}_pdinfo"); @unlink("/tmp/{$realifv6}_routerv6"); @unlink("/tmp/{$realifv6}_searchdomainv6"); + @unlink("/tmp/{$realif}_nameserver"); @unlink("/tmp/{$realif}_router"); @unlink("/tmp/{$realif}_searchdomain"); } diff --git a/src/etc/inc/plugins.inc.d/openvpn/ovpn-linkdown b/src/etc/inc/plugins.inc.d/openvpn/ovpn-linkdown index 1ecb75c6a..4aa3c96de 100755 --- a/src/etc/inc/plugins.inc.d/openvpn/ovpn-linkdown +++ b/src/etc/inc/plugins.inc.d/openvpn/ovpn-linkdown @@ -2,9 +2,9 @@ /sbin/pfctl -i ${1} -Fs +/bin/rm -f /tmp/${1}_nameserver +/bin/rm -f /tmp/${1}_nameserverv6 /bin/rm -f /tmp/${1}_router /bin/rm -f /tmp/${1}_routerv6 /bin/rm -f /tmp/${1}_searchdomain /bin/rm -f /tmp/${1}_searchdomainv6 -/bin/rm -f /tmp/nameserver_${1} -/bin/rm -f /tmp/nameserver_v6${1} diff --git a/src/etc/inc/system.inc b/src/etc/inc/system.inc index f4bd1ec60..1913c4007 100644 --- a/src/etc/inc/system.inc +++ b/src/etc/inc/system.inc @@ -335,17 +335,17 @@ function get_nameservers($interface = null) global $config; $master_list = array(); - $dns_lists = glob('/tmp/nameserver_*'); + $dns_lists = glob('/tmp/*_nameserver*'); $exclude_interfaces = array(); if (!empty($interface)) { /* only acquire servers provided for this interface */ $realif = get_real_interface($interface); $realifv6 = get_real_interface($interface, 'inet6'); - $dns_lists = array( - "/tmp/nameserver_{$realif}", - "/tmp/nameserver_v6{$realifv6}", - ); + $dns_lists = [ + "/tmp/{$realif}_nameserver", + "/tmp/{$realifv6}_nameserverv6", + ]; } if (isset($config['system']['dnsallowoverride_exclude'])) { diff --git a/src/etc/rc.newwanipv6 b/src/etc/rc.newwanipv6 index 1c1d82c1b..90a3422a7 100755 --- a/src/etc/rc.newwanipv6 +++ b/src/etc/rc.newwanipv6 @@ -76,7 +76,7 @@ if (!is_ipaddr($ip) && substr($interface_real, 0, 4) != 'ovpn') { } $searchdomain_file = "/tmp/{$interface_real}_searchdomainv6"; -$nameserver_file = "/tmp/nameserver_v6{$interface_real}"; +$nameserver_file = "/tmp/{$interface_real}_nameserverv6"; /* XXX from configd we don't get the caller's environment at all? */ $new_domain_name_servers = getenv('new_domain_name_servers'); diff --git a/src/opnsense/scripts/interfaces/dhclient-script b/src/opnsense/scripts/interfaces/dhclient-script index 773b2a211..f334a8bde 100755 --- a/src/opnsense/scripts/interfaces/dhclient-script +++ b/src/opnsense/scripts/interfaces/dhclient-script @@ -215,25 +215,31 @@ add_new_routes() { add_new_resolv_conf() { $LOGGER "Creating resolv.conf" - if [ -f "/tmp/nameserver_$interface" ]; then + if [ -f "/tmp/${interface}_nameserver" ]; then # Remove old entries - for nameserver in $(cat /tmp/nameserver_$interface); do + for nameserver in $(cat /tmp/${interface}_nameserver); do route delete $nameserver >/dev/null 2>&1 done fi + rm -f /tmp/${interface}_nameserver + if [ -n "$new_domain_name_servers" ]; then - rm -f /tmp/nameserver_$interface ALLOWOVERRIDE=$(grep -c dnsallowoverride /conf/config.xml) for nameserver in $new_domain_name_servers; do # Add a route to the nameserver out the correct interface # so that mulitple wans work correctly with multiple dns # also backup the nameserver for later route removal if [ $ALLOWOVERRIDE -gt 0 ]; then - echo $nameserver >> /tmp/nameserver_$interface + echo $nameserver >> /tmp/${interface}_nameserver route add $nameserver -iface $interface fi done + fi + + rm -f /tmp/${interface}_searchdomain + + if [ -n "$new_domain_name" ]; then echo $new_domain_name > /tmp/${interface}_searchdomain fi diff --git a/src/opnsense/scripts/interfaces/ppp-linkdown.sh b/src/opnsense/scripts/interfaces/ppp-linkdown.sh index 24cadfde5..0a527a4ea 100755 --- a/src/opnsense/scripts/interfaces/ppp-linkdown.sh +++ b/src/opnsense/scripts/interfaces/ppp-linkdown.sh @@ -20,12 +20,12 @@ if [ "${AF}" = "inet" ]; then route delete -${AF} default "${GW}" fi - if [ -f "/tmp/nameserver_${IF}" ]; then + if [ -f "/tmp/${IF}_nameserver" ]; then # Remove old entries - for nameserver in $(cat /tmp/nameserver_${IF}); do + for nameserver in $(cat /tmp/${IF}_nameserver); do route delete ${nameserver} done - rm -f /tmp/nameserver_${IF} + rm -f /tmp/${IF}_nameserver fi rm -f /tmp/${IF}_router @@ -39,11 +39,11 @@ elif [ "${AF}" = "inet6" ]; then route delete -${AF} default "${GW}" fi - if [ -f "/tmp/nameserver_v6${IF}" ]; then - for nameserver in $(cat /tmp/nameserver_v6${IF}); do + if [ -f "/tmp/${IF}_nameserverv6" ]; then + for nameserver in $(cat /tmp/${IF}_nameserverv6); do route delete ${nameserver} done - rm -f /tmp/nameserver_v6${IF} + rm -f /tmp/${IF}_nameserverv6 fi rm -f /tmp/${IF}_routerv6 diff --git a/src/opnsense/scripts/interfaces/ppp-linkup.sh b/src/opnsense/scripts/interfaces/ppp-linkup.sh index 7ff83e3ab..1b503d014 100755 --- a/src/opnsense/scripts/interfaces/ppp-linkup.sh +++ b/src/opnsense/scripts/interfaces/ppp-linkup.sh @@ -6,17 +6,16 @@ if [ "${2}" = "inet" ]; then echo ${4} > /tmp/${1}_router if grep -q dnsallowoverride /conf/config.xml; then - # write nameservers to file - : > /tmp/nameserver_${1} + : > /tmp/${1}_nameserver if echo "${6}" | grep -q dns1; then DNS1=$(echo "${6}" | awk '{print $2}') - echo "${DNS1}" >> /tmp/nameserver_${1} + echo "${DNS1}" >> /tmp/${1}_nameserver route delete "${DNS1}" ${4} route add "${DNS1}" ${4} fi if echo "${7}" | grep -q dns2; then DNS2=$(echo "${7}" | awk '{print $2}') - echo "${DNS2}" >> /tmp/nameserver_${1} + echo "${DNS2}" >> /tmp/${1}_nameserverv6 route delete "${DNS2}" ${4} route add "${DNS2}" ${4} fi @@ -27,17 +26,16 @@ elif [ "${2}" = "inet6" ]; then echo ${4} | cut -d% -f1 > /tmp/${1}_routerv6 if grep -q dnsallowoverride /conf/config.xml; then - # write nameservers to file - : > /tmp/nameserver_v6${1} + : > /tmp/${1}_nameserverv6 if echo "${6}" | grep -q dns1; then DNS1=$(echo "${6}" | awk '{print $2}') - echo "${DNS1}" >> /tmp/nameserver_v6${1} + echo "${DNS1}" >> /tmp/${1}_nameserverv6 route delete -inet6 "${DNS1}" ${4} route add -inet6 "${DNS1}" ${4} fi if echo "${7}" | grep -q dns2; then DNS2=$(echo "${7}" | awk '{print $2}') - echo "${DNS2}" >> /tmp/nameserver_v6${1} + echo "${DNS2}" >> /tmp/${1}_nameserverv6 route delete -inet6 "${DNS2}" ${4} route add -inet6 "${DNS2}" ${4} fi