From cd72ded3864c0d72c45f6512d0352f26dd3843bc Mon Sep 17 00:00:00 2001 From: Timo Boettcher Date: Thu, 21 Jun 2007 13:01:01 +0000 Subject: Make OpenVPN usable in status_service.php --- usr/local/www/status_services.php | 146 ++++++++++++++++++++++++++++---------- 1 file changed, 107 insertions(+), 39 deletions(-) (limited to 'usr/local') diff --git a/usr/local/www/status_services.php b/usr/local/www/status_services.php index e42d5a3..42c0da1 100755 --- a/usr/local/www/status_services.php +++ b/usr/local/www/status_services.php @@ -57,11 +57,24 @@ if($_GET['mode'] == "restartservice" and $_GET['service']) { if(file_exists('/usr/local/etc/rc.d/miniupnpd.sh')) mwexec('/usr/local/etc/rc.d/miniupnpd.sh restart'); break; - case 'racoon': - exec("killall -9 racoon"); - sleep(1); - vpn_ipsec_force_reload(); - break; + case 'racoon': + exec("killall -9 racoon"); + sleep(1); + vpn_ipsec_force_reload(); + break; + case 'openvpn': + $vpnmode = $_GET['vpnmode']; + if (($vpnmode == "server") or ($vpnmode == "client")) { + $id = $_GET['id']; + if (is_numeric($id)) { + $pidfile = $g['varrun_path'] . "/openvpn_{$vpnmode}{$id}.pid"; + killbypid($pidfile); + sleep(1); + $configfile = $g['varetc_path'] . "/openvpn_{$vpnmode}{$id}.conf"; + mwexec_bg("openvpn --config $configfile"); + } + } + break; default: restart_service($_GET['service']); break; @@ -85,16 +98,26 @@ if($_GET['mode'] == "startservice" and $_GET['service']) { if(file_exists('/usr/local/etc/rc.d/miniupnpd.sh')) mwexec('/usr/local/etc/rc.d/miniupnpd.sh start'); break; - case 'racoon': - exec("killall -9 racoon"); - sleep(1); - vpn_ipsec_force_reload(); - break; + case 'racoon': + exec("killall -9 racoon"); + sleep(1); + vpn_ipsec_force_reload(); + break; + case 'openvpn': + $vpnmode = $_GET['vpnmode']; + if (($vpnmode == "server") or ($vpnmode == "client")) { + $id = $_GET['id']; + if (is_numeric($id)) { + $configfile = $g['varetc_path'] . "/openvpn_{$vpnmode}{$id}.conf"; + mwexec_bg("openvpn --config $configfile"); + } + } + break; default: start_service($_GET['service']); break; } - $savemsg = "{$_GET['service']} has been started."; + $savemsg = "{$_GET['service']} has been started."; sleep(5); } @@ -107,13 +130,13 @@ if($_GET['mode'] == "stopservice" && $_GET['service']) { case 'choparp': killbyname("choparp"); break; - case 'dhcpd': + case 'dhcpd': killbyname("dhcpd"); - break; - case 'dhcrelay': - killbypid("{$g['varrun_path']}/dhcrelay.pid"); - break; - case 'dnsmasq': + break; + case 'dhcrelay': + killbypid("{$g['varrun_path']}/dhcrelay.pid"); + break; + case 'dnsmasq': killbypid("{$g['varrun_path']}/dnsmasq.pid"); break; case 'miniupnpd': @@ -123,18 +146,29 @@ if($_GET['mode'] == "stopservice" && $_GET['service']) { break; case 'ntpd': killbyname("ntpd"); - break; - case 'sshd': + break; + case 'sshd': killbyname("sshd"); - break; - case 'racoon': - exec("killall -9 racoon"); + break; + case 'racoon': + exec("killall -9 racoon"); + break; + case 'openvpn': + $vpnmode = $_GET['vpnmode']; + if (($vpnmode == "server") or ($vpnmode == "client")) { + $id = $_GET['id']; + if (is_numeric($id)) { + $pidfile = $g['varrun_path'] . "/openvpn_{$vpnmode}{$id}.pid"; + killbypid($pidfile); + } + } + break; default: - stop_service($_GET['service']); + stop_service($_GET['service']); break; } - $savemsg = "{$_GET['service']} " . gettext("has been stopped."); - sleep(5); + $savemsg = "{$_GET['service']} " . gettext("has been stopped."); + sleep(5); } /* batch mode, allow other scripts to call this script */ @@ -235,43 +269,76 @@ if(isset($config['proxyarp']['proxyarpnet'])) { } if($config['installedpackages']['miniupnpd']['config'][0]['enable']) { - $pconfig['name'] = "miniupnpd"; - $pconfig['description'] = gettext("UPnP Service"); - $services[] = $pconfig; - unset($pconfig); + $pconfig['name'] = "miniupnpd"; + $pconfig['description'] = gettext("UPnP Service"); + $services[] = $pconfig; + unset($pconfig); } if (isset($config['ipsec']['enable'])) { - $pconfig['name'] = "racoon"; - $pconfig['description'] = gettext("IPSEC VPN"); - $services[] = $pconfig; - unset($pconfig); + $pconfig['name'] = "racoon"; + $pconfig['description'] = gettext("IPSEC VPN"); + $services[] = $pconfig; + unset($pconfig); } +foreach (array('server', 'client') as $mode) { + if (is_array($config['installedpackages']["openvpn$mode"]['config'])) { + foreach ($config['installedpackages']["openvpn$mode"]['config'] as $id => $settings) { + $setting = $config['installedpackages']["openvpn$mode"]['config'][$id]; + if (!$setting['disable']) { + $pconfig['name'] = "openvpn"; + $pconfig['mode'] = $mode; + $pconfig['id'] = $id; + $pconfig['description'] = "OpenVPN ".$mode.": ".htmlspecialchars($setting['description']); + $services[] = $pconfig; + unset($pconfig); + } + } + } +} + + if($services) { foreach($services as $service) { if(!$service['name']) continue; if(!$service['description']) $service['description'] = get_pkg_descr($service['name']); echo '' . $service['name'] . ''; echo '' . $service['description'] . ''; - if(is_service_running($service['name'], $ps) or is_process_running($service['name']) ) { + if ($service['name'] == "openvpn") { + $running = (is_pid_running($g['varrun_path'] . "/openvpn_{$service['mode']}{$service['id']}.pid") ); + } else { + $running = (is_service_running($service['name'], $ps) or is_process_running($service['name']) ); + } + if($running) { echo '
'; echo " Running"; - $running = true; } else { echo '
'; echo " Stopped"; - $running = false; } echo ''; if($running) { - echo ""; + if ($service['name'] == "openvpn") { + echo ""; + } else { + echo ""; + } echo " "; - echo ""; + if ($service['name'] == "openvpn") { + echo ""; + } else { + echo " "; + } echo " "; echo ""; } else { - echo " "; + if ($service['name'] == "openvpn") { + echo ""; + } else { + echo " "; + } + echo " "; } echo ''; @@ -280,6 +347,7 @@ if($services) { } else { echo "
No services found."; } + ?> -- cgit v1.1