diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2007-12-08 23:05:08 +0000 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2007-12-08 23:05:08 +0000 |
commit | e180a6e3cd100ae365037b5b1da08f1be473107f (patch) | |
tree | 7aaa9103d1f113c64f38f91c9e7ceb3d53e90117 /etc | |
parent | 421f8b5faa721658b5f55d4ca6dc0334f260f450 (diff) | |
download | pfsense-e180a6e3cd100ae365037b5b1da08f1be473107f.zip pfsense-e180a6e3cd100ae365037b5b1da08f1be473107f.tar.gz |
When multiple gateways are present (muliwan) show a dropdown box next to each dns server allowing the operator to select which gateway the dns server should use to resolve addresses.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/system.inc | 56 |
1 files changed, 34 insertions, 22 deletions
diff --git a/etc/inc/system.inc b/etc/inc/system.inc index a66ee08..63a0dc3 100644 --- a/etc/inc/system.inc +++ b/etc/inc/system.inc @@ -94,11 +94,11 @@ EOFF; } function system_resolvconf_generate($dynupdate = false) { - global $config, $g; - if(isset($config['system']['developerspew'])) { - $mt = microtime(); - echo "system_resolvconf_generate() being called $mt\n"; - } + global $config, $g; + if(isset($config['system']['developerspew'])) { + $mt = microtime(); + echo "system_resolvconf_generate() being called $mt\n"; + } $syscfg = $config['system']; @@ -113,33 +113,45 @@ function system_resolvconf_generate($dynupdate = false) { $havedns = false; if (isset($syscfg['dnsallowoverride'])) { - /* get dynamically assigned DNS servers (if any) */ - $ns = array_unique(get_nameservers()); - foreach($ns as $nameserver) { - if($nameserver) { - $resolvconf .= "nameserver $nameserver\n"; - $havedns = true; + /* get dynamically assigned DNS servers (if any) */ + $ns = array_unique(get_nameservers()); + foreach($ns as $nameserver) { + if($nameserver) { + $resolvconf .= "nameserver $nameserver\n"; + $havedns = true; + } } - } } if (!$havedns && is_array($syscfg['dnsserver'])) { - foreach ($syscfg['dnsserver'] as $ns) { - if ($ns) { - $resolvconf .= "nameserver $ns\n"; - $havedns = true; + foreach ($syscfg['dnsserver'] as $ns) { + if ($ns) { + $resolvconf .= "nameserver $ns\n"; + $havedns = true; + } } - } - } + } fwrite($fd, $resolvconf); fclose($fd); if (!$g['booting']) { - /* restart dhcpd (nameservers may have changed) */ - if (!$dynupdate) - services_dhcpd_configure(); + /* restart dhcpd (nameservers may have changed) */ + if (!$dynupdate) + services_dhcpd_configure(); } + /* setup static routes for dns servers */ + if($config['system']['dns1gwint']) { + $if = $config['system']['dns1gwint']; + $gw = $config['interfaces'][$if]['if']; + exec("route add {$syscfg['dnsserver'][0]} -gw {$gw}"); + } + if($config['system']['dns2gwint']) { + $if = $config['system']['dns2gwint']; + $gw = $config['interfaces'][$if]['if']; + exec("route add {$syscfg['dnsserver'][1]} -gw {$gw}"); + } + return 0; } @@ -1299,4 +1311,4 @@ function enable_watchdog() { } } -?> +?>
\ No newline at end of file |