If I have an internal gateway to other private subnets behind LAN, and add a static route to those private subnets through the internal gateway, then pfSense very nicely generates NAT rules on WAN-style interfaces to NAT those internal subnets on the way out of WAN. That is very good and convenient. This outbound NAT is actually correctly in the ruleset.
However, the new Outbound NAT GUI page shows the Automatic Outbound NAT rules that are in effect (a great new feature in 2.2). But it did not show the rules for the static routes.
This fixes it. (But the code for all of this is a bit ugly, because it all depends on having a global variable $GatewaysList in view - I am not going to attempt to re-engineer that)
This upgrade step does both Captive Portal stuff and OpenVPN stuff. So do not return early just because there is no Captive Portal config.
Both Captive Portal and OpenVPN tests changed to be positive tests, to make sure that everything is checked/tested and there is no chance to return early.
If the DHCP Relay server is not on any local subnet, and not on any subnet that has an internal static route, but is somewhere that no specific route is known, then this code finds the default gateway and uses that in the DHCP relay "-i" parameter. The current code gets just the interface name (like "wan", "opt1"). But DHCP Relay command needs to be fed the actual device name "vr0", "vr1" etc.
To break this I simply enabled DHCP Relay, select "LAN" interface, and put Destination Server 1.2.3.4
Making this changed fixed it.
Forum: https://forum.pfsense.org/index.php?topic=75010.0
the call of get_interface_gatewayv6() in the creation of a GIF tunnel over IPv6 leads to a "Fatal error: Call to undefined function get_interface_gatewayv6() in /etc/inc/interfaces.inc on line 934". changeing the function call to get_interface_gateway_v6() fixed it for me on my local system.
Thought I would tidy this up while coming across it. IMHO "Package settings" reads better than "Packages settings"... and I reworded the explanatory text a bit also.
it may need some checks/fixes on pkg-utils.inc as git downloads but not installs.
After manual pbi install of git, "pfSsh.php playback gitsync master" works fine with this fix.
Added check to see if $config['ipsec']["ipsec_{$lkey}"] is set before executing unnecessary unset, was causing issues when trying to enable/disable ("Do NOT check packages signature")