diff --git a/net/frr/Makefile b/net/frr/Makefile
index 782c045e7..3a47f7843 100644
--- a/net/frr/Makefile
+++ b/net/frr/Makefile
@@ -1,5 +1,5 @@
PLUGIN_NAME= frr
-PLUGIN_VERSION= 1.13
+PLUGIN_VERSION= 1.14
PLUGIN_COMMENT= The FRRouting Protocol Suite
PLUGIN_DEPENDS= frr6 ruby
PLUGIN_MAINTAINER= franz.fabian.94@gmail.com
diff --git a/net/frr/pkg-descr b/net/frr/pkg-descr
index 4491ec4e2..bc967f587 100644
--- a/net/frr/pkg-descr
+++ b/net/frr/pkg-descr
@@ -11,6 +11,11 @@ switching and routing, Internet access routers, and Internet peering.
Plugin Changelog
================
+1.14
+
+* fix null route issue in parsing
+* add missing via column to routing table for IPv4 (v6 already has it)
+
1.13
* Fix wrong match statement for IPv6 route-maps
diff --git a/net/frr/src/opnsense/mvc/app/views/OPNsense/Quagga/diagnosticsgeneral.volt b/net/frr/src/opnsense/mvc/app/views/OPNsense/Quagga/diagnosticsgeneral.volt
index 61330475e..4e15ea266 100644
--- a/net/frr/src/opnsense/mvc/app/views/OPNsense/Quagga/diagnosticsgeneral.volt
+++ b/net/frr/src/opnsense/mvc/app/views/OPNsense/Quagga/diagnosticsgeneral.volt
@@ -36,6 +36,7 @@ POSSIBILITY OF SUCH DAMAGE.
{{ lang._('Administrative Distance') }} |
{{ lang._('Metric') }} |
{{ lang._('Interface') }} |
+ {{ lang._('Via') }} |
{{ lang._('Time') }} |
@@ -51,6 +52,7 @@ POSSIBILITY OF SUCH DAMAGE.
<%= entry['ad'] %> |
<%= entry['metric'] %> |
<%= entry['interface'] %> |
+ <%= entry['via'] %> |
<%= entry['time'] %> |
<% }); %>
diff --git a/net/frr/src/opnsense/scripts/quagga/quagga.rb b/net/frr/src/opnsense/scripts/quagga/quagga.rb
index 40a0afe7e..e8881a4d0 100755
--- a/net/frr/src/opnsense/scripts/quagga/quagga.rb
+++ b/net/frr/src/opnsense/scripts/quagga/quagga.rb
@@ -113,13 +113,13 @@ class General
end
# you don't have to understand this regex ;)
- entry_regex = /(\S+?)\s+?(\S+?)(?: \[(\d+)\/(\d+)\])? (?:via (\S+?)|is ([^,]+?)), ([^,\n]+)(?:, (\S+))?/
+ entry_regex = /(\S+?)\s+?(\S+?)(?: \[(\d+)\/(\d+)\])? (?:(?:via (\S+?)|is ([^,]+?)|), ([^,\n]+)|(unreachable \(blackhole\)))(?:, (\S+))?/
entries = []
while (line = lines.shift&.strip)
if line.length > 10
- code, network, ad, metric, via, direct, interface, time = line.scan(entry_regex).first
+ code, network, ad, metric, via, direct, interface, unreachable, time = line.scan(entry_regex).first
code = code.split('').map {|c| {short: c, long: meanings[c]}}
- entries << {code: code, network: (network || direct), ad: ad, via: via, metric: metric, interface: interface, time: time }
+ entries << {code: code, network: (network || direct), ad: ad, via: via || unreachable, metric: metric, interface: interface, time: time }
end
end
entries