summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorBill Marquette <billm@pfsense.org>2007-10-19 20:52:35 +0000
committerBill Marquette <billm@pfsense.org>2007-10-19 20:52:35 +0000
commitfb748ac44a1022a38ac45a4bd250d65f69cfadeb (patch)
treead93152e995d9705c48957ee4f2c6833bba25908 /etc
parentf15f4b4d413a073f39b3f387dbe0a667f02d9aac (diff)
downloadpfsense-fb748ac44a1022a38ac45a4bd250d65f69cfadeb.zip
pfsense-fb748ac44a1022a38ac45a4bd250d65f69cfadeb.tar.gz
Ticket #1482 - set the source to an interface that is inside the subnet definition
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/vpn.inc13
1 files changed, 10 insertions, 3 deletions
diff --git a/etc/inc/vpn.inc b/etc/inc/vpn.inc
index d578bf4..0a7312e 100644
--- a/etc/inc/vpn.inc
+++ b/etc/inc/vpn.inc
@@ -210,9 +210,16 @@ function vpn_ipsec_configure($ipchg = false) {
}
/* add entry to host pinger */
- if($tunnel['pinghost']) {
- $pfd = fopen("/var/db/ipsecpinghosts","a");
- $srcip = find_interface_ip($config['interfaces']['lan']['if']);
+ if ($tunnel['pinghost']) {
+ $pfd = fopen("/var/db/ipsecpinghosts", "a");
+ $iflist = array("lan" => "LAN", "wan" => "WAN");
+ for ($i = 1; isset($config['interfaces']['opt' . $i]); $i++)
+ $iflist['opt' . $i] = "opt{$i}";
+
+ foreach ($iflist as $ifent => $ifname) {
+ if (ip_in_subnet(find_interface_ip($config['interfaces'][$ifname]['if']), $tunnel['local-subnet']))
+ $srcip = find_interface_ip($config['interfaces'][$ifname]['if']);
+ }
$dstip = $tunnel['pinghost'];
fwrite($pfd, "$srcip|$dstip|3\n");
fclose($pfd);
OpenPOWER on IntegriCloud