summaryrefslogtreecommitdiffstats
path: root/etc/inc/pfsense-utils.inc
diff options
context:
space:
mode:
authorgnhb <gnoahb@gmail.com>2010-05-29 10:11:33 +0700
committergnhb <gnoahb@gmail.com>2010-05-29 10:11:33 +0700
commit68f0c07a0adab08b3fba2bc6749215e10d4d43ce (patch)
tree4c698cbfdbae5b2f37f6cb8f6051efde92cba840 /etc/inc/pfsense-utils.inc
parentd6366dd7beefba982c1e04a1f43f20cfe306808a (diff)
parent40e18a72af0d2633251ef197ff6311325ce4eae9 (diff)
downloadpfsense-68f0c07a0adab08b3fba2bc6749215e10d4d43ce.zip
pfsense-68f0c07a0adab08b3fba2bc6749215e10d4d43ce.tar.gz
Merge branch 'master' of http://gitweb.pfsense.org/pfsense/mainline into mlppp
Conflicts: etc/inc/pfsense-utils.inc usr/local/www/interfaces.php
Diffstat (limited to 'etc/inc/pfsense-utils.inc')
-rw-r--r--etc/inc/pfsense-utils.inc86
1 files changed, 36 insertions, 50 deletions
diff --git a/etc/inc/pfsense-utils.inc b/etc/inc/pfsense-utils.inc
index b653010..d77b320 100644
--- a/etc/inc/pfsense-utils.inc
+++ b/etc/inc/pfsense-utils.inc
@@ -642,6 +642,8 @@ function restore_config_section($section, $new_contents) {
if ($section_xml != -1)
$config[$section] = &$section_xml;
@unlink($g['tmp_path'] . "/tmpxml");
+ if(file_exists("{$g['tmp_path']}/config.cache"))
+ unlink("{$g['tmp_path']}/config.cache");
write_config("Restored {$section} of config file (maybe from CARP partner)");
conf_mount_ro();
return;
@@ -1183,49 +1185,30 @@ function get_ppp_uptime($port){
//returns interface information
function get_interface_info($ifdescr) {
- global $config, $linkinfo, $netstatrninfo, $g;
+ global $config, $g;
$ifinfo = array();
- /* if list */
- $iflist = get_configured_interface_with_descr(false,true);
-
- $found = false;
- foreach ($iflist as $if => $ifname) {
- if ($ifdescr == $if || $ifdescr == $ifname) {
- $ifinfo['hwif'] = $config['interfaces'][$if]['if'];
- $ifinfo['if'] = get_real_interface($if);
- $found = true;
- break;
- }
- }
- if ($found == false)
+ if (empty($config['interfaces'][$ifdescr]))
return;
+ $ifinfo['hwif'] = $config['interfaces'][$if]['if'];
+ $ifinfo['if'] = get_real_interface($ifdescr);
- /* run netstat to determine link info */
-
- unset($linkinfo);
$chkif = $ifinfo['if'];
-
- exec("/usr/bin/netstat -I {$chkif} -nWb -f link", $linkinfo);
- $linkinfo = preg_split("/\s+/", $linkinfo[1]);
-
$ifinfotmp = pfSense_get_interface_addresses($chkif);
$ifinfo['status'] = $ifinfotmp['status'];
+ if (empty($ifinfo['status']))
+ $ifinfo['status'] = "down";
$ifinfo['macaddr'] = $ifinfotmp['macaddr'];
$ifinfo['ipaddr'] = $ifinfotmp['ipaddr'];
$ifinfo['subnet'] = $ifinfotmp['subnet'];
if (isset($ifinfotmp['link0']))
$link0 = "down";
-
-
- if (preg_match("/^enc|^tun|^ppp|^pptp|^ovpn/i", $chkif)) {
- $ifinfo['inpkts'] = $linkinfo[3];
- $ifinfo['outpkts'] = $linkinfo[6];
- } else {
- $ifinfo['inerrs'] = $linkinfo[5];
- $ifinfo['outerrs'] = $linkinfo[9];
- $ifinfo['collisions'] = $linkinfo[11];
- }
+ $ifinfotmp = pfSense_get_interface_stats($chkif);
+ $ifinfo['inpkts'] = $ifinfotmp['inpkts'];
+ $ifinfo['outpkts'] = $ifinfotmp['outpkts'];
+ $ifinfo['inerrs'] = $ifinfotmp['inerrs'];
+ $ifinfo['outerrs'] = $ifinfotmp['outerrs'];
+ $ifinfo['collisions'] = $ifinfotmp['collisions'];
/* Use pfctl for non wrapping 64 bit counters */
/* Pass */
@@ -1260,10 +1243,6 @@ function get_interface_info($ifdescr) {
$ifconfiginfo = "";
- unset($linkinfo);
- exec("/usr/bin/netstat -I " . $ifinfo['if'] . " -nWb -f link", $linkinfo);
- $linkinfo = preg_split("/\s+/", $linkinfo[1]);
-
switch ($config['interfaces'][$ifdescr]['ipaddr']) {
/* DHCP? -> see if dhclient is up */
case "dhcp":
@@ -1277,33 +1256,28 @@ function get_interface_info($ifdescr) {
break;
/* PPPoE interface? -> get status from virtual interface */
case "pppoe":
- if ("{$ifinfo['if']}*" == $linkinfo[0])
- $ifinfo['pppoelink'] = "down";
- else if ($ifinfo['if'] == $linkinfo[0] && !isset($link0))
- /* get PPPoE link status for dial on demand */
- $ifinfo['pppoelink'] = "up";
+ if ($ifinfo['status'] == "up" && !isset($link0))
+ /* get PPPoE link status for dial on demand */
+ $ifinfo['pppoelink'] = "up";
else
$ifinfo['pppoelink'] = "down";
break;
/* PPTP interface? -> get status from virtual interface */
case "pptp":
- if ("{$ifinfo['if']}*" == $linkinfo[0])
- $ifinfo['pptplink'] = "down";
- else if ($ifinfo['if'] == $linkinfo[0] && !isset($link0))
- /* get PPTP link status for dial on demand */
- $ifinfo['pptplink'] = "up";
+ if ($ifinfo['status'] == "up" && !isset($link0))
+ /* get PPTP link status for dial on demand */
+ $ifinfo['pptplink'] = "up";
else
$ifinfo['pptplink'] = "down";
break;
/* PPP interface? -> get uptime for this session and cumulative uptime from the persistant log file in conf */
case "ppp":
- if ("{$ifinfo['if']}*" == $linkinfo[0])
- $ifinfo['ppplink'] = "down";
- else if ($ifinfo['if'] == $linkinfo[0])
+ if ($ifinfo['status'] == "up")
$ifinfo['ppplink'] = "up";
else
$ifinfo['ppplink'] = "down" ;
+
if (empty($ifinfo['status']))
$ifinfo['status'] = "down";
@@ -2000,8 +1974,8 @@ function nanobsd_update_fstab($gslice, $complete_path, $oldufs, $newufs) {
if (!file_exists($fstabpath)) {
$fstab = <<<EOF
-/dev/ufs/{$gslice} / ufs ro 1 1
-/dev/ufs/cf /cf ufs ro 1 1
+/dev/ufs/{$gslice} / ufs ro,noatime 1 1
+/dev/ufs/cf /cf ufs ro,noatime 1 1
EOF;
if (file_put_contents($fstabpath, $fstab))
$status = true;
@@ -2045,4 +2019,16 @@ function nanobsd_detect_slice_info() {
$COMPLETE_BOOT_PATH="{$BOOT_DRIVE}s{$OLDSLICE}";
$BOOTFLASH="{$BOOT_DRIVE}s{$OLDSLICE}";
}
+
+function get_include_contents($filename) {
+ if (is_file($filename)) {
+ ob_start();
+ include $filename;
+ $contents = ob_get_contents();
+ ob_end_clean();
+ return $contents;
+ }
+ return false;
+}
+
?>
OpenPOWER on IntegriCloud