diff options
author | Daniil Baturin <daniil@baturin.org> | 2014-12-05 22:22:57 +0600 |
---|---|---|
committer | Daniil Baturin <daniil@baturin.org> | 2014-12-05 22:22:57 +0600 |
commit | 1e26576c2364c2626dffbc9f2987c955de2bf5fb (patch) | |
tree | 4daf37accb638149c768042dd6c852cef065dff5 /lib | |
parent | 164e703b1c1089fdf687e0e8449495821abf6d78 (diff) | |
parent | 008b1f0f79302a262ccc4d6bf5271e6052d8ec6f (diff) | |
download | vyatta-op-vpn-1e26576c2364c2626dffbc9f2987c955de2bf5fb.tar.gz vyatta-op-vpn-1e26576c2364c2626dffbc9f2987c955de2bf5fb.zip |
Merge pull request #7 from jhendryUK/ikev2_sa_info_without_proto
Fixing "show vpn ipsec sa" IKEv2 left/rgiht subnet info
Diffstat (limited to 'lib')
-rw-r--r-- | lib/OPMode.pm | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/lib/OPMode.pm b/lib/OPMode.pm index f46fb28..4c60179 100644 --- a/lib/OPMode.pm +++ b/lib/OPMode.pm @@ -611,11 +611,27 @@ sub process_tunnels{ $last_used = $1 if ($line =~ /\((\d+)s ago\)/); $esp_hash{$connectid}{$esp_id}->{last_used} = $last_used; - } elsif ($line =~ /{(\d+)}:\s+(.*?)\[(.*?)\] === (.*)\[(.*)\]/) { - $esp_hash{$connectid}{$1}->{_lsnet} = $2; - $esp_hash{$connectid}{$1}->{_lproto} = $3; - $esp_hash{$connectid}{$1}->{_rsnet} = $4; - $esp_hash{$connectid}{$1}->{_rproto} = $5; + } elsif ($line =~ /{(\d+)}:\s+(\d+\.\d+\.\d+\.\d+\/\d+(\[.*?\]){0,1}) === (\d+\.\d+\.\d+\.\d+\/\d+(\[.*?\]){0,1})/) { + my ($esp_id, $_lsnet, $_lsproto, $_rsnet, $_rsproto) = ($1, $2, $3, $4, $5); + + if (defined($_lsproto)) { + $_lsnet =~ s/\Q$_lsproto\E//g if ($_lsnet =~ /\Q$_lsproto\E/); + $_lsproto =~ s/\[|\]//g; + } else { + $_lsproto = "all"; + } + + if (defined($_rsproto)) { + $_rsnet =~ s/\Q$_rsproto\E//g if ($_rsnet =~ /\Q$_rsproto\E/); + $_rsproto =~ s/\[|\]//g; + } else { + $_rsproto = "all"; + } + + $esp_hash{$connectid}{$esp_id}->{_lsnet} = $_lsnet; + $esp_hash{$connectid}{$esp_id}->{_lproto} = $_lsproto; + $esp_hash{$connectid}{$esp_id}->{_rsnet} = $_rsnet; + $esp_hash{$connectid}{$esp_id}->{_rproto} = $_rsproto; } } } |