summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorSeth Mos <seth.mos@dds.nl>2011-03-14 22:03:54 +0100
committerSeth Mos <seth.mos@dds.nl>2011-03-14 22:03:54 +0100
commitfb17f629ee27e837735aeb48b93ead69d2a64754 (patch)
tree882549e86b3148fee893123dd5313b0e170ef12d /etc
parente79b24ab3534ac2af7d832038155a99902bc2c49 (diff)
downloadpfsense-fb17f629ee27e837735aeb48b93ead69d2a64754.zip
pfsense-fb17f629ee27e837735aeb48b93ead69d2a64754.tar.gz
Commit the backend function that writes out the racoon.conf
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/vpn.inc28
1 files changed, 21 insertions, 7 deletions
diff --git a/etc/inc/vpn.inc b/etc/inc/vpn.inc
index a1d4cef..d1eb8d8 100644
--- a/etc/inc/vpn.inc
+++ b/etc/inc/vpn.inc
@@ -142,7 +142,7 @@ function vpn_ipsec_configure($ipchg = false)
continue;
$ep = ipsec_get_phase1_src($ph1ent);
- if (!$ep)
+ if (!is_ipaddr($ep))
continue;
if(!in_array($ep,$ipmap))
@@ -186,16 +186,30 @@ function vpn_ipsec_configure($ipchg = false)
if ($ph2ent['pinghost']) {
$iflist = get_configured_interface_list();
foreach ($iflist as $ifent => $ifname) {
- $interface_ip = get_interface_ip($ifent);
- $local_subnet = ipsec_idinfo_to_cidr($ph2ent['localid'], true);
- if (ip_in_subnet($interface_ip, $local_subnet)) {
- $srcip = $interface_ip;
- break;
+ if(is_ipaddrv6($ph1ent['src'])) {
+ $interface_ip = get_interface_ipv6($ifent);
+ $local_subnetv6 = ipsec_idinfo_to_cidr($ph2ent['localid'], true);
+ if (ip_in_subnetv6($interface_ip, $local_subnet)) {
+ $srcip = $interface_ip;
+ break;
+ }
+ } else {
+ $interface_ip = get_interface_ip($ifent);
+ $local_subnet = ipsec_idinfo_to_cidr($ph2ent['localid'], true);
+ if (ip_in_subnet($interface_ip, $local_subnet)) {
+ $srcip = $interface_ip;
+ break;
+ }
}
}
$dstip = $ph2ent['pinghost'];
+ if(is_ipaddrv6($srcip)) {
+ $family = "inet6";
+ } else {
+ $family = "inet";
+ }
if (is_ipaddr($srcip))
- $ipsecpinghosts .= "{$srcip}|{$dstip}|3\n";
+ $ipsecpinghosts .= "{$srcip}|{$dstip}|3|{$family}\n";
}
}
$pfd = fopen("{$g['vardb_path']}/ipsecpinghosts", "w");
OpenPOWER on IntegriCloud