mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-18 02:25:05 +00:00
interfaces: nameserver can use same file format as others #5367
Also decouple searchdomain write from nameserver write in dhclient-script and clear files properly.
This commit is contained in:
parent
c6c7e9854d
commit
b28fa22d69
@ -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");
|
||||
}
|
||||
|
||||
@ -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}
|
||||
|
||||
@ -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'])) {
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user