diff options
author | Renato Botelho <renato@netgate.com> | 2015-08-25 08:08:24 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2015-08-25 14:49:54 -0300 |
commit | 46bc6e545a17e77202aaf01ec0cd8d5a46567525 (patch) | |
tree | 32d18dda436ec739c67c489ceb771e8629cd926f /etc/rc.openvpn | |
parent | 4d9801c2dbd2b3e54a39578ee62b93af66607227 (diff) | |
download | pfsense-46bc6e545a17e77202aaf01ec0cd8d5a46567525.zip pfsense-46bc6e545a17e77202aaf01ec0cd8d5a46567525.tar.gz |
Move main pfSense content to src/
Diffstat (limited to 'etc/rc.openvpn')
-rwxr-xr-x | etc/rc.openvpn | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/etc/rc.openvpn b/etc/rc.openvpn deleted file mode 100755 index cda8067..0000000 --- a/etc/rc.openvpn +++ /dev/null @@ -1,132 +0,0 @@ -#!/usr/local/bin/php-cgi -f -<?php -/* - rc.openvpn - part of m0n0wall (http://m0n0.ch/wall) - - Copyright (C) 2007 Manuel Kasper <mk@neon1.net>. - Copyright (C) 2009 Seth Mos <seth.mos@dds.nl>. - All rights reserved. - - 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. -*/ - -/* parse the configuration and include all functions used below */ -require_once("util.inc"); -require_once("config.inc"); -require_once("functions.inc"); -require_once("filter.inc"); -require_once("gwlb.inc"); -require_once("openvpn.inc"); - -function openvpn_resync_if_needed ($mode, $ovpn_settings, $interface) { - global $g, $config; - - $resync_needed = true; - if (isset($ovpn_settings['disable'])) { - $resync_needed = false; - } else { - if (!empty($interface)) { - $mode_id = $mode . $ovpn_settings['vpnid']; - $fpath = "{$g['varetc_path']}/openvpn/{$mode_id}.interface"; - if (file_exists($fpath)) { - /* Compare the interface currently used by the VPN with the interface that should be used. - If the VPN should stay on the same interface, do not resync */ - if (trim(file_get_contents($fpath), " \t\n") == get_failover_interface($ovpn_settings['interface'])) { - $resync_needed = false; - } - } - } - } - if ($resync_needed == true) { - log_error("OpenVPN: Resync " . $mode_id . " " . $ovpn_settings['description']); - openvpn_resync($mode, $ovpn_settings); - } -} - -/* make sure to wait until the boot scripts have finished */ -if (file_exists("{$g['varrun_path']}/booting")) { - return; -} - -/* Input argument is a comma-separated list of gateway names, blank or "all". */ -if (isset($_GET['interface'])) { - $argument = $_GET['interface']; -} else { - $argument = trim($argv[1], " \n"); -} - -if ((is_array($config['openvpn']['openvpn-server']) && count($config['openvpn']['openvpn-server'])) || - (is_array($config['openvpn']['openvpn-client']) && count($config['openvpn']['openvpn-client']))) { - if (empty($argument) || $argument == "all") { - $argument = "all"; - $log_text = "all"; - } else { - $log_text = "endpoints that may use " . $argument; - } - log_error("OpenVPN: One or more OpenVPN tunnel endpoints may have changed its IP. Reloading " . $log_text . "."); -} else { - return; -} - -$openvpnlck = try_lock('openvpn', 10); -if (!$openvpnlck) { - log_error(gettext("Could not obtain openvpn lock for executing rc.openvpn for more than 10 seconds continuing...")); - unlock_force('openvpn'); - $openvpnlck = lock('openvpn', LOCK_EX); -} - -$arg_array = explode(",", $argument); -foreach ($arg_array as $arg_element) { - $gwgroups = array(); - if ($arg_element == "all") { - $interface = ""; - } else { - // e.g. $arg_element = "WANGW", $interface = "wan" - $interface = lookup_gateway_interface_by_name($arg_element); - if (empty($interface)) { - $interface = $arg_element; - } else { - // e.g. $arg_element = "WANGW", $gwgroups = array of gateway groups that use "wan" - $gwgroups = gateway_is_gwgroup_member($arg_element); - } - } - - if (is_array($config['openvpn']['openvpn-server'])) { - foreach ($config['openvpn']['openvpn-server'] as &$server) { - if ($server['interface'] == $interface || empty($interface) || (!empty($gwgroups) && in_array($server['interface'], $gwgroups))) { - openvpn_resync_if_needed('server', $server, $interface); - } - } - } - - if (is_array($config['openvpn']['openvpn-client'])) { - foreach ($config['openvpn']['openvpn-client'] as &$client) { - if ($client['interface'] == $interface || empty($interface) || (!empty($gwgroups) && in_array($client['interface'], $gwgroups))) { - openvpn_resync_if_needed('client', $client, $interface); - } - } - } -} - -unlock($openvpnlck); -?> |