summaryrefslogtreecommitdiffstats
path: root/usr/local/www/widgets/widgets/openvpn.widget.php
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2011-01-31 15:46:23 -0500
committerjim-p <jimp@pfsense.org>2011-01-31 15:46:23 -0500
commit5ded8bab169514e6c3ba0a58da6a00a9b4cc1689 (patch)
tree8d606e761d0635a236525adc70e5c4cbe0228407 /usr/local/www/widgets/widgets/openvpn.widget.php
parenta2eec62a65e912b7d0bdbb59a82f63f59137818d (diff)
downloadpfsense-5ded8bab169514e6c3ba0a58da6a00a9b4cc1689.zip
pfsense-5ded8bab169514e6c3ba0a58da6a00a9b4cc1689.tar.gz
Catch the OpenVPN widget up to the status page code for killing clients.
Diffstat (limited to 'usr/local/www/widgets/widgets/openvpn.widget.php')
-rw-r--r--usr/local/www/widgets/widgets/openvpn.widget.php25
1 files changed, 17 insertions, 8 deletions
diff --git a/usr/local/www/widgets/widgets/openvpn.widget.php b/usr/local/www/widgets/widgets/openvpn.widget.php
index fdf2e3c..c93c708 100644
--- a/usr/local/www/widgets/widgets/openvpn.widget.php
+++ b/usr/local/www/widgets/widgets/openvpn.widget.php
@@ -13,7 +13,7 @@ if($_GET['action']) {
$retval = kill_client($port, $remipp);
echo htmlentities("|{$port}|{$remipp}|{$retval}|");
} else {
- echo "invalid input";
+ echo gettext("invalid input");
}
exit;
}
@@ -21,7 +21,10 @@ if($_GET['action']) {
function kill_client($port, $remipp) {
- $tcpsrv = "tcp://127.0.0.1:{$port}";
+ global $g;
+
+ //$tcpsrv = "tcp://127.0.0.1:{$port}";
+ $tcpsrv = "unix://{$g['varetc_path']}/openvpn/{$port}.sock";
$errval;
$errstr;
@@ -29,13 +32,19 @@ function kill_client($port, $remipp) {
$fp = @stream_socket_client($tcpsrv, $errval, $errstr, 1);
$killed = -1;
if ($fp) {
+ stream_set_timeout($fp, 1);
fputs($fp, "kill {$remipp}\n");
while (!feof($fp)) {
$line = fgets($fp, 1024);
+
+ $info = stream_get_meta_data($fp);
+ if ($info['timed_out'])
+ break;
+
/* parse header list line */
- if (strpos($line, "INFO:"))
+ if (strpos($line, "INFO:") !== false)
continue;
- if (strpos($line, "UCCESS")) {
+ if (strpos($line, "SUCCESS") !== false) {
$killed = 0;
}
break;
@@ -97,7 +106,7 @@ $clients = openvpn_get_active_clients();
<td class="listhdrr">Real/Virtual IP</td>
</tr>
<?php foreach ($server['conns'] as $conn): ?>
- <tr name='<?php echo "r:{$server['port']}:{$conn['remote_host']}"; ?>'>
+ <tr name='<?php echo "r:{$server['mgmt']}:{$conn['remote_host']}"; ?>'>
<td class="listlr">
<?=$conn['common_name'];?>
</td>
@@ -106,12 +115,12 @@ $clients = openvpn_get_active_clients();
</td>
<td class='list' rowspan="2">
<img src='/themes/<?php echo $g['theme']; ?>/images/icons/icon_x.gif' height='17' width='17' border='0'
- onclick="killClient('<?php echo $server['port']; ?>', '<?php echo $conn['remote_host']; ?>');" style='cursor:pointer;'
- name='<?php echo "i:{$server['port']}:{$conn['remote_host']}"; ?>'
+ onclick="killClient('<?php echo $server['mgmt']; ?>', '<?php echo $conn['remote_host']; ?>');" style='cursor:pointer;'
+ name='<?php echo "i:{$server['mgmt']}:{$conn['remote_host']}"; ?>'
title='Kill client connection from <?php echo $conn['remote_host']; ?>' alt='' />
</td>
</tr>
- <tr name='<?php echo "r:{$server['port']}:{$conn['remote_host']}"; ?>'>
+ <tr name='<?php echo "r:{$server['mgmt']}:{$conn['remote_host']}"; ?>'>
<td class="listlr">
<?=$conn['connect_time'];?>
</td>
OpenPOWER on IntegriCloud