diff options
-rw-r--r-- | etc/inc/service-utils.inc | 8 | ||||
-rwxr-xr-x | usr/local/www/status_interfaces.php | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/etc/inc/service-utils.inc b/etc/inc/service-utils.inc index 2c9b117..0f3e8c4 100644 --- a/etc/inc/service-utils.inc +++ b/etc/inc/service-utils.inc @@ -128,6 +128,14 @@ function is_process_running($process) { return 0; } +function is_dhcp_running($interface) { + if(filter_translate_type_to_real_interface($interface) <> "") + $interface = filter_translate_type_to_real_interface($interface); + $status = `/bin/ps ax | /usr/bin/grep dhclient | grep $interface | grep -v grep | wc -l`; + if($status > 0) return 1; + return 0; +} + function restart_service_if_running($service) { global $config; if(is_service_running($service)) diff --git a/usr/local/www/status_interfaces.php b/usr/local/www/status_interfaces.php index 6126e93..c5e0eef 100755 --- a/usr/local/www/status_interfaces.php +++ b/usr/local/www/status_interfaces.php @@ -99,7 +99,7 @@ function get_interface_info($ifdescr) { /* DHCP? -> see if dhclient is up */ if (($ifdescr == "wan") && ($config['interfaces']['wan']['ipaddr'] == "dhcp")) { /* see if dhclient is up */ - if (is_process_running("dhclient") == true) + if (is_dhcp_running("wan") == true) $ifinfo['dhcplink'] = "up"; else $ifinfo['dhcplink'] = "down"; @@ -109,7 +109,7 @@ function get_interface_info($ifdescr) { $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_process_running("dhclient") == true) + if (is_dhcp_running("opt{$j}") == true) $ifinfo['dhcplink'] = "up"; else $ifinfo['dhcplink'] = "down"; |