summaryrefslogtreecommitdiffstats
path: root/usr/local
diff options
context:
space:
mode:
authorScott Dale <sdale@pfsense.org>2007-04-24 23:18:48 +0000
committerScott Dale <sdale@pfsense.org>2007-04-24 23:18:48 +0000
commit6189988d3c448b9df4abfb66e589374c4eab7c59 (patch)
treeb0f777097fe23c60b7b85316554f6468597d70b8 /usr/local
parent0975fe8a7ea0ed09f26b510979626db0c1137ff3 (diff)
downloadpfsense-6189988d3c448b9df4abfb66e589374c4eab7c59.zip
pfsense-6189988d3c448b9df4abfb66e589374c4eab7c59.tar.gz
Move interface info function for global use
Diffstat (limited to 'usr/local')
-rwxr-xr-xusr/local/www/status_interfaces.php191
1 files changed, 0 insertions, 191 deletions
diff --git a/usr/local/www/status_interfaces.php b/usr/local/www/status_interfaces.php
index ec2e148..f6d842e 100755
--- a/usr/local/www/status_interfaces.php
+++ b/usr/local/www/status_interfaces.php
@@ -59,197 +59,6 @@ if ($_POST) {
}
}
-function get_interface_info($ifdescr) {
-
- global $config, $linkinfo, $netstatrninfo;
-
- $ifinfo = array();
-
- /* find out interface name */
- $ifinfo['hwif'] = $config['interfaces'][$ifdescr]['if'];
- if ($ifdescr == "wan")
- $ifinfo['if'] = get_real_wan_interface();
- else
- $ifinfo['if'] = $ifinfo['hwif'];
-
- /* run netstat to determine link info */
-
- unset($linkinfo);
- exec("/usr/bin/netstat -I " . $ifinfo['hwif'] . " -nWb -f link", $linkinfo);
- $linkinfo = preg_split("/\s+/", $linkinfo[1]);
- if (preg_match("/\*$/", $linkinfo[0])) {
- $ifinfo['status'] = "down";
- } else {
- $ifinfo['status'] = "up";
- }
-
- if (!strstr($ifinfo['if'],'tun')) {
- $ifinfo['macaddr'] = $linkinfo[3];
- $ifinfo['inpkts'] = $linkinfo[4];
- $ifinfo['inerrs'] = $linkinfo[5];
- $ifinfo['inbytes'] = $linkinfo[6];
- $ifinfo['outpkts'] = $linkinfo[7];
- $ifinfo['outerrs'] = $linkinfo[8];
- $ifinfo['outbytes'] = $linkinfo[9];
- $ifinfo['collisions'] = $linkinfo[10];
- } else {
- $ifinfo['inpkts'] = $linkinfo[3];
- $ifinfo['inbytes'] = $linkinfo[5];
- $ifinfo['outpkts'] = $linkinfo[6];
- $ifinfo['outbytes'] = $linkinfo[8];
- }
-
- /* DHCP? -> see if dhclient is up */
- if (($ifdescr == "wan") && ($config['interfaces']['wan']['ipaddr'] == "dhcp")) {
- /* see if dhclient is up */
- if (is_dhcp_running("wan") == true)
- $ifinfo['dhcplink'] = "up";
- else
- $ifinfo['dhcplink'] = "down";
- }
- /* loop through optional interfaces looking to see if they are dhcp */
- for ($j = 1; isset($config['interfaces']['opt' . $j]); $j++) {
- $ifdescrs['opt' . $j] = $config['interfaces']['opt' . $j]['descr'];
- if (($ifdescr == "opt{$j}") && ($config['interfaces']['opt' . $j]['ipaddr'] == "dhcp")) {
- /* see if dhclient is up */
- if (is_dhcp_running("opt{$j}") == true)
- $ifinfo['dhcplink'] = "up";
- else
- $ifinfo['dhcplink'] = "down";
- }
- }
-
- /* PPPoE interface? -> get status from virtual interface */
- if (($ifdescr == "wan") && ($config['interfaces']['wan']['ipaddr'] == "pppoe")) {
- unset($linkinfo);
- exec("/usr/bin/netstat -I " . $ifinfo['if'] . " -nWb -f link", $linkinfo);
- $linkinfo = preg_split("/\s+/", $linkinfo[1]);
- if (preg_match("/\*$/", $linkinfo[0])) {
- $ifinfo['pppoelink'] = "down";
- } else {
- /* get PPPoE link status for dial on demand */
- $ifconfiginfo = "";
- unset($ifconfiginfo);
- exec("/sbin/ifconfig " . $ifinfo['if'], $ifconfiginfo);
-
- $ifinfo['pppoelink'] = "up";
-
- foreach ($ifconfiginfo as $ici) {
- if (strpos($ici, 'LINK0') !== false)
- $ifinfo['pppoelink'] = "down";
- }
- }
- }
-
- /* PPTP interface? -> get status from virtual interface */
- if (($ifdescr == "wan") && ($config['interfaces']['wan']['ipaddr'] == "pptp")) {
- unset($linkinfo);
- exec("/usr/bin/netstat -I " . $ifinfo['if'] . " -nWb -f link", $linkinfo);
- $linkinfo = preg_split("/\s+/", $linkinfo[1]);
- if (preg_match("/\*$/", $linkinfo[0])) {
- $ifinfo['pptplink'] = "down";
- } else {
- /* get PPTP link status for dial on demand */
- unset($ifconfiginfo);
- exec("/sbin/ifconfig " . $ifinfo['if'], $ifconfiginfo);
-
- $ifinfo['pptplink'] = "up";
-
- foreach ($ifconfiginfo as $ici) {
- if (strpos($ici, 'LINK0') !== false)
- $ifinfo['pptplink'] = "down";
- }
- }
- }
-
- if ($ifinfo['status'] == "up") {
- /* try to determine media with ifconfig */
- unset($ifconfiginfo);
- exec("/sbin/ifconfig " . $ifinfo['hwif'], $ifconfiginfo);
- $matches = "";
- foreach ($ifconfiginfo as $ici) {
-
- /* don't list media/speed for wireless cards, as it always
- displays 2 Mbps even though clients can connect at 11 Mbps */
- if (preg_match("/media: .*? \((.*?)\)/", $ici, $matches)) {
- $ifinfo['media'] = $matches[1];
- } else if (preg_match("/media: Ethernet (.*)/", $ici, $matches)) {
- $ifinfo['media'] = $matches[1];
- } else if (preg_match("/media: IEEE 802.11 Wireless Ethernet (.*)/", $ici, $matches)) {
- $ifinfo['media'] = $matches[1];
- }
-
- if (preg_match("/status: (.*)$/", $ici, $matches)) {
- if ($matches[1] != "active")
- $ifinfo['status'] = $matches[1];
- }
- if (preg_match("/channel (\S*)/", $ici, $matches)) {
- $ifinfo['channel'] = $matches[1];
- }
- if (preg_match("/ssid (\".*?\"|\S*)/", $ici, $matches)) {
- if ($matches[1][0] == '"')
- $ifinfo['ssid'] = substr($matches[1], 1, -1);
- else
- $ifinfo['ssid'] = $matches[1];
- }
- }
-
- if ($ifinfo['pppoelink'] != "down" && $ifinfo['pptplink'] != "down") {
- /* try to determine IP address and netmask with ifconfig */
- unset($ifconfiginfo);
- exec("/sbin/ifconfig " . $ifinfo['if'], $ifconfiginfo);
-
- foreach ($ifconfiginfo as $ici) {
- if (preg_match("/inet (\S+)/", $ici, $matches)) {
- $ifinfo['ipaddr'] = $matches[1];
- }
- if (preg_match("/netmask (\S+)/", $ici, $matches)) {
- if (preg_match("/^0x/", $matches[1]))
- $ifinfo['subnet'] = long2ip(hexdec($matches[1]));
- }
- }
-
- if ($ifdescr == "wan") {
- /* run netstat to determine the default gateway */
- unset($netstatrninfo);
- exec("/usr/bin/netstat -rnf inet", $netstatrninfo);
-
- foreach ($netstatrninfo as $nsr) {
- if (preg_match("/^default\s*(\S+)/", $nsr, $matches)) {
- $ifinfo['gateway'] = $matches[1];
- }
- }
- } else {
- /* deterimine interface gateway */
- $int = convert_friendly_interface_to_real_interface_name($ifdescr);
- $gw = get_interface_gateway($int);
- if($gw)
- $ifinfo['gateway'] = $gw;
- }
- }
- }
-
- $bridge = "";
- $int = "";
- $int = convert_friendly_interface_to_real_interface_name($ifdescr);
- $bridge = link_int_to_bridge_interface($int);
- if($bridge) {
- $bridge_text = `/sbin/ifconfig {$bridge}`;
- if(stristr($bridge_text, "blocking") <> false) {
- $ifinfo['bridge'] = "<b><font color='red'>blocking</font></b> - check for ethernet loops";
- $ifinfo['bridgeint'] = $bridge;
- } else if(stristr($bridge_text, "learning") <> false) {
- $ifinfo['bridge'] = "learning";
- $ifinfo['bridgeint'] = $bridge;
- } else if(stristr($bridge_text, "forwarding") <> false) {
- $ifinfo['bridge'] = "forwarding";
- $ifinfo['bridgeint'] = $bridge;
- }
- }
-
- return $ifinfo;
-}
-
$pgtitle = "Status: Interfaces";
include("head.inc");
OpenPOWER on IntegriCloud