Thread: [Phpsysinfo-subversion] SF.net SVN: phpsysinfo:[550] trunk/includes/os/class.Linux.inc.php
Brought to you by:
namiltd
From: <na...@us...> - 2012-03-23 13:51:41
|
Revision: 550 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=550&view=rev Author: namiltd Date: 2012-03-23 13:51:32 +0000 (Fri, 23 Mar 2012) Log Message: ----------- Modified Paths: -------------- trunk/includes/os/class.Linux.inc.php Modified: trunk/includes/os/class.Linux.inc.php =================================================================== --- trunk/includes/os/class.Linux.inc.php 2012-03-22 11:36:03 UTC (rev 549) +++ trunk/includes/os/class.Linux.inc.php 2012-03-23 13:51:32 UTC (rev 550) @@ -78,7 +78,7 @@ { if (CommonFunctions::executeProgram('uname', '-r', $strBuf, PSI_DEBUG)) { $result = trim($strBuf); - if (CommonFunctions::executeProgram('uname', '-v', $strBuf, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('uname', '-v', $strBuf, PSI_)) { if (preg_match('/SMP/', $strBuf)) { $result .= ' (SMP)'; } @@ -511,7 +511,7 @@ */ private function _filesystems() { - $arrResult = Parser::df("-P"); + $arrResult = Parser::df("-P 2>/dev/null"); foreach ($arrResult as $dev) { $this->sys->setDiskDevices($dev); } @@ -527,8 +527,8 @@ if (!$list) { return; } - // We have the '2> /dev/null' because Ubuntu gives an error on this command which causes the distro to be unknown - if (CommonFunctions::executeProgram('lsb_release', '-a 2> /dev/null', $distro_info, PSI_DEBUG)) { + // We have the '2>/dev/null' because Ubuntu gives an error on this command which causes the distro to be unknown + if (CommonFunctions::executeProgram('lsb_release', '-a 2>/dev/null', $distro_info, PSI_DEBUG)) { $distro_tmp = preg_split("/\n/", $distro_info, -1, PREG_SPLIT_NO_EMPTY); foreach ($distro_tmp as $info) { $info_tmp = preg_split('/:/', $info, 2); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jac...@us...> - 2012-03-25 08:04:05
|
Revision: 551 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=551&view=rev Author: jacky672 Date: 2012-03-25 08:03:58 +0000 (Sun, 25 Mar 2012) Log Message: ----------- fix the undefined constant Modified Paths: -------------- trunk/includes/os/class.Linux.inc.php Modified: trunk/includes/os/class.Linux.inc.php =================================================================== --- trunk/includes/os/class.Linux.inc.php 2012-03-23 13:51:32 UTC (rev 550) +++ trunk/includes/os/class.Linux.inc.php 2012-03-25 08:03:58 UTC (rev 551) @@ -78,7 +78,7 @@ { if (CommonFunctions::executeProgram('uname', '-r', $strBuf, PSI_DEBUG)) { $result = trim($strBuf); - if (CommonFunctions::executeProgram('uname', '-v', $strBuf, PSI_)) { + if (CommonFunctions::executeProgram('uname', '-v', $strBuf, PSI_DEBUG)) { if (preg_match('/SMP/', $strBuf)) { $result .= ' (SMP)'; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <na...@us...> - 2012-08-19 17:08:13
|
Revision: 635 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=635&view=rev Author: namiltd Date: 2012-08-19 17:08:07 +0000 (Sun, 19 Aug 2012) Log Message: ----------- Modified Paths: -------------- trunk/includes/os/class.Linux.inc.php Modified: trunk/includes/os/class.Linux.inc.php =================================================================== --- trunk/includes/os/class.Linux.inc.php 2012-08-19 06:29:24 UTC (rev 634) +++ trunk/includes/os/class.Linux.inc.php 2012-08-19 17:08:07 UTC (rev 635) @@ -119,7 +119,7 @@ private function _users() { if (CommonFunctions::executeProgram('who', '', $strBuf, PSI_DEBUG)) { - if (trim($strBuf) != "" ) { + if (strlen(trim($strBuf)) > 0) { $lines = preg_split('/\n/', $strBuf); $this->sys->setUsers(count($lines)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <na...@us...> - 2012-08-21 08:51:09
|
Revision: 637 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=637&view=rev Author: namiltd Date: 2012-08-21 08:50:57 +0000 (Tue, 21 Aug 2012) Log Message: ----------- Modified Paths: -------------- trunk/includes/os/class.Linux.inc.php Modified: trunk/includes/os/class.Linux.inc.php =================================================================== --- trunk/includes/os/class.Linux.inc.php 2012-08-21 07:50:21 UTC (rev 636) +++ trunk/includes/os/class.Linux.inc.php 2012-08-21 08:50:57 UTC (rev 637) @@ -554,7 +554,16 @@ if (preg_match('/^DISTRIB_DESCRIPTION="(.*)"/m', $buf, $desc_buf)) { $this->sys->setDistribution(trim($desc_buf[1])); } else { - $this->sys->setDistribution(trim($id_buf[1])); + if (isset($list[trim($id_buf[1])]['Name'])) { + $dist = trim($list[trim($id_buf[1])]['Name']); + } else { + $dist = trim($id_buf[1]); + } + if (preg_match('/^DISTRIB_RELEASE=(.*)/m', $buf, $vers_buf)) { + $this->sys->setDistribution(trim($dist." ".trim($vers_buf[1]))); + } else { + $this->sys->setDistribution($dist); + } } if (isset($list[trim($id_buf[1])]['Image'])) { $this->sys->setDistributionIcon($list[trim($id_buf[1])]['Image']); @@ -562,7 +571,7 @@ // DISTRO_SPECS file } else if (preg_match('/^DISTRO_NAME=\'(.*)\'/m', $buf, $id_buf)) { if (isset($list[trim($id_buf[1])]['Name'])) { - $dist = $list[trim($id_buf[1])]['Name']; + $dist = trim($list[trim($id_buf[1])]['Name']); } else { $dist = trim($id_buf[1]); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <na...@us...> - 2012-12-05 14:09:25
|
Revision: 712 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=712&view=rev Author: namiltd Date: 2012-12-05 14:09:18 +0000 (Wed, 05 Dec 2012) Log Message: ----------- Modified Paths: -------------- trunk/includes/os/class.Linux.inc.php Modified: trunk/includes/os/class.Linux.inc.php =================================================================== --- trunk/includes/os/class.Linux.inc.php 2012-12-05 12:54:33 UTC (rev 711) +++ trunk/includes/os/class.Linux.inc.php 2012-12-05 14:09:18 UTC (rev 712) @@ -262,7 +262,7 @@ } } // sparc64 specific code ends - + // XScale detection code if ($dev->getModel() === "") { foreach ($details as $detail) { @@ -451,10 +451,17 @@ foreach ($bufe2 as $buf2) { if (preg_match('/\s+encap:Ethernet\s+HWaddr\s(\S*)/i', $buf2, $ar_buf2)) $dev->setInfo(preg_replace('/:/', '-', $ar_buf2[1])); + else if (preg_match('/^\s+inet\saddr:(\S*)\s+P-t-P:(\S*)/i', $buf2, $ar_buf2)) { + if ($ar_buf2[1] != $ar_buf2[2]) { + $dev->setInfo(($dev->getInfo()?$dev->getInfo().';':'').$ar_buf2[1].";:".$ar_buf2[2]); + } else { + $dev->setInfo(($dev->getInfo()?$dev->getInfo().';':'').$ar_buf2[1]); + } + } else if (preg_match('/^\s+inet\saddr:(\S*)/i', $buf2, $ar_buf2)) - $dev->setInfo(($dev->getInfo()?$dev->getInfo().';':'').$ar_buf2[1]); - else if (preg_match('/^\s+inet6\saddr:\s([^\/]*)(.*)\s+Scope:[GH]/i', $buf2, $ar_buf2)) - $dev->setInfo(($dev->getInfo()?$dev->getInfo().';':'').$ar_buf2[1]); + $dev->setInfo(($dev->getInfo()?$dev->getInfo().';':'').$ar_buf2[1]); + else if (preg_match('/^\s+inet6\saddr:\s([^\/]*)(.*)\s+Scope:[GH]/i', $buf2, $ar_buf2)) + $dev->setInfo(($dev->getInfo()?$dev->getInfo().';':'').$ar_buf2[1]); } } $this->sys->setNetDevices($dev); @@ -522,6 +529,7 @@ */ private function _distro() { + $this->sys->setDistribution("Linux"); $list = @parse_ini_file(APP_ROOT."/data/distros.ini", true); if (!$list) { return; @@ -531,77 +539,166 @@ $distro_tmp = preg_split("/\n/", $distro_info, -1, PREG_SPLIT_NO_EMPTY); foreach ($distro_tmp as $info) { $info_tmp = preg_split('/:/', $info, 2); - $distro[$info_tmp[0]] = trim($info_tmp[1]); + if ( isset($distro_tmp[0]) && !is_null($distro_tmp[0]) && (trim($distro_tmp[0]) != "") && + isset($distro_tmp[1]) && !is_null($distro_tmp[1]) && (trim($distro_tmp[1]) != "") ) { + $distro[$info_tmp[0]] = trim($info_tmp[1]); + } } - if (isset($distro['Distributor ID']) && isset($list[$distro['Distributor ID']]['Image'])) { - $this->sys->setDistributionIcon($list[$distro['Distributor ID']]['Image']); + if (!isset($distro['Distributor ID']) && !isset($distro['Description'])) { + if ( !is_null($distro_tmp[0]) && (trim($distro_tmp[0]) != "") ) { + $this->sys->setDistribution(trim($distro_tmp[0])); + if ( preg_match('/^(\S+)\s*/', $distro_tmp[0], $id_buf) + && isset($list[trim($id_buf[1])]['Image'])) { + $this->sys->setDistributionIcon($list[trim($id_buf[1])]['Image']); + } + } + } else { + if (isset($distro['Description'])) { + $this->sys->setDistribution($distro['Description']); + } else if (isset($distro['Distributor ID'])) { + $this->sys->setDistribution($distro['Distributor ID']); + } + if (isset($distro['Distributor ID']) && isset($list[$distro['Distributor ID']]['Image'])) { + $this->sys->setDistributionIcon($list[$distro['Distributor ID']]['Image']); + } } - if (isset($distro['Description'])) { - $this->sys->setDistribution($distro['Description']); + } else { + /* default error handler */ + if (function_exists('errorHandlerPsi')) { + restore_error_handler(); } - } else { - // Fall back in case 'lsb_release' does not exist ;) + /* fatal errors only */ + $old_err_rep = error_reporting(); + error_reporting(E_ERROR); + + // Fall back in case 'lsb_release' does not exist foreach ($list as $section=>$distribution) { - if (!isset($distribution["Files"])) { + if (!isset($distribution['Files'])) { continue; } else { - foreach (preg_split("/;/", $distribution["Files"], -1, PREG_SPLIT_NO_EMPTY) as $filename) { + foreach (preg_split("/;/", $distribution['Files'], -1, PREG_SPLIT_NO_EMPTY) as $filename) { if (file_exists($filename)) { - CommonFunctions::rfts($filename, $buf); - - // lsb-release file - if (preg_match('/^DISTRIB_ID=(.*)/m', $buf, $id_buf)) { - if (preg_match('/^DISTRIB_DESCRIPTION="(.*)"/m', $buf, $desc_buf)) { - $this->sys->setDistribution(trim($desc_buf[1])); + if (!CommonFunctions::rfts($filename, $buf, 1, 4096, false)) { + $buf = ""; + } + if (isset($distribution['Image'])) { + $this->sys->setDistributionIcon($distribution['Image']); + } + if (isset($distribution['Name'])) { + if (($distribution['Name'] == 'Synology') || is_null($buf) || (trim($buf) == "")) { + $this->sys->setDistribution($distribution['Name']); } else { - if (isset($list[trim($id_buf[1])]['Name'])) { - $dist = trim($list[trim($id_buf[1])]['Name']); - } else { - $dist = trim($id_buf[1]); - } - if (preg_match('/^DISTRIB_RELEASE=(.*)/m', $buf, $vers_buf)) { - $this->sys->setDistribution(trim($dist." ".trim($vers_buf[1]))); - } else { - $this->sys->setDistribution($dist); - } + $this->sys->setDistribution($distribution['Name']." ".trim($buf)); } - if (isset($list[trim($id_buf[1])]['Image'])) { - $this->sys->setDistributionIcon($list[trim($id_buf[1])]['Image']); - } - // DISTRO_SPECS file - } else if (preg_match('/^DISTRO_NAME=\'(.*)\'/m', $buf, $id_buf)) { - if (isset($list[trim($id_buf[1])]['Name'])) { - $dist = trim($list[trim($id_buf[1])]['Name']); - } else { - $dist = trim($id_buf[1]); - } - if (preg_match('/^DISTRO_VERSION=(.*)/m', $buf, $vers_buf)) { - $this->sys->setDistribution(trim($dist." ".trim($vers_buf[1]))); - } else { - $this->sys->setDistribution($dist); - } - if (isset($list[trim($id_buf[1])]['Image'])) { - $this->sys->setDistributionIcon($list[trim($id_buf[1])]['Image']); - } } else { - if (isset($distribution["Image"])) { - $this->sys->setDistributionIcon($distribution["Image"]); - } - if (isset($distribution["Name"])) { - if ($distribution["Name"] == 'Synology') { - $this->sys->setDistribution($distribution["Name"]); - } else { - $this->sys->setDistribution($distribution["Name"]." ".trim($buf)); - } + if ( is_null($buf) || (trim($buf) == "") ) { + $this->sys->setDistribution($section); } else { $this->sys->setDistribution(trim($buf)); } } - return; + break 2; } } } } + // Otherwise, if no files found + if ($this->sys->getDistribution() == "Linux") { + if ( file_exists($filename="/etc/lsb-release") + && CommonFunctions::rfts($filename, $buf, 0, 4096, false) + && preg_match('/^DISTRIB_ID="?([^"\n]*)"?/m', $buf, $id_buf) ) { + if (preg_match('/^DISTRIB_DESCRIPTION="?([^"\n]*)"?/m', $buf, $desc_buf)) { + $this->sys->setDistribution(trim($desc_buf[1])); + } else { + if (isset($list[trim($id_buf[1])]['Name'])) { + $dist = trim($list[trim($id_buf[1])]['Name']); + } else { + $dist = trim($id_buf[1]); + } + if (preg_match('/^DISTRIB_RELEASE="?([^"\n]*)"?/m', $buf, $vers_buf)) { + $this->sys->setDistribution(trim($dist." ".trim($vers_buf[1]))); + } else { + $this->sys->setDistribution($dist); + } + } + if (isset($list[trim($id_buf[1])]['Image'])) { + $this->sys->setDistributionIcon($list[trim($id_buf[1])]['Image']); + } + } else + if ( file_exists($filename="/etc/DISTRO_SPECS") + && CommonFunctions::rfts($filename, $buf, 0, 4096, false) + && preg_match('/^DISTRO_NAME=\'(.*)\'/m', $buf, $id_buf) ) { + if (isset($list[trim($id_buf[1])]['Name'])) { + $dist = trim($list[trim($id_buf[1])]['Name']); + } else { + $dist = trim($id_buf[1]); + } + if (preg_match('/^DISTRO_VERSION=(.*)/m', $buf, $vers_buf)) { + $this->sys->setDistribution(trim($dist." ".trim($vers_buf[1]))); + } else { + $this->sys->setDistribution($dist); + } + if (isset($list[trim($id_buf[1])]['Image'])) { + $this->sys->setDistributionIcon($list[trim($id_buf[1])]['Image']); + } else { + if (isset($list['Puppy']['Image'])) { + $this->sys->setDistributionIcon($list['Puppy']['Image']); + } + } + } else + if (file_exists($filename="/etc/redhat-release")) { + if (!CommonFunctions::rfts($filename, $buf, 1, 4096, false)) { + $buf = ""; + } + if ( is_null($buf) || (trim($buf) == "") ) { + if (isset($list['RedHat']['Name'])) { + $this->sys->setDistribution(trim($list['RedHat']['Name'])); + } else { + $this->sys->setDistribution('RedHat'); + } + if (isset($list['RedHat']['Image'])) { + $this->sys->setDistributionIcon($list['RedHat']['Image']); + } + } else { + $this->sys->setDistribution(trim($buf)); + if ( preg_match('/^(\S+)\s*/', $buf, $id_buf) + && isset($list[trim($id_buf[1])]['Image'])) { + $this->sys->setDistributionIcon($list[trim($id_buf[1])]['Image']); + } else { + if (isset($list['RedHat']['Image'])) { + $this->sys->setDistributionIcon($list['RedHat']['Image']); + } + } + } + } else + if (file_exists($filename="/etc/debian_version")){ + if (!CommonFunctions::rfts($filename, $buf, 1, 4096, false)) { + $buf = ""; + } + if (isset($list['Debian']['Image'])) { + $this->sys->setDistributionIcon($list['Debian']['Image']); + } + if (isset($list['Debian']['Name'])) { + if ( is_null($buf) || (trim($buf) == "")) { + $this->sys->setDistribution($list['Debian']['Name']); + } else { + $this->sys->setDistribution($list['Debian']['Name']." ".trim($buf)); + } + } else { + if ( is_null($buf) || (trim($buf) == "") ) { + $this->sys->setDistribution('Debian'); + } else { + $this->sys->setDistribution(trim($buf)); + } + } + } + } + /* restore error level */ + error_reporting($old_err_rep); + /* restore error handler */ + if (function_exists('errorHandlerPsi')) { + set_error_handler('errorHandlerPsi'); + } } } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |