summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@G5.local>2009-10-25 21:47:22 -0400
committerScott Ullrich <sullrich@G5.local>2009-10-25 21:47:22 -0400
commit30cee7b2552597128da44cf4c6aae8a71c76fe96 (patch)
tree791defc88a8cb676361018ddfac8fd7846d8b57d
parent8995a99c4bf0986d208f45c83619dd97df34da11 (diff)
downloadpfsense-30cee7b2552597128da44cf4c6aae8a71c76fe96.zip
pfsense-30cee7b2552597128da44cf4c6aae8a71c76fe96.tar.gz
Add dns server discovered with ppp
-rw-r--r--etc/inc/system.inc40
1 files changed, 25 insertions, 15 deletions
diff --git a/etc/inc/system.inc b/etc/inc/system.inc
index 2e71b16..a2a2815 100644
--- a/etc/inc/system.inc
+++ b/etc/inc/system.inc
@@ -69,19 +69,19 @@ function system_resolvconf_generate($dynupdate = false) {
echo "system_resolvconf_generate() being called $mt\n";
}
- $syscfg = $config['system'];
+ $syscfg = $config['system'];
- $fd = fopen("{$g['varetc_path']}/resolv.conf", "w");
- if (!$fd) {
- printf("Error: cannot open resolv.conf in system_resolvconf_generate().\n");
- return 1;
- }
+ $fd = fopen("{$g['varetc_path']}/resolv.conf", "w");
+ if (!$fd) {
+ printf("Error: cannot open resolv.conf in system_resolvconf_generate().\n");
+ return 1;
+ }
- $resolvconf = "domain {$syscfg['domain']}\n";
+ $resolvconf = "domain {$syscfg['domain']}\n";
- $havedns = false;
+ $havedns = false;
- if (isset($syscfg['dnsallowoverride'])) {
+ if (isset($syscfg['dnsallowoverride'])) {
/* get dynamically assigned DNS servers (if any) */
$ns = array_unique(get_nameservers());
foreach($ns as $nameserver) {
@@ -90,8 +90,8 @@ function system_resolvconf_generate($dynupdate = false) {
$havedns = true;
}
}
- }
- if (!$havedns && is_array($syscfg['dnsserver'])) {
+ }
+ if (!$havedns && is_array($syscfg['dnsserver'])) {
foreach ($syscfg['dnsserver'] as $ns) {
if ($ns) {
$resolvconf .= "nameserver $ns\n";
@@ -100,14 +100,14 @@ function system_resolvconf_generate($dynupdate = false) {
}
}
- fwrite($fd, $resolvconf);
- fclose($fd);
+ fwrite($fd, $resolvconf);
+ fclose($fd);
- if (!$g['booting']) {
+ if (!$g['booting']) {
/* restart dhcpd (nameservers may have changed) */
if (!$dynupdate)
services_dhcpd_configure();
- }
+ }
/* setup static routes for DNS servers. */
for ($dnscounter=1; $dnscounter<5; $dnscounter++) {
@@ -133,6 +133,16 @@ function system_resolvconf_generate($dynupdate = false) {
function get_nameservers() {
global $config, $g;
$master_list = array();
+
+ // Read in ppp resolv.conf item
+ $ppp_resolv_conf = $g["varetc_path"] . "/ppp_resolv.conf";
+ if(file_exists($ppp_resolv_conf)) {
+ $dns_items = split("\n", `cat $ppp_resolv_conf | grep nameserver | cut -d' ' -f2`);
+ foreach($dns_items as $dns_item)
+ if($dns_item)
+ $master_list[] = $dns_item;
+ }
+
$dns_lists = split("\n", `ls /var/etc/nameserver_* 2>/dev/null`);
if(is_array($dns_lists)) {
foreach($dns_lists as $dns) {
OpenPOWER on IntegriCloud