summaryrefslogtreecommitdiffstats
path: root/src/etc
diff options
context:
space:
mode:
authorStephen Beaver <sbeaver@netgate.com>2015-12-17 07:39:55 -0500
committerStephen Beaver <sbeaver@netgate.com>2015-12-17 07:39:55 -0500
commita43edc8cc00352e60b6ab7b61bc5a3d67c237543 (patch)
tree8a0ef3415949af63f20d4820fa9a5abe5335801d /src/etc
parent860c4a00d7cba51e576bea6e4534ca31c50b0212 (diff)
parent61fce4a6f6f61f25356708df4175d28892a04b4c (diff)
downloadpfsense-a43edc8cc00352e60b6ab7b61bc5a3d67c237543.zip
pfsense-a43edc8cc00352e60b6ab7b61bc5a3d67c237543.tar.gz
Merge pull request #2263 from phil-davis/r016
Diffstat (limited to 'src/etc')
-rw-r--r--src/etc/inc/openvpn.inc36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/etc/inc/openvpn.inc b/src/etc/inc/openvpn.inc
index da666e3..9dc83c5 100644
--- a/src/etc/inc/openvpn.inc
+++ b/src/etc/inc/openvpn.inc
@@ -1611,6 +1611,42 @@ function openvpn_get_client_status($client, $socket) {
return $client;
}
+function openvpn_kill_client($port, $remipp) {
+ global $g;
+
+ //$tcpsrv = "tcp://127.0.0.1:{$port}";
+ $tcpsrv = "unix://{$g['varetc_path']}/openvpn/{$port}.sock";
+ $errval = null;
+ $errstr = null;
+
+ /* 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;
+}
+
function openvpn_refresh_crls() {
global $g, $config;
OpenPOWER on IntegriCloud