summaryrefslogtreecommitdiffstats
path: root/usr/local/www/widgets/widgets/openvpn.widget.php
diff options
context:
space:
mode:
Diffstat (limited to 'usr/local/www/widgets/widgets/openvpn.widget.php')
-rw-r--r--usr/local/www/widgets/widgets/openvpn.widget.php290
1 files changed, 0 insertions, 290 deletions
diff --git a/usr/local/www/widgets/widgets/openvpn.widget.php b/usr/local/www/widgets/widgets/openvpn.widget.php
deleted file mode 100644
index 6f813c5..0000000
--- a/usr/local/www/widgets/widgets/openvpn.widget.php
+++ /dev/null
@@ -1,290 +0,0 @@
-<?php
-
-/*
- openvpn.widget.php
- Copyright (C) 2013-2015 Electric Sheep Fencing, LP
- Part of pfSense widgets (https://www.pfsense.org)
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-$nocsrf = true;
-
-require_once("guiconfig.inc");
-require_once("openvpn.inc");
-
-/* Handle AJAX */
-if ($_GET['action']) {
- if ($_GET['action'] == "kill") {
- $port = $_GET['port'];
- $remipp = $_GET['remipp'];
- if (!empty($port) and !empty($remipp)) {
- $retval = kill_client($port, $remipp);
- echo htmlentities("|{$port}|{$remipp}|{$retval}|");
- } else {
- echo gettext("invalid input");
- }
- exit;
- }
-}
-
-
-function kill_client($port, $remipp) {
- global $g;
-
- //$tcpsrv = "tcp://127.0.0.1:{$port}";
- $tcpsrv = "unix://{$g['varetc_path']}/openvpn/{$port}.sock";
- $errval;
- $errstr;
-
- /* open a tcp connection to the management port of each server */
- $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:") !== false) {
- continue;
- }
- if (strpos($line, "SUCCESS") !== false) {
- $killed = 0;
- }
- break;
- }
- fclose($fp);
- }
- return $killed;
-}
-
-$servers = openvpn_get_active_servers();
-$sk_servers = openvpn_get_active_servers("p2p");
-$clients = openvpn_get_active_clients();
-?>
-
-<br />
-<script type="text/javascript">
-//<![CDATA[
- function killClient(mport, remipp) {
- var busy = function(index,icon) {
- jQuery(icon).bind("onclick","");
- jQuery(icon).attr('src',jQuery(icon).attr('src').replace("\.gif", "_d.gif"));
- jQuery(icon).css("cursor","wait");
- }
-
- jQuery('img[name="i:' + mport + ":" + remipp + '"]').each(busy);
-
- jQuery.ajax(
- "<?=$_SERVER['SCRIPT_NAME'];?>" +
- "?action=kill&port=" + mport + "&remipp=" + remipp,
- { type: "get", complete: killComplete }
- );
- }
-
- function killComplete(req) {
- var values = req.responseText.split("|");
- if (values[3] != "0") {
- alert('<?=gettext("An error occurred.");?>' + ' (' + values[3] + ')');
- return;
- }
-
- jQuery('tr[name="r:' + values[1] + ":" + values[2] + '"]').each(
- function(index,row) { jQuery(row).fadeOut(1000); }
- );
- }
-//]]>
-</script>
-
-<?php foreach ($servers as $server): ?>
-
-<table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td colspan="6" class="listtopic">
- <?=$server['name'];?> Client connections
- </td>
- </tr>
- <tr>
- <td>
- <table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" class="tabcont sortable" width="100%" border="0" cellpadding="0" cellspacing="0" sortableMultirow="2">
- <tr>
- <td class="listhdrr">Name/Time</td>
- <td class="listhdrr">Real/Virtual IP</td>
- </tr>
- <?php
- $rowIndex = 0;
- foreach ($server['conns'] as $conn):
- $evenRowClass = $rowIndex % 2 ? " listMReven" : " listMRodd";
- $rowIndex++;
- ?>
- <tr name='<?php echo "r:{$server['mgmt']}:{$conn['remote_host']}"; ?>' class="<?=$evenRowClass?>">
- <td class="listMRlr">
- <?=$conn['common_name'];?>
- </td>
- <td class="listMRr">
- <?=$conn['remote_host'];?>
- </td>
- <td class='listMR' 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['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['mgmt']}:{$conn['remote_host']}"; ?>' class="<?=$evenRowClass?>">
- <td class="listMRlr">
- <?=$conn['connect_time'];?>
- </td>
- <td class="listMRr">
- <?=$conn['virtual_addr'];?>
- </td>
- </tr>
-
- <?php endforeach; ?>
- <tfoot>
- <tr>
- <td colspan="6" class="list" height="12"></td>
- </tr>
- </tfoot>
- </table>
- </td>
- </tr>
-</table>
-
-<?php endforeach; ?>
-<?php if (!empty($sk_servers)) { ?>
-<table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td colspan="6" class="listtopic">
- Peer to Peer Server Instance Statistics
- </td>
- </tr>
- <tr>
- <table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" class="tabcont sortable" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td class="listhdrr">Name/Time</td>
- <td class="listhdrr">Remote/Virtual IP</td>
- </tr>
-
-<?php foreach ($sk_servers as $sk_server): ?>
- <tr name='<?php echo "r:{$sk_server['port']}:{$sk_server['remote_host']}"; ?>'>
- <td class="listlr">
- <?=$sk_server['name'];?>
- </td>
- <td class="listr">
- <?=$sk_server['remote_host'];?>
- </td>
- <td rowspan="2" align="center">
- <?php
- if ($sk_server['status'] == "up") {
- /* tunnel is up */
- $iconfn = "interface_up";
- } else {
- /* tunnel is down */
- $iconfn = "interface_down";
- }
- echo "<img src ='/themes/{$g['theme']}/images/icons/icon_{$iconfn}.gif' alt='' />";
- ?>
- </td>
- </tr>
- <tr name='<?php echo "r:{$sk_server['port']}:{$sk_server['remote_host']}"; ?>'>
- <td class="listlr">
- <?=$sk_server['connect_time'];?>
- </td>
- <td class="listr">
- <?=$sk_server['virtual_addr'];?>
- </td>
- </tr>
-<?php endforeach; ?>
- </table>
- </tr>
-</table>
-
-<?php
-} ?>
-<?php if (!empty($clients)) { ?>
-<table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td colspan="6" class="listtopic">
- Client Instance Statistics
- </td>
- </tr>
- <tr>
- <table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" class="tabcont sortable" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td class="listhdrr">Name/Time</td>
- <td class="listhdrr">Remote/Virtual IP</td>
- </tr>
-
- <?php foreach ($clients as $client): ?>
- <tr name='<?php echo "r:{$client['port']}:{$client['remote_host']}"; ?>'>
- <td class="listlr">
- <?=$client['name'];?>
- </td>
- <td class="listr">
- <?=$client['remote_host'];?>
- </td>
- <td rowspan="2" align="center">
- <?php
- if ($client['status'] == "up") {
- /* tunnel is up */
- $iconfn = "interface_up";
- } else {
- /* tunnel is down */
- $iconfn = "interface_down";
- }
- echo "<img src ='/themes/{$g['theme']}/images/icons/icon_{$iconfn}.gif' alt='' />";
- ?>
- </td>
- </tr>
- <tr name='<?php echo "r:{$client['port']}:{$client['remote_host']}"; ?>'>
- <td class="listlr">
- <?=$client['connect_time'];?>
- </td>
- <td class="listr">
- <?=$client['virtual_addr'];?>
- </td>
- </tr>
- <?php endforeach; ?>
- </table>
- </tr>
-</table>
-
-<?php
-}
-
-if ($DisplayNote) {
- echo "<br /><b>NOTE:</b> You need to bind each OpenVPN client to enable its management daemon: use 'Local port' setting in the OpenVPN client screen";
-}
-
-if ((empty($clients)) && (empty($servers)) && (empty($sk_servers))) {
- echo "No OpenVPN instances defined";
-}
-?>
OpenPOWER on IntegriCloud