Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpnSense
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kulya
OpnSense
Commits
8714dfca
Commit
8714dfca
authored
Aug 07, 2015
by
Ad Schellevis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(legacy) cleanup/refactor status_openvpn.php
parent
4b77fe1c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
206 additions
and
319 deletions
+206
-319
status_openvpn.php
src/www/status_openvpn.php
+206
-319
No files found.
src/www/status_openvpn.php
View file @
8714dfca
...
@@ -28,35 +28,14 @@
...
@@ -28,35 +28,14 @@
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
POSSIBILITY OF SUCH DAMAGE.
*/
*/
require_once
(
"guiconfig.inc"
);
require_once
(
"guiconfig.inc"
);
require_once
(
"openvpn.inc"
);
require_once
(
"openvpn.inc"
);
require_once
(
"services.inc"
);
require_once
(
"services.inc"
);
require_once
(
"interfaces.inc"
);
require_once
(
"interfaces.inc"
);
$pgtitle
=
array
(
gettext
(
"Status"
),
gettext
(
"OpenVPN"
));
$shortcut_section
=
"openvpn"
;
/* 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
)
{
function
kill_client
(
$port
,
$remipp
)
{
global
$g
;
global
$g
;
//$tcpsrv = "tcp://127.0.0.1:{$port}";
$tcpsrv
=
"unix:///var/etc/openvpn/
{
$port
}
.sock"
;
$tcpsrv
=
"unix:///var/etc/openvpn/
{
$port
}
.sock"
;
$errval
;
$errval
;
$errstr
;
$errstr
;
...
@@ -87,9 +66,32 @@ function kill_client($port, $remipp) {
...
@@ -87,9 +66,32 @@ function kill_client($port, $remipp) {
return
$killed
;
return
$killed
;
}
}
$pgtitle
=
array
(
gettext
(
"Status"
),
gettext
(
"OpenVPN"
));
$shortcut_section
=
"openvpn"
;
if
(
$_SERVER
[
'REQUEST_METHOD'
]
===
'GET'
)
{
$vpnid
=
0
;
}
elseif
(
$_SERVER
[
'REQUEST_METHOD'
]
===
'POST'
)
{
if
(
isset
(
$_POST
[
'action'
])
&&
$_POST
[
'action'
]
==
'kill'
)
{
$port
=
escapeshellarg
(
$_POST
[
'port'
]);
$remipp
=
escapeshellarg
(
$_POST
[
'remipp'
]);
if
(
!
empty
(
$port
)
and
!
empty
(
$remipp
))
{
$retval
=
kill_client
(
$port
,
$remipp
);
echo
htmlentities
(
"|
{
$port
}
|
{
$remipp
}
|
{
$retval
}
|"
);
}
else
{
echo
gettext
(
"invalid input"
);
}
exit
;
}
}
$servers
=
openvpn_get_active_servers
();
$servers
=
openvpn_get_active_servers
();
legacy_html_escape_form_data
(
$servers
);
$sk_servers
=
openvpn_get_active_servers
(
"p2p"
);
$sk_servers
=
openvpn_get_active_servers
(
"p2p"
);
legacy_html_escape_form_data
(
$sk_servers
);
$clients
=
openvpn_get_active_clients
();
$clients
=
openvpn_get_active_clients
();
legacy_html_escape_form_data
(
$clients
);
include
(
"head.inc"
);
?>
include
(
"head.inc"
);
?>
...
@@ -99,326 +101,211 @@ include("head.inc"); ?>
...
@@ -99,326 +101,211 @@ include("head.inc"); ?>
<script
type=
"text/javascript"
>
<script
type=
"text/javascript"
>
//
<!
[
CDATA
[
//
<!
[
CDATA
[
function
killClient
(
mport
,
remipp
)
{
$
(
document
).
ready
(
function
()
{
var
busy
=
function
(
index
,
icon
)
{
// link kill buttons
jQuery
(
icon
).
bind
(
"
onclick
"
,
""
);
$
(
"
.act_kill_client
"
).
click
(
function
(){
jQuery
(
icon
).
attr
(
'
src
'
,
jQuery
(
icon
).
attr
(
'
src
'
).
replace
(
"
\
.gif
"
,
"
_d.gif
"
));
var
port
=
$
(
this
).
attr
(
"
data-client-port
"
);
jQuery
(
icon
).
css
(
"
cursor
"
,
"
wait
"
);
var
ip
=
$
(
this
).
attr
(
"
data-client-ip
"
);
}
$
.
post
(
window
.
location
,
{
action
:
'
kill
'
,
port
:
port
,
remipp
:
ip
},
function
(
data
)
{
location
.
reload
();
jQuery
(
'
img[name="i:
'
+
mport
+
"
:
"
+
remipp
+
'
"]
'
).
each
(
busy
);
});
});
jQuery
.
ajax
(
// link show/hide routes
"
<?=
$_SERVER
[
'SCRIPT_NAME'
];
?>
"
+
$
(
"
.act_show_routes
"
).
click
(
function
(){
"
?action=kill&port=
"
+
mport
+
"
&remipp=
"
+
remipp
,
$
(
"
*[for='
"
+
$
(
this
).
attr
(
'
id
'
)
+
"
']
"
).
toggleClass
(
"
hidden show
"
);
{
type
:
"
get
"
,
complete
:
killComplete
}
});
);
}
// minimize all buttons, some pf the buttons come from the shared service
// functions, which outputs large buttons.
function
killComplete
(
req
)
{
$
(
"
.btn
"
).
each
(
function
(){
var
values
=
req
.
responseText
.
split
(
"
|
"
);
$
(
this
).
addClass
(
"
btn-xs
"
);
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>
</script>
<section
class=
"page-content-main"
>
<section
class=
"page-content-main"
>
<div
class=
"container-fluid"
>
<div
class=
"container-fluid"
>
<div
class=
"row"
>
<div
class=
"row"
>
<section
class=
"col-xs-12"
>
<section
class=
"col-xs-12"
>
<div
class=
"content-box"
>
<header
class=
"content-box-head container-fluid"
>
<h3>
<?=
gettext
(
"OpenVPN Status"
);
?>
</h3>
<header
class=
"content-box-head container-fluid"
>
</header>
<h3>
OpenVPN Status
</h3>
<div
class=
"content-box-main col-xs-12"
>
</header>
<form
action=
"status_openvpn.php"
method=
"get"
name=
"iform"
>
<div
class=
"table-responsive"
>
<div
class=
"content-box-main col-xs-12"
>
<table
class=
"table table-striped"
>
<form
action=
"status_openvpn.php"
method=
"get"
name=
"iform"
>
<?php
$i
=
0
;
?>
<?php
foreach
(
$servers
as
$server
)
:
?>
<?php
$i
=
0
;
?>
<?php
foreach
(
$servers
as
$server
)
:
?>
<div
class=
"table-responsive"
>
<table
class=
"table table-striped table-sort sortable __nomb"
>
<tr>
<td
colspan=
"6"
class=
"listtopic"
>
<?=
$server
[
'name'
];
?>
<?=
gettext
(
"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"
summary=
"connections"
>
<tr>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Common Name"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Real Address"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Virtual Address"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Connected Since"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Bytes Sent"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Bytes Received"
);
?>
</td>
</tr>
<?php
foreach
(
$server
[
'conns'
]
as
$conn
)
:
?>
<tr
id=
"
<?php
echo
"r:
{
$server
[
'mgmt'
]
}
:
{
$conn
[
'remote_host'
]
}
"
;
?>
"
>
<td
class=
"listlr"
>
<?=
$conn
[
'common_name'
];
?>
</td>
<td
class=
"listr"
>
<?=
$conn
[
'remote_host'
];
?>
</td>
<td
class=
"listr"
>
<?=
$conn
[
'virtual_addr'
];
?>
</td>
<td
class=
"listr"
>
<?=
$conn
[
'connect_time'
];
?>
</td>
<td
class=
"listr"
>
<?=
format_bytes
(
$conn
[
'bytes_sent'
]);
?>
</td>
<td
class=
"listr"
>
<?=
format_bytes
(
$conn
[
'bytes_recv'
]);
?>
</td>
<td
class=
"list"
>
<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;"
id=
"
<?php
echo
"i:
{
$server
[
'mgmt'
]
}
:
{
$conn
[
'remote_host'
]
}
"
;
?>
"
title=
"
<?php
echo
gettext
(
"Kill client connection from"
)
.
" "
.
$conn
[
'remote_host'
];
?>
"
alt=
"delete"
/>
</td>
</tr>
<?php
endforeach
;
?>
<tfoot>
<tr>
<td
colspan=
"2"
class=
"list"
height=
"12"
>
<table>
<tr>
<tr>
<td>
<?php
$ssvc
=
find_service_by_openvpn_vpnid
(
$server
[
'vpnid'
]);
?
>
<td
colspan=
"8"
class=
"listtopic"
>
<?=
get_service_status_icon
(
$ssvc
,
true
,
true
);
?
>
<b>
<?=
$server
[
'name'
];
?>
<?=
gettext
(
"Client connections"
);
?>
</b
>
<?=
get_service_control_links
(
$ssvc
,
true
);
?>
</td>
</td>
</tr>
</tr>
</table>
<tr>
</td>
<td>
<?=
gettext
(
"Common Name"
);
?>
</td>
<td
colspan=
"4"
class=
"list"
height=
"12"
>
</td>
<td>
<?=
gettext
(
"Real Address"
);
?>
</td>
</tr>
<td>
<?=
gettext
(
"Virtual Address"
);
?>
</td>
</tfoot>
<td>
<?=
gettext
(
"Connected Since"
);
?>
</td>
</table>
<td>
<?=
gettext
(
"Bytes Sent"
);
?>
</td>
</td>
<td>
<?=
gettext
(
"Bytes Received"
);
?>
</td>
</tr>
<td></td>
</table>
<td></td>
<?php
if
(
is_array
(
$server
[
'routes'
])
&&
count
(
$server
[
'routes'
]))
:
?>
</tr>
<div
id=
"shroutebut-
<?=
$i
?>
"
>
<?php
foreach
(
$server
[
'conns'
]
as
$conn
)
:
?>
<input
type=
"button"
onClick=
"show_routes('tabroute-
<?=
$i
?>
','shroutebut-
<?=
$i
?>
')"
value=
"
<?php
echo
gettext
(
"Show Routing Table"
);
?>
"
/>
-
<?=
gettext
(
"Display OpenVPN's internal routing table for this server."
)
?>
<tr
id=
"
<?php
echo
"r:
{
$server
[
'mgmt'
]
}
:
{
$conn
[
'remote_host'
]
}
"
;
?>
"
>
<td>
<?=
$conn
[
'common_name'
];
?>
</td>
<td>
<?=
$conn
[
'remote_host'
];
?>
</td>
<td>
<?=
$conn
[
'virtual_addr'
];
?>
</td>
<td>
<?=
$conn
[
'connect_time'
];
?>
</td>
<td>
<?=
format_bytes
(
$conn
[
'bytes_sent'
]);
?>
</td>
<td>
<?=
format_bytes
(
$conn
[
'bytes_recv'
]);
?>
</td>
<td></td>
<td>
<a
data-client-port=
"
<?=
$server
[
'mgmt'
];
?>
"
data-client-ip=
"
<?=
$conn
[
'remote_host'
];
?>
"
title=
"
<?=
gettext
(
"Kill client connection from"
)
.
" "
.
$conn
[
'remote_host'
]
;
?>
"
class=
"act_kill_client btn btn-default"
>
<span
class=
"glyphicon glyphicon-remove"
></span>
</a>
</td>
</tr>
<?php
endforeach
;
?>
<tr>
<td
colspan=
"2"
>
<?php
$ssvc
=
find_service_by_openvpn_vpnid
(
$server
[
'vpnid'
]);
?>
<?=
get_service_status_icon
(
$ssvc
,
true
,
true
);
?>
<?=
get_service_control_links
(
$ssvc
,
true
);
?>
</td>
<td
colspan=
"6"
>
</td>
</tr>
<?php
if
(
isset
(
$server
[
'routes'
])
&&
count
(
$server
[
'routes'
]))
:
?>
<tr>
<td
colspan=
"8"
>
<button
class=
"btn btn-default act_show_routes"
type=
"button"
id=
"showroutes_
<?=
$i
?>
"
><i
class=
"fa fa-info"
></i>
<?php
echo
gettext
(
"Show/Hide Routing Table"
);
?>
</button>
<div
class=
"hidden"
for=
"showroutes_
<?=
$i
?>
"
>
<small>
<?=
$server
[
'name'
];
?>
<?=
gettext
(
"Routing Table"
);
?>
</small>
<table
class=
"table table-striped table-bordered"
>
<thead>
<tr>
<th>
<?=
gettext
(
"Common Name"
);
?>
</th>
<th>
<?=
gettext
(
"Real Address"
);
?>
</th>
<th>
<?=
gettext
(
"Target Network"
);
?>
</th>
<th>
<?=
gettext
(
"Last Used"
);
?>
</th>
</tr>
</thead>
<tbody>
<?php
foreach
(
$server
[
'routes'
]
as
$conn
)
:
?>
<tr
id=
"
<?php
echo
"r:
{
$server
[
'mgmt'
]
}
:
{
$conn
[
'remote_host'
]
}
"
;
?>
"
>
<td>
<?=
$conn
[
'common_name'
];
?>
</td>
<td>
<?=
$conn
[
'remote_host'
];
?>
</td>
<td>
<?=
$conn
[
'virtual_addr'
];
?>
</td>
<td>
<?=
$conn
[
'last_time'
];
?>
</td>
</tr>
<?php
endforeach
;
?>
<tfoot>
<tr>
<td
colspan=
"6"
>
<?=
gettext
(
"An IP address followed by C indicates a host currently connected through the VPN."
)
?>
</td>
</tr>
</tfoot>
</tbody>
</table>
</div>
</td>
</tr>
<?php
endif
;
?>
<?php
$i
++
;
?>
<?php
endforeach
;
?>
</div>
<?php
if
(
!
empty
(
$sk_servers
))
{
?>
<table
style=
"display: none; padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px"
width=
"100%"
border=
"0"
cellpadding=
"0"
cellspacing=
"0"
id=
"tabroute-
<?=
$i
?>
"
summary=
"routing table"
>
<tr>
<tr>
<td
colspan=
"8"
class=
"listtopic"
>
<td
colspan=
"6"
class=
"listtopic"
>
<b>
<?=
gettext
(
"Peer to Peer Server Instance Statistics"
);
?>
</b>
<?=
$server
[
'name'
];
?>
<?=
gettext
(
"Routing Table"
);
?>
</td>
</td>
</tr>
</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"
summary=
"results"
>
<tr>
<tr>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Common Name"
);
?>
</td>
<td>
<?=
gettext
(
"Name"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Real Address"
);
?>
</td>
<td>
<?=
gettext
(
"Remote Host"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Target Network"
);
?>
</td>
<td>
<?=
gettext
(
"Virtual Addr"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Last Used"
);
?>
</td>
<td>
<?=
gettext
(
"Connected Since"
);
?>
</td>
</tr>
<td>
<?=
gettext
(
"Bytes Sent"
);
?>
</td>
<td>
<?=
gettext
(
"Bytes Received"
);
?>
</td>
<?php
foreach
(
$server
[
'routes'
]
as
$conn
)
:
?>
<td>
<?=
gettext
(
"Status"
);
?>
</td>
<tr
id=
"
<?php
echo
"r:
{
$server
[
'mgmt'
]
}
:
{
$conn
[
'remote_host'
]
}
"
;
?>
"
>
<td></td>
<td
class=
"listlr"
>
<?=
$conn
[
'common_name'
];
?>
</td>
<td
class=
"listr"
>
<?=
$conn
[
'remote_host'
];
?>
</td>
<td
class=
"listr"
>
<?=
$conn
[
'virtual_addr'
];
?>
</td>
<td
class=
"listr"
>
<?=
$conn
[
'last_time'
];
?>
</td>
</tr>
</tr>
<?php
foreach
(
$sk_servers
as
$sk_server
)
:
?>
<tr
id=
"
<?php
echo
"r:
{
$sk_server
[
'port'
]
}
:
{
$sk_server
[
'vpnid'
]
}
"
;
?>
"
>
<td>
<?=
$sk_server
[
'name'
];
?>
</td>
<td>
<?=
$sk_server
[
'remote_host'
];
?>
</td>
<td>
<?=
$sk_server
[
'virtual_addr'
];
?>
</td>
<td>
<?=
$sk_server
[
'connect_time'
];
?>
</td>
<td>
<?=
format_bytes
(
$sk_server
[
'bytes_sent'
]);
?>
</td>
<td>
<?=
format_bytes
(
$sk_server
[
'bytes_recv'
]);
?>
</td>
<td>
<?=
$sk_server
[
'status'
];
?>
</td>
<td>
<div>
<?php
$ssvc
=
find_service_by_openvpn_vpnid
(
$sk_server
[
'vpnid'
]);
?>
<?=
get_service_status_icon
(
$ssvc
,
false
,
true
);
?>
<?=
get_service_control_links
(
$ssvc
,
true
);
?>
</div>
</td>
</tr>
<?php
endforeach
;
?>
<?php
endforeach
;
?>
<tfoot>
<?php
<tr>
}
?>
<td
colspan=
"6"
class=
"list"
height=
"12"
>
<?=
gettext
(
"An IP address followed by C indicates a host currently connected through the VPN."
)
?>
</td>
</tr>
</tfoot>
</table>
</td>
</tr>
</table>
<?php
endif
;
?>
<?php
$i
++
;
?>
<?php
endforeach
;
?>
<?php
if
(
!
empty
(
$sk_servers
))
{
?>
<?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"
summary=
"peer to peer stats"
>
<tr>
<td
colspan=
"6"
class=
"listtopic"
>
<?=
gettext
(
"Peer to Peer Server Instance Statistics"
);
?>
</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"
summary=
"results"
>
<tr>
<tr>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Name"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Status"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Connected Since"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Virtual Addr"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Remote Host"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Bytes Sent"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Bytes Rcvd"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Service"
);
?>
</td>
</tr>
<?php
foreach
(
$sk_servers
as
$sk_server
)
:
?>
<tr
id=
"
<?php
echo
"r:
{
$sk_server
[
'port'
]
}
:
{
$sk_server
[
'vpnid'
]
}
"
;
?>
"
>
<td
class=
"listlr"
>
<?=
$sk_server
[
'name'
];
?>
</td>
<td
class=
"listr"
>
<?=
$sk_server
[
'status'
];
?>
</td>
<td
class=
"listr"
>
<?=
$sk_server
[
'connect_time'
];
?>
</td>
<td
class=
"listr"
>
<?=
$sk_server
[
'virtual_addr'
];
?>
</td>
<td
class=
"listr"
>
<?=
$sk_server
[
'remote_host'
];
?>
</td>
<td
class=
"listr"
>
<?=
format_bytes
(
$sk_server
[
'bytes_sent'
]);
?>
</td>
<td
class=
"listr"
>
<?=
format_bytes
(
$sk_server
[
'bytes_recv'
]);
?>
</td>
<td
class=
"listr"
>
<table>
<tr>
<tr>
<td>
<?php
$ssvc
=
find_service_by_openvpn_vpnid
(
$sk_server
[
'vpnid'
]);
?
>
<td
colspan=
"8"
class=
"listtopic"
>
<?=
get_service_status_icon
(
$ssvc
,
false
,
true
);
?
>
<b>
<?=
gettext
(
"Client Instance Statistics"
);
?>
<b
>
<?=
get_service_control_links
(
$ssvc
,
true
);
?>
</td>
</td>
</tr>
</tr>
</table>
</td>
</tr>
<?php
endforeach
;
?>
</table>
</td>
</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"
summary=
"client stats"
>
<tr>
<td
colspan=
"6"
class=
"listtopic"
>
<?=
gettext
(
"Client Instance Statistics"
);
?>
</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"
summary=
"results"
>
<tr>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Name"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Status"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Connected Since"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Virtual Addr"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Remote Host"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Bytes Sent"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Bytes Rcvd"
);
?>
</td>
<td
class=
"listhdrr"
>
<?=
gettext
(
"Service"
);
?>
</td>
</tr>
<?php
foreach
(
$clients
as
$client
)
:
?>
<tr
id=
"
<?php
echo
"r:
{
$client
[
'port'
]
}
:
{
$client
[
'vpnid'
]
}
"
;
?>
"
>
<td
class=
"listlr"
>
<?=
$client
[
'name'
];
?>
</td>
<td
class=
"listr"
>
<?=
$client
[
'status'
];
?>
</td>
<td
class=
"listr"
>
<?=
$client
[
'connect_time'
];
?>
</td>
<td
class=
"listr"
>
<?=
$client
[
'virtual_addr'
];
?>
</td>
<td
class=
"listr"
>
<?=
$client
[
'remote_host'
];
?>
</td>
<td
class=
"listr"
>
<?=
format_bytes
(
$client
[
'bytes_sent'
]);
?>
</td>
<td
class=
"listr"
>
<?=
format_bytes
(
$client
[
'bytes_recv'
]);
?>
</td>
<td
class=
"listr"
height=
"12"
>
<table>
<tr>
<tr>
<td>
<?php
$ssvc
=
find_service_by_openvpn_vpnid
(
$client
[
'vpnid'
]);
?>
<td>
<?=
gettext
(
"Name"
);
?>
</td>
<?=
get_service_status_icon
(
$ssvc
,
false
,
true
);
?>
<td>
<?=
gettext
(
"Connected Since"
);
?>
</td>
<?=
get_service_control_links
(
$ssvc
,
true
);
?>
</td>
<td>
<?=
gettext
(
"Virtual Addr"
);
?>
</td>
<td>
<?=
gettext
(
"Remote Host"
);
?>
</td>
<td>
<?=
gettext
(
"Bytes Sent"
);
?>
</td>
<td>
<?=
gettext
(
"Bytes Rcvd"
);
?>
</td>
<td>
<?=
gettext
(
"Status"
);
?>
</td>
<td></td>
</tr>
</tr>
</table>
<?php
foreach
(
$clients
as
$client
)
:
?>
</td>
<tr
id=
"
<?php
echo
"r:
{
$client
[
'port'
]
}
:
{
$client
[
'vpnid'
]
}
"
;
?>
"
>
</tr>
<td>
<?=
$client
[
'name'
];
?>
</td>
<?php
endforeach
;
?>
<td>
<?=
$client
[
'connect_time'
];
?>
</td>
<td>
<?=
$client
[
'virtual_addr'
];
?>
</td>
<td>
<?=
$client
[
'remote_host'
];
?>
</td>
<td>
<?=
format_bytes
(
$client
[
'bytes_sent'
]);
?>
</td>
<td>
<?=
format_bytes
(
$client
[
'bytes_recv'
]);
?>
</td>
<td>
<?=
$client
[
'status'
];
?>
</td>
<td>
<div>
<?php
$ssvc
=
find_service_by_openvpn_vpnid
(
$client
[
'vpnid'
]);
?>
<?=
get_service_status_icon
(
$ssvc
,
false
,
true
);
?>
<?=
get_service_control_links
(
$ssvc
,
true
);
?>
</div>
</td>
</tr>
<?php
endforeach
;
?>
</table>
</table>
</td>
</div>
</tr>
<?php
</table>
}
</div>
if
((
empty
(
$clients
))
&&
(
empty
(
$servers
))
&&
(
empty
(
$sk_servers
)))
{
echo
gettext
(
"No OpenVPN instance defined"
);
<?php
}
}
?>
if
(
$DisplayNote
)
{
echo
"<br /><b>"
.
gettext
(
"NOTE"
)
.
":</b> "
.
gettext
(
"If you have custom options that override the management features of OpenVPN on a client or server, they will cause that OpenVPN instance to not work correctly with this status page."
);
}
if
((
empty
(
$clients
))
&&
(
empty
(
$servers
))
&&
(
empty
(
$sk_servers
)))
{
echo
gettext
(
"No OpenVPN instance defined"
);
}
?>
</form>
</form>
</div>
</div>
</div>
</section>
</section>
</div>
</div>
</div>
</div>
</section>
</section>
<script
type=
"text/javascript"
>
//
<!
[
CDATA
[
function
show_routes
(
id
,
buttonid
)
{
document
.
getElementById
(
buttonid
).
innerHTML
=
''
;
aodiv
=
document
.
getElementById
(
id
);
aodiv
.
style
.
display
=
"
block
"
;
}
//]]>
</script>
<?php
include
(
"foot.inc"
);
?>
<?php
include
(
"foot.inc"
);
?>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment