diff options
author | jim-p <jimp@pfsense.org> | 2011-01-31 15:46:23 -0500 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2011-01-31 15:46:23 -0500 |
commit | 5ded8bab169514e6c3ba0a58da6a00a9b4cc1689 (patch) | |
tree | 8d606e761d0635a236525adc70e5c4cbe0228407 /usr/local/www/widgets | |
parent | a2eec62a65e912b7d0bdbb59a82f63f59137818d (diff) | |
download | pfsense-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')
-rw-r--r-- | usr/local/www/widgets/widgets/openvpn.widget.php | 25 |
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> |