summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/inc/service-utils.inc8
-rwxr-xr-xusr/local/www/status_interfaces.php4
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";
OpenPOWER on IntegriCloud