<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.kitz.co.uk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chrysalis</id>
		<title>kitz wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.kitz.co.uk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chrysalis"/>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php/Special:Contributions/Chrysalis"/>
		<updated>2026-07-07T16:04:04Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=906</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=906"/>
				<updated>2025-09-22T17:05:28Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: /* pfSense patches contributed by the kitz community */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.8.1.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch281|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch270|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch281|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch281|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch270|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
*[[BetterTemps|More Accurate Temperatures]]&lt;br /&gt;
*[[GranularServeExpired|Improved DNS Resolver Options]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
[[Click here for pfSense 2.6.0 patches]] | [[Click here for pfSense 2.7.0 patches]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to the current stable version via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfaddnewpatch.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pfsense Patches]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=GranularServeExpired&amp;diff=905</id>
		<title>GranularServeExpired</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=GranularServeExpired&amp;diff=905"/>
				<updated>2025-09-21T21:26:10Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since pfSense 2.8.1. The unbound DNS resolver that is distributed in the firewall has a new default behaviour for the serve expired feature, this is because a new RFC 8767 was drawn up which now has reccomended practice of using the feature for serving stale queries only, so the default value now makes the feature only serve expired queries from the cache if a upstream DNS lookup fails to respond within 1800ms.&lt;br /&gt;
&lt;br /&gt;
If you wish to only utilise the new default behaviour, then there is no need for this patch, if you wish to preserve the old behaviour to maximise DNS query performance, then this patch will alow you to choose between the two behaviours, as well as keeping serve expired disabled.&lt;br /&gt;
&lt;br /&gt;
This patch wont allow you to configure a custom timeout, to do that, select the new behaviour which wont set the variable, just relying on the default, and then can set it in the custom box on advanced settings as an override, I deliberatly designed the patch this way in case there is a desire to set a custom timeout value. &lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the Patch Contents box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Unbound new serve expired toggle' in the Description box.&lt;br /&gt;
&lt;br /&gt;
Set Path Strip Count to '0'.&lt;br /&gt;
&lt;br /&gt;
Base Directory to '/'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /etc/inc/unbound.inc        2025-09-21 19:05:38.753690000 +0100&lt;br /&gt;
+++ /etc/inc/unbound.inc   2025-09-21 20:35:22.638223000 +0100&lt;br /&gt;
@@ -376,7 +376,14 @@&lt;br /&gt;
        $harden_dnssec_stripped = isset($unboundcfg['dnssecstripped']) ? &amp;quot;yes&amp;quot; : &amp;quot;no&amp;quot;;&lt;br /&gt;
        $prefetch = isset($unboundcfg['prefetch']) ? &amp;quot;yes&amp;quot; : &amp;quot;no&amp;quot;;&lt;br /&gt;
        $prefetch_key = isset($unboundcfg['prefetchkey']) ? &amp;quot;yes&amp;quot; : &amp;quot;no&amp;quot;;&lt;br /&gt;
-       $dns_record_cache = isset($unboundcfg['dnsrecordcache']) ? &amp;quot;yes&amp;quot; : &amp;quot;no&amp;quot;;&lt;br /&gt;
+        if (is_null($unboundcfg['dnsrecordcache']) || ($unboundcfg['dnsrecordcache'] == '0')) {&lt;br /&gt;
+                $dns_record_cache = &amp;quot;no&amp;quot;;&lt;br /&gt;
+        } else {&lt;br /&gt;
+                $dns_record_cache = &amp;quot;yes&amp;quot;;&lt;br /&gt;
+        }&lt;br /&gt;
+        if ($unboundcfg['dnsrecordcache'] == '1') {&lt;br /&gt;
+                $dns_record_cache_ttl = &amp;quot;serve-expired-client-timeout: 0&amp;quot;;&lt;br /&gt;
+        }&lt;br /&gt;
        $sock_queue_timeout = empty($unboundcfg['sock_queue_timeout']) ? '0' : $unboundcfg['sock_queue_timeout'];&lt;br /&gt;
        $aggressivensec = isset($unboundcfg['aggressivensec']) ? &amp;quot;yes&amp;quot; : &amp;quot;no&amp;quot;;&lt;br /&gt;
        $outgoing_num_tcp = isset($unboundcfg['outgoing_num_tcp']) ? $unboundcfg['outgoing_num_tcp'] : &amp;quot;10&amp;quot;;&lt;br /&gt;
@@ -531,6 +538,7 @@&lt;br /&gt;
 prefetch-key: {$prefetch_key}&lt;br /&gt;
 use-caps-for-id: {$use_caps}&lt;br /&gt;
 serve-expired: {$dns_record_cache}&lt;br /&gt;
+{$dns_record_cache_ttl}&lt;br /&gt;
 sock-queue-timeout: {$sock_queue_timeout}&lt;br /&gt;
 aggressive-nsec: {$aggressivensec}&lt;br /&gt;
&lt;br /&gt;
--- /usr/local/www/services_unbound_advanced.php       2025-09-21 19:05:38.754169000 +0100&lt;br /&gt;
+++ /usr/local/www/services_unbound_advanced.php 2025-09-21 20:43:39.841217000 +0100&lt;br /&gt;
@@ -49,7 +49,7 @@&lt;br /&gt;
 $pconfig['prefetch'] = config_path_enabled('unbound', 'prefetch');&lt;br /&gt;
 $pconfig['prefetchkey'] = config_path_enabled('unbound', 'prefetchkey');&lt;br /&gt;
 $pconfig['dnssecstripped'] = config_path_enabled('unbound', 'dnssecstripped');&lt;br /&gt;
-$pconfig['dnsrecordcache'] = config_path_enabled('unbound', 'dnsrecordcache');&lt;br /&gt;
+$pconfig['dnsrecordcache'] = config_get_path('unbound/dnsrecordcache', 0);&lt;br /&gt;
 $pconfig['sock_queue_timeout'] = config_get_path('unbound/sock_queue_timeout', 0);&lt;br /&gt;
 $pconfig['aggressivensec'] = config_path_enabled('unbound', 'aggressivensec');&lt;br /&gt;
 &lt;br /&gt;
@@ -173,11 +173,7 @@&lt;br /&gt;
                        } else {&lt;br /&gt;
                                config_del_path('unbound/dnssecstripped');&lt;br /&gt;
                        }&lt;br /&gt;
-                       if (isset($_POST['dnsrecordcache'])) {&lt;br /&gt;
-                               config_set_path('unbound/dnsrecordcache', true);&lt;br /&gt;
-                       } else {&lt;br /&gt;
-                               config_del_path('unbound/dnsrecordcache');&lt;br /&gt;
-                       }&lt;br /&gt;
+                       config_set_path('unbound/dnsrecordcache', $_POST['dnsrecordcache']);&lt;br /&gt;
                        config_set_path('unbound/sock_queue_timeout', $_POST['sock_queue_timeout']);&lt;br /&gt;
                        if (isset($_POST['aggressivensec'])) {&lt;br /&gt;
                                config_set_path('unbound/aggressivensec', true);&lt;br /&gt;
@@ -315,12 +311,12 @@&lt;br /&gt;
        $pconfig['dnssecstripped']&lt;br /&gt;
 ))-&amp;gt;setHelp('If such data is absent, the zone becomes bogus. If Disabled and no DNSSEC data is received, then the zone is made insecure. Requires DNSSEC enabled. ');&lt;br /&gt;
 &lt;br /&gt;
-$section-&amp;gt;addInput(new Form_Checkbox(&lt;br /&gt;
+$section-&amp;gt;addInput(new Form_Select(&lt;br /&gt;
        'dnsrecordcache',&lt;br /&gt;
        'Serve Expired',&lt;br /&gt;
-       'Serve cache records even with TTL of 0',&lt;br /&gt;
-       $pconfig['dnsrecordcache']&lt;br /&gt;
-))-&amp;gt;setHelp('When enabled, allows unbound to serve one query even with a TTL of 0, if TTL is 0 then new record will be requested in the background when the cache is served to ensure cache is updated without latency on service of the DNS request.');&lt;br /&gt;
+       $pconfig['dnsrecordcache'],&lt;br /&gt;
+       array_combine(array(&amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;), array(&amp;quot;Off: Unbound Default&amp;quot;, &amp;quot;Serve Expired/Stale - Old behaviour&amp;quot;, &amp;quot;Serve Stale - RFC8767&amp;quot;))&lt;br /&gt;
+))-&amp;gt;setHelp('When enabled, allows unbound cache to serve one query even with a TTL of 0, if TTL is 0 then new record will be requested in the background when the cache is served to ensure cache is updated without latency on service of the DNS request.');&lt;br /&gt;
 &lt;br /&gt;
 $section-&amp;gt;addInput(new Form_Input(&lt;br /&gt;
         'sock_queue_timeout',&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Pfsense Patches]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=904</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=904"/>
				<updated>2025-09-21T21:25:10Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: /* pfSense patches contributed by the kitz community */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.8.1.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch281|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch270|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch281|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch281|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch270|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
*[[BetterTemps|More Accurate Temperatures]]&lt;br /&gt;
*[[GranularServeExpired|Improved DNS Resolver Options]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
[[Click here for pfSense 2.6.0 patches]] | [[Click here for pfSense 2.7.0 patches]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfaddnewpatch.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pfsense Patches]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=GranularServeExpired&amp;diff=903</id>
		<title>GranularServeExpired</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=GranularServeExpired&amp;diff=903"/>
				<updated>2025-09-21T21:23:59Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Created page with &amp;quot;Since pfSense 2.8.1. The unbound DNS resolver that is distributed in the firewall has a new default behaviour for the serve expired feature, this is because a new RFC 8767 was...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since pfSense 2.8.1. The unbound DNS resolver that is distributed in the firewall has a new default behaviour for the serve expired feature, this is because a new RFC 8767 was drawn up which now has reccomended practice of using the feature for serving stale queries only, so the default value now makes the feature only serve expired queries from the cache if a upstream DNS lookup fails to respond within 1800ms.&lt;br /&gt;
&lt;br /&gt;
If you wish to only utilise the new default behaviour, then there is no need for this patch, if you wish to preserve the old behaviour to maximise DNS query performance, then this patch will alow you to choose between the two behaviours, as well as keeping serve expired disabled.&lt;br /&gt;
&lt;br /&gt;
This patch wont allow you to configure a custom timeout, to do that, select the new behaviour which wont set the variable, just relying on the default, and then can set it in the custom box on advanced settings as an override, I deliberatly designed the patch this way in case there is a desire to set a custom timeout value. &lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the Patch Contents box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Unbound new serve expired toggle' in the Description box.&lt;br /&gt;
&lt;br /&gt;
Set Path Strip Count to '0'.&lt;br /&gt;
&lt;br /&gt;
Base Directory to '/'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /etc/inc/unbound.inc        2025-09-21 19:05:38.753690000 +0100&lt;br /&gt;
+++ /etc/inc/unbound.inc   2025-09-21 20:35:22.638223000 +0100&lt;br /&gt;
@@ -376,7 +376,14 @@&lt;br /&gt;
        $harden_dnssec_stripped = isset($unboundcfg['dnssecstripped']) ? &amp;quot;yes&amp;quot; : &amp;quot;no&amp;quot;;&lt;br /&gt;
        $prefetch = isset($unboundcfg['prefetch']) ? &amp;quot;yes&amp;quot; : &amp;quot;no&amp;quot;;&lt;br /&gt;
        $prefetch_key = isset($unboundcfg['prefetchkey']) ? &amp;quot;yes&amp;quot; : &amp;quot;no&amp;quot;;&lt;br /&gt;
-       $dns_record_cache = isset($unboundcfg['dnsrecordcache']) ? &amp;quot;yes&amp;quot; : &amp;quot;no&amp;quot;;&lt;br /&gt;
+        if (is_null($unboundcfg['dnsrecordcache']) || ($unboundcfg['dnsrecordcache'] == '0')) {&lt;br /&gt;
+                $dns_record_cache = &amp;quot;no&amp;quot;;&lt;br /&gt;
+        } else {&lt;br /&gt;
+                $dns_record_cache = &amp;quot;yes&amp;quot;;&lt;br /&gt;
+        }&lt;br /&gt;
+        if ($unboundcfg['dnsrecordcache'] == '1') {&lt;br /&gt;
+                $dns_record_cache_ttl = &amp;quot;serve-expired-client-timeout: 0&amp;quot;;&lt;br /&gt;
+        }&lt;br /&gt;
        $sock_queue_timeout = empty($unboundcfg['sock_queue_timeout']) ? '0' : $unboundcfg['sock_queue_timeout'];&lt;br /&gt;
        $aggressivensec = isset($unboundcfg['aggressivensec']) ? &amp;quot;yes&amp;quot; : &amp;quot;no&amp;quot;;&lt;br /&gt;
        $outgoing_num_tcp = isset($unboundcfg['outgoing_num_tcp']) ? $unboundcfg['outgoing_num_tcp'] : &amp;quot;10&amp;quot;;&lt;br /&gt;
@@ -531,6 +538,7 @@&lt;br /&gt;
 prefetch-key: {$prefetch_key}&lt;br /&gt;
 use-caps-for-id: {$use_caps}&lt;br /&gt;
 serve-expired: {$dns_record_cache}&lt;br /&gt;
+{$dns_record_cache_ttl}&lt;br /&gt;
 sock-queue-timeout: {$sock_queue_timeout}&lt;br /&gt;
 aggressive-nsec: {$aggressivensec}&lt;br /&gt;
&lt;br /&gt;
--- /usr/local/www/services_unbound_advanced.php       2025-09-21 19:05:38.754169000 +0100&lt;br /&gt;
+++ /usr/local/www/services_unbound_advanced.php 2025-09-21 20:43:39.841217000 +0100&lt;br /&gt;
@@ -49,7 +49,7 @@&lt;br /&gt;
 $pconfig['prefetch'] = config_path_enabled('unbound', 'prefetch');&lt;br /&gt;
 $pconfig['prefetchkey'] = config_path_enabled('unbound', 'prefetchkey');&lt;br /&gt;
 $pconfig['dnssecstripped'] = config_path_enabled('unbound', 'dnssecstripped');&lt;br /&gt;
-$pconfig['dnsrecordcache'] = config_path_enabled('unbound', 'dnsrecordcache');&lt;br /&gt;
+$pconfig['dnsrecordcache'] = config_get_path('unbound/dnsrecordcache', 0);&lt;br /&gt;
 $pconfig['sock_queue_timeout'] = config_get_path('unbound/sock_queue_timeout', 0);&lt;br /&gt;
 $pconfig['aggressivensec'] = config_path_enabled('unbound', 'aggressivensec');&lt;br /&gt;
 &lt;br /&gt;
@@ -173,11 +173,7 @@&lt;br /&gt;
                        } else {&lt;br /&gt;
                                config_del_path('unbound/dnssecstripped');&lt;br /&gt;
                        }&lt;br /&gt;
-                       if (isset($_POST['dnsrecordcache'])) {&lt;br /&gt;
-                               config_set_path('unbound/dnsrecordcache', true);&lt;br /&gt;
-                       } else {&lt;br /&gt;
-                               config_del_path('unbound/dnsrecordcache');&lt;br /&gt;
-                       }&lt;br /&gt;
+                       config_set_path('unbound/dnsrecordcache', $_POST['dnsrecordcache']);&lt;br /&gt;
                        config_set_path('unbound/sock_queue_timeout', $_POST['sock_queue_timeout']);&lt;br /&gt;
                        if (isset($_POST['aggressivensec'])) {&lt;br /&gt;
                                config_set_path('unbound/aggressivensec', true);&lt;br /&gt;
@@ -315,12 +311,12 @@&lt;br /&gt;
        $pconfig['dnssecstripped']&lt;br /&gt;
 ))-&amp;gt;setHelp('If such data is absent, the zone becomes bogus. If Disabled and no DNSSEC data is received, then the zone is made insecure. Requires DNSSEC enabled. ');&lt;br /&gt;
 &lt;br /&gt;
-$section-&amp;gt;addInput(new Form_Checkbox(&lt;br /&gt;
+$section-&amp;gt;addInput(new Form_Select(&lt;br /&gt;
        'dnsrecordcache',&lt;br /&gt;
        'Serve Expired',&lt;br /&gt;
-       'Serve cache records even with TTL of 0',&lt;br /&gt;
-       $pconfig['dnsrecordcache']&lt;br /&gt;
-))-&amp;gt;setHelp('When enabled, allows unbound to serve one query even with a TTL of 0, if TTL is 0 then new record will be requested in the background when the cache is served to ensure cache is updated without latency on service of the DNS request.');&lt;br /&gt;
+       $pconfig['dnsrecordcache'],&lt;br /&gt;
+       array_combine(array(&amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;), array(&amp;quot;Off: Unbound Default&amp;quot;, &amp;quot;Serve Expired/Stale - Old behaviour&amp;quot;, &amp;quot;Serve Stale - RFC8767&amp;quot;))&lt;br /&gt;
+))-&amp;gt;setHelp('When enabled, allows unbound cache to serve one query even with a TTL of 0, if TTL is 0 then new record will be requested in the background when the cache is served to ensure cache is updated without latency on service of the DNS request.');&lt;br /&gt;
 &lt;br /&gt;
 $section-&amp;gt;addInput(new Form_Input(&lt;br /&gt;
         'sock_queue_timeout',&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Servicecyclev6_patch281&amp;diff=902</id>
		<title>Servicecyclev6 patch281</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Servicecyclev6_patch281&amp;diff=902"/>
				<updated>2025-09-21T21:06:35Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Created page with &amp;quot;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.  This can caus...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.&lt;br /&gt;
&lt;br /&gt;
This can cause problems e.g. if your pfSense is hosting LAN services such as a NTP server or UPS daemon.  Consider a scenario e.g. if you have a power cut, your WAN goes offline, pfSense then puts services into a cycle loop, which in turn drops connectivity to the UPS daemon so client machines are unaware of power status and battery level which might prevent automated safe shutdown/hibernation.&lt;br /&gt;
&lt;br /&gt;
This patch changes the behaviour so services will only get cycled if a external non OpenVPN interface comes back online with a different IP address, if its a cycle keeping the existing IP, then it will not cycle all services.&lt;br /&gt;
&lt;br /&gt;
This is the IPv6 version of the patch, there is also a IPv4 version.&lt;br /&gt;
&lt;br /&gt;
This patch also reduces log noise from dhcp6 client renewals on the WAN connection that was added in recent builds of pfSense.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Better diagnostics limiters layout' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /etc/rc.newwanipv6  2022-01-31 19:53:42.000000000 +0000&lt;br /&gt;
+++ /etc/rc.newwanipv6     2023-04-18 03:15:33.061352000 +0100&lt;br /&gt;
@@ -62,7 +62,5 @@&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 if (!empty($reason) &amp;amp;&amp;amp; ($reason != 'RENEW')) {&lt;br /&gt;
         log_error(&amp;quot;rc.newwanipv6: Info: starting on {$argument} due to {$reason}.&amp;quot;);&lt;br /&gt;
-} else {&lt;br /&gt;
-        log_error(&amp;quot;rc.newwanipv6: Info: starting on {$argument}.&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
@@ -255,11 +253,6 @@&lt;br /&gt;
 /* reconfigure IPsec tunnels */&lt;br /&gt;
 ipsec_force_reload($interface, 'inet6');&lt;br /&gt;
 &lt;br /&gt;
-/* start OpenVPN server &amp;amp; clients */&lt;br /&gt;
-if (substr($interface_real, 0, 4) != &amp;quot;ovpn&amp;quot;) {&lt;br /&gt;
-       openvpn_resync_all($interface, 'inet6');&lt;br /&gt;
-}&lt;br /&gt;
-&lt;br /&gt;
 /* reconfigure GRE/GIF tunnels */&lt;br /&gt;
 $gre = link_interface_to_tunnelif($interface, 'gre', 'inet6');&lt;br /&gt;
 array_walk($gre, 'interface_gre_configure');&lt;br /&gt;
@@ -286,7 +279,6 @@&lt;br /&gt;
        /* reload graphing functions */&lt;br /&gt;
        enable_rrd_graphing();&lt;br /&gt;
 &lt;br /&gt;
-       restart_packages();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 unlink_if_exists(&amp;quot;{$g['tmp_path']}/{$interface}_upstart6&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Pfsense Patches]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Servicecyclev4_patch281&amp;diff=901</id>
		<title>Servicecyclev4 patch281</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Servicecyclev4_patch281&amp;diff=901"/>
				<updated>2025-09-21T21:03:11Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Created page with &amp;quot;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.  This can caus...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.&lt;br /&gt;
&lt;br /&gt;
This can cause problems e.g. if your pfSense is hosting LAN services such as a NTP server or UPS daemon.  Consider a scenario e.g. if you have a power cut, your WAN goes offline, pfSense then puts services into a cycle loop, which in turn drops connectivity to the UPS daemon so client machines are unaware of power status and battery level which might prevent automated safe shutdown/hibernation.&lt;br /&gt;
&lt;br /&gt;
This patch changes the behaviour so services will only get cycled if a external non OpenVPN interface comes back online with a different IP address, if its a cycle keeping the existing IP, then it will not cycle all services.&lt;br /&gt;
&lt;br /&gt;
This is the IPv4 version of the patch, there is also a IPv6 version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Better diagnostics limiters layout' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /etc/rc.newwanip    2023-06-28 04:51:31.000000000 +0100&lt;br /&gt;
+++ /etc/rc.newwanip   2023-07-22 00:12:33.150672000 +0100&lt;br /&gt;
@@ -41,9 +41,13 @@&lt;br /&gt;
 function restart_packages() {&lt;br /&gt;
        global $oldip, $curwanip, $g;&lt;br /&gt;
 &lt;br /&gt;
-       /* restart packages */&lt;br /&gt;
-       log_error(&amp;quot;{$g['product_label']} package system has detected an IP change or dynamic WAN reconnection - $oldip -&amp;gt;  $curwanip - Restarting packages.&amp;quot;);&lt;br /&gt;
-       send_event(&amp;quot;service reload packages&amp;quot;);&lt;br /&gt;
+       if (substr($interface_real, 0, 4) != &amp;quot;ovpn&amp;quot;) {&lt;br /&gt;
+               if ($curwanip != $oldip) {&lt;br /&gt;
+                       /* restart packages */&lt;br /&gt;
+                       log_error(&amp;quot;{$g['product_label']} package system has detected an IP change or dynamic WAN reconnection - $oldip -&amp;gt;  $curwanip - Restarting packages.&amp;quot;);&lt;br /&gt;
+                       send_event(&amp;quot;service reload packages&amp;quot;);&lt;br /&gt;
+               }&lt;br /&gt;
+       }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /* Interface IP address has changed */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Pfsense Patches]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=LimitersFW_patch281&amp;diff=900</id>
		<title>LimitersFW patch281</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=LimitersFW_patch281&amp;diff=900"/>
				<updated>2025-09-21T20:54:38Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Created page with &amp;quot;By default the firewall rules screen will display the configured queue (ALTQ) in the Queue column, if you are using limiters instead (dummynet) which is common to use fq_codel...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default the firewall rules screen will display the configured queue (ALTQ) in the Queue column, if you are using limiters instead (dummynet) which is common to use fq_codel, then this patch can be used to display the configured limiter in that column instead of the queue, new column name Limiter.  In addition to free up space, it also removes the schedule column which is unlikely to be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Remove schedule and add limiters Firewall UI' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- firewall_rules.php  2022-09-28 20:57:55.827968000 +0100&lt;br /&gt;
+++ firewall_rules.php    2022-09-28 20:55:22.694754000 +0100&lt;br /&gt;
@@ -499,8 +499,7 @@&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext('Destination')?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext('Port')?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext('Gateway')?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
-                                               &amp;lt;th&amp;gt;&amp;lt;?=gettext('Queue')?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
-                                               &amp;lt;th&amp;gt;&amp;lt;?=gettext('Schedule')?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
+                                               &amp;lt;th&amp;gt;&amp;lt;?=gettext('Limiter')?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext('Description')?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext('Actions')?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                        &amp;lt;/tr&amp;gt;&lt;br /&gt;
@@ -992,24 +992,18 @@&lt;br /&gt;
                                                &amp;lt;/td&amp;gt;&lt;br /&gt;
                                                &amp;lt;td&amp;gt;&lt;br /&gt;
                                                        &amp;lt;?php&lt;br /&gt;
-                                                               if (isset($filterent['ackqueue']) &amp;amp;&amp;amp; isset($filterent['defaultqueue'])) {&lt;br /&gt;
-                                                                       $desc = str_replace('_', ' ', $filterent['ackqueue']);&lt;br /&gt;
-                                                                       echo &amp;quot;&amp;lt;a href=\&amp;quot;firewall_shaper_queues.php?queue={$filterent['ackqueue']}&amp;amp;amp;action=show\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
-                                                                       $desc = str_replace('_', '_&amp;lt;wbr&amp;gt;', $filterent['defaultqueue']);&lt;br /&gt;
-                                                                       echo &amp;quot;/&amp;lt;a href=\&amp;quot;firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&amp;amp;amp;action=show\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
-                                                               } else if (isset($filterent['defaultqueue'])) {&lt;br /&gt;
-                                                                       $desc = str_replace('_', '_&amp;lt;wbr&amp;gt;', $filterent['defaultqueue']);&lt;br /&gt;
-                                                                       echo &amp;quot;&amp;lt;a href=\&amp;quot;firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&amp;amp;amp;action=show\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
+                                                               if (isset($filterent['pdnpipe']) &amp;amp;&amp;amp; isset($filterent['dnpipe'])) {&lt;br /&gt;
+                                                                       $desc = str_replace('_', ' ', $filterent['pdnpipe']);&lt;br /&gt;
+                                                                       echo &amp;quot;&amp;lt;a href=\&amp;quot;firewall_shaper_vinterface.php\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
+                                                                       $desc = str_replace('_', '_&amp;lt;wbr&amp;gt;', $filterent['dnpipe']);&lt;br /&gt;
+                                                                       echo &amp;quot;/&amp;lt;a href=\&amp;quot;firewall_shaper_vinterface.php\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
+                                                               } else if (isset($filterent['dnpipe'])) {&lt;br /&gt;
+                                                                       $desc = str_replace('_', '_&amp;lt;wbr&amp;gt;', $filterent['dnpipe']);&lt;br /&gt;
+                                                                       echo &amp;quot;&amp;lt;a href=\&amp;quot;firewall_shaper_vinterface.php\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
                                                                } else {&lt;br /&gt;
                                                                        echo gettext(&amp;quot;none&amp;quot;);&lt;br /&gt;
                                                                }&lt;br /&gt;
                                                        ?&amp;gt;&lt;br /&gt;
-                                               &amp;lt;/td&amp;gt;&lt;br /&gt;
-                                               &amp;lt;td&amp;gt;&lt;br /&gt;
-                                                       &amp;lt;?php if ($printicon) { ?&amp;gt;&lt;br /&gt;
-                                                               &amp;lt;i class=&amp;quot;&amp;lt;?=$image?&amp;gt; &amp;lt;?=$dispcolor?&amp;gt;&amp;quot; title=&amp;quot;&amp;lt;?=$alttext;?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
-                                                       &amp;lt;?php } ?&amp;gt;&lt;br /&gt;
-                                                       &amp;lt;?=$schedule_span_begin;?&amp;gt;&amp;lt;?=str_replace('_', '_&amp;lt;wbr&amp;gt;', htmlspecialchars($filterent['sched']));?&amp;gt;&amp;amp;nbsp;&amp;lt;?=$schedule_span_end;?&amp;gt;&lt;br /&gt;
                                                &amp;lt;/td&amp;gt;&lt;br /&gt;
                                                &amp;lt;td&amp;gt;&lt;br /&gt;
                                                        &amp;lt;?=htmlspecialchars($filterent['descr']);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Pfsense Patches]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Click_here_for_pfSense_2.7.0_patches&amp;diff=899</id>
		<title>Click here for pfSense 2.7.0 patches</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Click_here_for_pfSense_2.7.0_patches&amp;diff=899"/>
				<updated>2025-09-21T20:50:12Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: New pfSense 2.7.0 patches page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following patches have been created to work on pfSense version 2.7.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch270|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch270|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch270|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
*[[BetterTemps|More Accurate Temperatures]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
[[Category:Pfsense Patches]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=898</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=898"/>
				<updated>2025-09-21T20:49:43Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: add link to pfSense 2.7.0 patches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.7.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch270|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch270|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch270|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
*[[BetterTemps|More Accurate Temperatures]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
[[Click here for pfSense 2.6.0 patches]] | [[Click here for pfSense 2.7.0 patches]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfaddnewpatch.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pfsense Patches]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=BetterTemps&amp;diff=874</id>
		<title>BetterTemps</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=BetterTemps&amp;diff=874"/>
				<updated>2024-06-16T14:25:43Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: adjust text format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When the temperatures are polled to plot the temperature graph in 'status monitoring' on hardware that utilises hardware p-states (speed shift) the clock speeds are so sensitive that this can add a significant amount of temperature for a brief moment during the polling period, which will cause elevated temperatures to be recorded on the graph that don't accurately represent the average temperature of the unit.  This patch will make it fetch a cached value from a previous poll instead, the actual poll will need to be added to the cron.&lt;br /&gt;
&lt;br /&gt;
First check if you see the 'Cron' item on the 'Services' menu.  If it is missing then go to the 'System' menu and select 'Package Manager', from there select 'Available Packages' and then install the 'Cron' Package.&lt;br /&gt;
&lt;br /&gt;
Go to the 'Services' menu, select 'Cron', then click on the green '+Add' button.&amp;lt;br&amp;gt; &lt;br /&gt;
For the top 5 boxes which are Minute, Hour, Day of the month, Month of the Year, and Day of the week, populate the box with the asterisk symbol '*'.&amp;lt;br&amp;gt;&lt;br /&gt;
For the user box enter 'root'.&amp;lt;br&amp;gt;&lt;br /&gt;
For the command box add the following.  All pasted in as one line.  '''''/sbin/sysctl -q hw.acpi.thermal dev.cpu dev.t5nex dev.armada_thermal dev.cordbuc dev.pchtherm | /usr/bin/grep temperature &amp;gt; /tmp/rrd.temps'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
Finally click the blue 'Save' Button&lt;br /&gt;
&lt;br /&gt;
Next add and apply the the patch as below.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'better cpu temp monitoring, requires sysctl temp cron' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/etc/inc/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- rrd.inc  2024-06-13 10:40:51.931237000 +0100&lt;br /&gt;
+++ rrd.inc     2024-06-13 11:03:17.066678000 +0100&lt;br /&gt;
@@ -744,7 +744,7 @@&lt;br /&gt;
                $unknown = &amp;quot;&amp;quot;;&lt;br /&gt;
                $rrdupdateds = &amp;quot;&amp;quot;;&lt;br /&gt;
                $rrdsensors = &amp;quot;&amp;quot;;&lt;br /&gt;
-               $_gb = exec(&amp;quot;/sbin/sysctl -q hw.acpi.thermal dev.cpu dev.t5nex dev.armada_thermal dev.cordbuc dev.pchtherm | /usr/bin/grep temperature | /usr/bin/cut -d':' -f1&amp;quot;, $sensors_array);&lt;br /&gt;
+               $_gb = exec(&amp;quot;cat /tmp/rrd.temps | /usr/bin/cut -d':' -f1&amp;quot;, $sensors_array);&lt;br /&gt;
 &lt;br /&gt;
                if (!empty($sensors_array)) {&lt;br /&gt;
                        foreach ($sensors_array as $sensor) {&lt;br /&gt;
@@ -753,7 +753,7 @@&lt;br /&gt;
                                $rrdcreateds .= &amp;quot;DS:$sensor_name:GAUGE:$sensorsvalid:0:100 &amp;quot;;&lt;br /&gt;
                                $unknown .= &amp;quot;:U&amp;quot;;&lt;br /&gt;
                                $rrddsname = strtoupper($sensor_name);&lt;br /&gt;
-                               $rrdupdateds .= &amp;quot;$rrddsname=`$sysctl -qn $sensor | $sed 's/C//'`\n&amp;quot;;&lt;br /&gt;
+                               $rrdupdateds .= &amp;quot;$rrddsname=`/usr/bin/grep $sensor /tmp/rrd.temps | /usr/bin/cut -d' ' -f2 | $sed 's/C//'`\n&amp;quot;;&lt;br /&gt;
                                $rrdsensors .= &amp;quot;:\${$rrddsname}&amp;quot;;&lt;br /&gt;
                        }&lt;br /&gt;
                        if (!file_exists(&amp;quot;$rrddbpath$ifname$sensors&amp;quot;)) {&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Pfsense Patches]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=BetterTemps&amp;diff=873</id>
		<title>BetterTemps</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=BetterTemps&amp;diff=873"/>
				<updated>2024-06-16T14:21:50Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: better temps patch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When the temperatures are polled to plot the temperature graph in 'status monitoring' on hardware that utilises hardware p-states (speed shift) the clock speeds are so sensitive that this can add a significant amount of temperature for a brief moment during the polling period, which will cause elevated temperatures to be recorded on the graph that don't accurately represent the average temperature of the unit.  This patch will make it fetch a cached value from a previous poll instead, the actual poll will need to be added to the cron.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First check if you see the 'Cron' item on the 'Services' menu.  If it is missing then go to the 'System' menu and select 'Package Manager', from there select 'Available Packages' and then install the 'Cron' Package.&lt;br /&gt;
&lt;br /&gt;
Go to the 'Services' menu, select 'Cron', then click on the green '+Add' button.&lt;br /&gt;
For the top 5 boxes which are Minute, Hour, Day of the month, Month of the Year, and Day of the week, populate the box with the asterisk symbol '*'.&lt;br /&gt;
For the user box enter 'root'&lt;br /&gt;
For the command box add the following.  All pasted in as one line.  ''/sbin/sysctl -q hw.acpi.thermal dev.cpu dev.t5nex dev.armada_thermal dev.cordbuc dev.pchtherm | /usr/bin/grep temperature &amp;gt; /tmp/rrd.temps''&lt;br /&gt;
Finally click the blue 'Save' Button&lt;br /&gt;
&lt;br /&gt;
Next add and apply the the patch as below.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'better cpu temp monitoring, requires sysctl temp cron' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/etc/inc/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- rrd.inc  2024-06-13 10:40:51.931237000 +0100&lt;br /&gt;
+++ rrd.inc     2024-06-13 11:03:17.066678000 +0100&lt;br /&gt;
@@ -744,7 +744,7 @@&lt;br /&gt;
                $unknown = &amp;quot;&amp;quot;;&lt;br /&gt;
                $rrdupdateds = &amp;quot;&amp;quot;;&lt;br /&gt;
                $rrdsensors = &amp;quot;&amp;quot;;&lt;br /&gt;
-               $_gb = exec(&amp;quot;/sbin/sysctl -q hw.acpi.thermal dev.cpu dev.t5nex dev.armada_thermal dev.cordbuc dev.pchtherm | /usr/bin/grep temperature | /usr/bin/cut -d':' -f1&amp;quot;, $sensors_array);&lt;br /&gt;
+               $_gb = exec(&amp;quot;cat /tmp/rrd.temps | /usr/bin/cut -d':' -f1&amp;quot;, $sensors_array);&lt;br /&gt;
 &lt;br /&gt;
                if (!empty($sensors_array)) {&lt;br /&gt;
                        foreach ($sensors_array as $sensor) {&lt;br /&gt;
@@ -753,7 +753,7 @@&lt;br /&gt;
                                $rrdcreateds .= &amp;quot;DS:$sensor_name:GAUGE:$sensorsvalid:0:100 &amp;quot;;&lt;br /&gt;
                                $unknown .= &amp;quot;:U&amp;quot;;&lt;br /&gt;
                                $rrddsname = strtoupper($sensor_name);&lt;br /&gt;
-                               $rrdupdateds .= &amp;quot;$rrddsname=`$sysctl -qn $sensor | $sed 's/C//'`\n&amp;quot;;&lt;br /&gt;
+                               $rrdupdateds .= &amp;quot;$rrddsname=`/usr/bin/grep $sensor /tmp/rrd.temps | /usr/bin/cut -d' ' -f2 | $sed 's/C//'`\n&amp;quot;;&lt;br /&gt;
                                $rrdsensors .= &amp;quot;:\${$rrddsname}&amp;quot;;&lt;br /&gt;
                        }&lt;br /&gt;
                        if (!file_exists(&amp;quot;$rrddbpath$ifname$sensors&amp;quot;)) {&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Pfsense Patches]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=872</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=872"/>
				<updated>2024-06-16T14:12:25Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: add temperature patch link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.7.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch270|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch270|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch270|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
*[[BetterTemps|More Accurate Temperatures]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
[[Click here for pfSense 2.6.0 patches]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfaddnewpatch.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pfsense Patches]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Servicecyclev4_patch&amp;diff=774</id>
		<title>Servicecyclev4 patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Servicecyclev4_patch&amp;diff=774"/>
				<updated>2023-07-22T14:30:44Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: fix mistake&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.&lt;br /&gt;
&lt;br /&gt;
This can cause problems e.g. if your pfSense is hosting LAN services such as a NTP server or UPS daemon.  Consider a scenario e.g. if you have a power cut, your WAN goes offline, pfSense then puts services into a cycle loop, which in turn drops connectivity to the UPS daemon so client machines are unaware of power status and battery level which might prevent automated safe shutdown/hibernation.&lt;br /&gt;
&lt;br /&gt;
This patch changes the behaviour so services will only get cycled if a interface comes back online with a different IP address, if its a cycle keeping the existing IP, then it will not cycle all services, services such as OpenVPN should still behave the same as before.&lt;br /&gt;
&lt;br /&gt;
This is the IPv4 version of the patch, there is also a IPv6 version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Better diagnostics limiters layout' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /etc/rc.newwanip    2023-04-18 03:05:04.404321000 +0100&lt;br /&gt;
+++ /etc/rc.newwanip       2023-04-18 03:05:50.740612000 +0100&lt;br /&gt;
@@ -233,10 +233,12 @@&lt;br /&gt;
                if (isset($config['system']['ip_change_kill_states'])) {&lt;br /&gt;
                        log_error(&amp;quot;IP Address has changed, killing all states (ip_change_kill_states is set).&amp;quot;);&lt;br /&gt;
                        pfSense_kill_states(utf8_encode($oldip));&lt;br /&gt;
+                       restart_packages();&lt;br /&gt;
                        filter_flush_state_table();&lt;br /&gt;
                } else {&lt;br /&gt;
                        log_error(&amp;quot;IP Address has changed, killing states on former IP Address $oldip.&amp;quot;);&lt;br /&gt;
                        pfSense_kill_states(utf8_encode($oldip));&lt;br /&gt;
+                       restart_packages();&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
@@ -270,7 +272,7 @@&lt;br /&gt;
        /* restart snmp */&lt;br /&gt;
        services_snmpd_configure();&lt;br /&gt;
 &lt;br /&gt;
-       restart_packages();&lt;br /&gt;
+       // restart_packages();&lt;br /&gt;
 } else {&lt;br /&gt;
        /* signal filter reload */&lt;br /&gt;
        filter_configure();&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Servicecyclev6_patch&amp;diff=773</id>
		<title>Servicecyclev6 patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Servicecyclev6_patch&amp;diff=773"/>
				<updated>2023-07-22T14:29:58Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: fix mistake&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.&lt;br /&gt;
&lt;br /&gt;
This can cause problems e.g. if your pfSense is hosting LAN services such as a NTP server or UPS daemon.  Consider a scenario e.g. if you have a power cut, your WAN goes offline, pfSense then puts services into a cycle loop, which in turn drops connectivity to the UPS daemon so client machines are unaware of power status and battery level which might prevent automated safe shutdown/hibernation.&lt;br /&gt;
&lt;br /&gt;
This patch changes the behaviour so services will only get cycled if a interface comes back online with a different IP address, if its a cycle keeping the existing IP, then it will not cycle all services, services such as OpenVPN should still behave the same as before.&lt;br /&gt;
&lt;br /&gt;
This is the IPv6 version of the patch, there is also a IPv4 version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Better diagnostics limiters layout' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /etc/rc.newwanipv6  2022-01-31 19:53:42.000000000 +0000&lt;br /&gt;
+++ /etc/rc.newwanipv6     2023-04-18 03:15:33.061352000 +0100&lt;br /&gt;
@@ -161,6 +161,7 @@&lt;br /&gt;
                }&lt;br /&gt;
        } elseif (does_interface_exist($interface_real) &amp;amp;&amp;amp; !empty($oldipv6)) {&lt;br /&gt;
                mwexec(&amp;quot;/sbin/ifconfig {$interface_real} inet6 {$oldipv6} delete&amp;quot;);&lt;br /&gt;
+               restart_packages();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        file_put_contents(&amp;quot;{$g['vardb_path']}/{$interface}_cacheipv6&amp;quot;, $curwanipv6);&lt;br /&gt;
@@ -211,7 +212,7 @@&lt;br /&gt;
        /* reload graphing functions */&lt;br /&gt;
        enable_rrd_graphing();&lt;br /&gt;
 &lt;br /&gt;
-       restart_packages();&lt;br /&gt;
+       // restart_packages();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ?&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Servicecyclev4_patch270&amp;diff=772</id>
		<title>Servicecyclev4 patch270</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Servicecyclev4_patch270&amp;diff=772"/>
				<updated>2023-07-22T14:29:22Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: fixed mistake&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.&lt;br /&gt;
&lt;br /&gt;
This can cause problems e.g. if your pfSense is hosting LAN services such as a NTP server or UPS daemon.  Consider a scenario e.g. if you have a power cut, your WAN goes offline, pfSense then puts services into a cycle loop, which in turn drops connectivity to the UPS daemon so client machines are unaware of power status and battery level which might prevent automated safe shutdown/hibernation.&lt;br /&gt;
&lt;br /&gt;
This patch changes the behaviour so services will only get cycled if a interface comes back online with a different IP address, if its a cycle keeping the existing IP, then it will not cycle all services, services such as OpenVPN should still behave the same as before.&lt;br /&gt;
&lt;br /&gt;
This is the IPv4 version of the patch, there is also a IPv6 version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Better diagnostics limiters layout' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /etc/rc.newwanip    2023-06-28 04:51:31.000000000 +0100&lt;br /&gt;
+++ /etc/rc.newwanip   2023-07-22 00:12:33.150672000 +0100&lt;br /&gt;
@@ -103,7 +103,7 @@&lt;br /&gt;
        }&lt;br /&gt;
        log_error(&amp;quot;rc.newwanip called with empty interface.&amp;quot;);&lt;br /&gt;
        filter_configure();&lt;br /&gt;
-       restart_packages();&lt;br /&gt;
+       // restart_packages();&lt;br /&gt;
        return;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
@@ -233,10 +233,12 @@&lt;br /&gt;
                if (isset($config['system']['ip_change_kill_states'])) {&lt;br /&gt;
                        log_error(&amp;quot;IP Address has changed, killing all states (ip_change_kill_states is set).&amp;quot;);&lt;br /&gt;
                        pfSense_kill_states($oldip);&lt;br /&gt;
+                       restart_packages();&lt;br /&gt;
                        filter_flush_state_table();&lt;br /&gt;
                } else {&lt;br /&gt;
                        log_error(&amp;quot;IP Address has changed, killing states on former IP Address $oldip.&amp;quot;);&lt;br /&gt;
                        pfSense_kill_states($oldip);&lt;br /&gt;
+                       restart_packages();&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
@@ -273,7 +275,7 @@&lt;br /&gt;
        /* restart L2TP VPN */&lt;br /&gt;
        vpn_l2tp_configure($interface);&lt;br /&gt;
 &lt;br /&gt;
-       restart_packages();&lt;br /&gt;
+       // restart_packages();&lt;br /&gt;
 &lt;br /&gt;
        unlink_if_exists(&amp;quot;{$g['tmp_path']}/{$interface}_upstart4&amp;quot;);&lt;br /&gt;
        if (empty($config['interfaces'][$interface]['ipaddrv6'])) {&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=FWdefLAN_patch270&amp;diff=771</id>
		<title>FWdefLAN patch270</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=FWdefLAN_patch270&amp;diff=771"/>
				<updated>2023-07-22T14:19:38Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: updated description for 2.7.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default pfSense will take you to the first active interface (usually WAN) in the firewall rules section, I have found that the majority of my editing was in the LAN tab, this patch will save clicks by defaulting to the LAN tab when accessing the firewall rules page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Firewall rules page default to LAN' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- firewall_rules.php  2023-07-21 20:39:04.612936000 +0100&lt;br /&gt;
+++ firewall_rules.php    2023-07-22 15:08:57.833838000 +0100&lt;br /&gt;
@@ -151,7 +151,7 @@&lt;br /&gt;
            $if != 'EthernetRules' &amp;amp;&amp;amp;&lt;br /&gt;
            $if != 'FloatingRules') {&lt;br /&gt;
                /* default to the first configured interface */&lt;br /&gt;
-               $if = array_key_first($ifdescs);&lt;br /&gt;
+               $if = 'lan';&lt;br /&gt;
        }&lt;br /&gt;
 }&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=FWdefLAN_patch270&amp;diff=770</id>
		<title>FWdefLAN patch270</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=FWdefLAN_patch270&amp;diff=770"/>
				<updated>2023-07-22T14:14:00Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Created page with &amp;quot;By default pfSense will take you to the WAN tab in the firewall rules section, I have found that the majority of my editing was in the LAN tab, this patch will save clicks by...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default pfSense will take you to the WAN tab in the firewall rules section, I have found that the majority of my editing was in the LAN tab, this patch will save clicks by defaulting to the LAN tab when accessing the firewall rules page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Firewall rules page default to LAN' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- firewall_rules.php  2023-07-21 20:39:04.612936000 +0100&lt;br /&gt;
+++ firewall_rules.php    2023-07-22 15:08:57.833838000 +0100&lt;br /&gt;
@@ -151,7 +151,7 @@&lt;br /&gt;
            $if != 'EthernetRules' &amp;amp;&amp;amp;&lt;br /&gt;
            $if != 'FloatingRules') {&lt;br /&gt;
                /* default to the first configured interface */&lt;br /&gt;
-               $if = array_key_first($ifdescs);&lt;br /&gt;
+               $if = 'lan';&lt;br /&gt;
        }&lt;br /&gt;
 }&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Servicecyclev4_patch270&amp;diff=769</id>
		<title>Servicecyclev4 patch270</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Servicecyclev4_patch270&amp;diff=769"/>
				<updated>2023-07-22T13:56:30Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Created page with &amp;quot;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.  This can caus...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.&lt;br /&gt;
&lt;br /&gt;
This can cause problems e.g. if your pfSense is hosting LAN services such as a NTP server or UPS daemon.  Consider a scenario e.g. if you have a power cut, your WAN goes offline, pfSense then puts services into a cycle loop, which in turn drops connectivity to the UPS daemon so client machines are unaware of power status and battery level which might prevent automated safe shutdown/hibernation.&lt;br /&gt;
&lt;br /&gt;
This patch changes the behaviour so services will only get cycled if a gateway comes back online with a different IP address, if its a cycle keeping the existing IP, then it will not cycle all services, services such as OpenVPN should still behave the same as before.&lt;br /&gt;
&lt;br /&gt;
This is the IPv4 version of the patch, there is also a IPv6 version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Better diagnostics limiters layout' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /etc/rc.newwanip    2023-06-28 04:51:31.000000000 +0100&lt;br /&gt;
+++ /etc/rc.newwanip   2023-07-22 00:12:33.150672000 +0100&lt;br /&gt;
@@ -103,7 +103,7 @@&lt;br /&gt;
        }&lt;br /&gt;
        log_error(&amp;quot;rc.newwanip called with empty interface.&amp;quot;);&lt;br /&gt;
        filter_configure();&lt;br /&gt;
-       restart_packages();&lt;br /&gt;
+       // restart_packages();&lt;br /&gt;
        return;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
@@ -233,10 +233,12 @@&lt;br /&gt;
                if (isset($config['system']['ip_change_kill_states'])) {&lt;br /&gt;
                        log_error(&amp;quot;IP Address has changed, killing all states (ip_change_kill_states is set).&amp;quot;);&lt;br /&gt;
                        pfSense_kill_states($oldip);&lt;br /&gt;
+                       restart_packages();&lt;br /&gt;
                        filter_flush_state_table();&lt;br /&gt;
                } else {&lt;br /&gt;
                        log_error(&amp;quot;IP Address has changed, killing states on former IP Address $oldip.&amp;quot;);&lt;br /&gt;
                        pfSense_kill_states($oldip);&lt;br /&gt;
+                       restart_packages();&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
@@ -273,7 +275,7 @@&lt;br /&gt;
        /* restart L2TP VPN */&lt;br /&gt;
        vpn_l2tp_configure($interface);&lt;br /&gt;
 &lt;br /&gt;
-       restart_packages();&lt;br /&gt;
+       // restart_packages();&lt;br /&gt;
 &lt;br /&gt;
        unlink_if_exists(&amp;quot;{$g['tmp_path']}/{$interface}_upstart4&amp;quot;);&lt;br /&gt;
        if (empty($config['interfaces'][$interface]['ipaddrv6'])) {&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=DiagLimiters_patch270&amp;diff=768</id>
		<title>DiagLimiters patch270</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=DiagLimiters_patch270&amp;diff=768"/>
				<updated>2023-07-22T13:54:06Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Created page with &amp;quot;On the Diagnostics Limiter Info screen, the default layout doesnt represent well the flow of packets through dummynet (the limiter), I changed the layout so it fits the dummyn...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On the Diagnostics Limiter Info screen, the default layout doesnt represent well the flow of packets through dummynet (the limiter), I changed the layout so it fits the dummynet documented traffic flow, making it easier to understand what is going on.&lt;br /&gt;
&lt;br /&gt;
Dummynet has two ways to configure it, one can either use a very simplistic configuration which just utilises pipes, or instead they can utilise schedulers, which also utilises queues, in this advanced configuration pipes are still used to configure the max flow of traffic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Better diagnostics limiters layout' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- diag_limiter_info.php    2022-11-23 10:33:41.856188000 +0000&lt;br /&gt;
+++ diag_limiter_info.php       2022-11-23 10:44:57.843461000 +0000&lt;br /&gt;
@@ -38,16 +38,16 @@&lt;br /&gt;
        if ($text == &amp;quot;&amp;quot;) {&lt;br /&gt;
                $text = gettext(&amp;quot;No limiters were found on this system.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
-       echo gettext(&amp;quot;Limiters:&amp;quot;) . &amp;quot;\n&amp;quot;;&lt;br /&gt;
+       echo gettext(&amp;quot;Pipes:&amp;quot;) . &amp;quot;\n&amp;quot;;&lt;br /&gt;
        echo $text;&lt;br /&gt;
+        $text = `/sbin/dnctl queue show`;&lt;br /&gt;
+        if ($text != &amp;quot;&amp;quot;) {&lt;br /&gt;
+                echo &amp;quot;\n&amp;quot; . gettext(&amp;quot;Queues&amp;quot;) . &amp;quot;:\n&amp;quot;;&lt;br /&gt;
+                echo $text . &amp;quot;|&amp;quot;;&lt;br /&gt;
+        }&lt;br /&gt;
        $text = `/sbin/dnctl sched show`;&lt;br /&gt;
        if ($text != &amp;quot;&amp;quot;) {&lt;br /&gt;
-               echo &amp;quot;\n\n&amp;quot; . gettext(&amp;quot;Schedulers&amp;quot;) . &amp;quot;:\n&amp;quot;;&lt;br /&gt;
-               echo $text;&lt;br /&gt;
-       }&lt;br /&gt;
-       $text = `/sbin/dnctl queue show`;&lt;br /&gt;
-       if ($text != &amp;quot;&amp;quot;) {&lt;br /&gt;
-               echo &amp;quot;\n\n&amp;quot; . gettext(&amp;quot;Queues&amp;quot;) . &amp;quot;:\n&amp;quot;;&lt;br /&gt;
+               echo &amp;quot;\n&amp;quot; . gettext(&amp;quot;|-&amp;gt;Schedulers&amp;quot;) . &amp;quot;:\n&amp;quot;;&lt;br /&gt;
                echo $text;&lt;br /&gt;
        }&lt;br /&gt;
        exit;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=767</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=767"/>
				<updated>2023-07-22T13:52:40Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: another link change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.7.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch270|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch270|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch270|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
[[Click here for pfSense 2.6.0 patches]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfaddnewpatch.png]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=766</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=766"/>
				<updated>2023-07-22T13:51:48Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: change links for updated patches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.7.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch270|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch270|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
[[Click here for pfSense 2.6.0 patches]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfaddnewpatch.png]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=765</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=765"/>
				<updated>2023-07-22T13:49:56Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: /* pfSense patches contributed by the kitz community */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.6.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
[[Click here for pfSense 2.6.0 patches]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfaddnewpatch.png]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Click_here_for_pfSense_2.6.0_patches&amp;diff=764</id>
		<title>Click here for pfSense 2.6.0 patches</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Click_here_for_pfSense_2.6.0_patches&amp;diff=764"/>
				<updated>2023-07-22T13:49:28Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: legacy 2.6.0 patches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following patches have been created to work on pfSense version 2.6.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=763</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=763"/>
				<updated>2023-06-07T13:32:43Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: /* pfSense patches contributed by the kitz community */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.6.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfaddnewpatch.png]]&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=File:Pfaddnewpatch.png&amp;diff=762</id>
		<title>File:Pfaddnewpatch.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=File:Pfaddnewpatch.png&amp;diff=762"/>
				<updated>2023-06-07T13:30:20Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=761</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=761"/>
				<updated>2023-06-07T13:26:57Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.6.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=760</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=760"/>
				<updated>2023-06-07T13:24:49Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: /* pfSense patches contributed by the kitz community */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.6.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=ShaperVPNDefs&amp;diff=759</id>
		<title>ShaperVPNDefs</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=ShaperVPNDefs&amp;diff=759"/>
				<updated>2023-06-07T13:22:59Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default when navigating to the traffic shaper screen it defaults to the ''By Interface'' tab which is for ALTQ shaping, if you are using Limiters instead then you may find this patch useful, it will default to the ''Limiters'' tab.&lt;br /&gt;
&lt;br /&gt;
In addition the OpenVPN  screen will now default to ''Clients'' instead of ''Servers'' which is more likely for someone using pfSense at home in their broadband as it is the case for me.  So saving clicks on navigation.&lt;br /&gt;
&lt;br /&gt;
These are both in one patch as they modify the same file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Traffic shaper default to limiters, VPN default to client' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- head.inc    2022-01-31 19:53:43.000000000 +0000&lt;br /&gt;
+++ head.inc.new  2022-11-22 06:49:30.083874000 +0000&lt;br /&gt;
@@ -312,7 +312,7 @@&lt;br /&gt;
 $firewall_menu[] = array(gettext(&amp;quot;NAT&amp;quot;), &amp;quot;/firewall_nat.php&amp;quot;);&lt;br /&gt;
 $firewall_menu[] = array(gettext(&amp;quot;Rules&amp;quot;), &amp;quot;/firewall_rules.php&amp;quot;);&lt;br /&gt;
 $firewall_menu[] = array(gettext(&amp;quot;Schedules&amp;quot;), &amp;quot;/firewall_schedule.php&amp;quot;);&lt;br /&gt;
-$firewall_menu[] = array(gettext(&amp;quot;Traffic Shaper&amp;quot;), &amp;quot;/firewall_shaper.php&amp;quot;);&lt;br /&gt;
+$firewall_menu[] = array(gettext(&amp;quot;Traffic Shaper&amp;quot;), &amp;quot;/firewall_shaper_vinterface.php&amp;quot;);&lt;br /&gt;
 $firewall_menu[] = array(gettext(&amp;quot;Virtual IPs&amp;quot;), &amp;quot;/firewall_virtual_ip.php&amp;quot;);&lt;br /&gt;
 $firewall_menu = msort(array_merge($firewall_menu, return_ext_menu(&amp;quot;Firewall&amp;quot;)), 0);&lt;br /&gt;
&lt;br /&gt;
@@ -349,7 +349,7 @@&lt;br /&gt;
 // VPN&lt;br /&gt;
 $vpn_menu = array();&lt;br /&gt;
 $vpn_menu[] = array(gettext(&amp;quot;IPsec&amp;quot;), &amp;quot;/vpn_ipsec.php&amp;quot;);&lt;br /&gt;
-$vpn_menu[] = array(gettext(&amp;quot;OpenVPN&amp;quot;), &amp;quot;/vpn_openvpn_server.php&amp;quot;);&lt;br /&gt;
+$vpn_menu[] = array(gettext(&amp;quot;OpenVPN&amp;quot;), &amp;quot;/vpn_openvpn_client.php&amp;quot;);&lt;br /&gt;
 //$vpn_menu[] = array(gettext(&amp;quot;PPTP&amp;quot;), &amp;quot;/vpn_pptp.php&amp;quot;);&lt;br /&gt;
 $vpn_menu[] = array(gettext(&amp;quot;L2TP&amp;quot;), &amp;quot;/vpn_l2tp.php&amp;quot;);&lt;br /&gt;
 $vpn_menu = msort(array_merge($vpn_menu, return_ext_menu(&amp;quot;VPN&amp;quot;)), 0);&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=ShaperVPNDefs&amp;diff=758</id>
		<title>ShaperVPNDefs</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=ShaperVPNDefs&amp;diff=758"/>
				<updated>2023-06-07T13:21:57Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Created page with &amp;quot;By default when navigating to the traffic shaper screen it defaults to the ''By Interface'' tab which is for ALTQ shaping, if you are using Limiters instead then you may find...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default when navigating to the traffic shaper screen it defaults to the ''By Interface'' tab which is for ALTQ shaping, if you are using Limiters instead then you may find this patch useful, it will default to the ''Limiters'' tab.&lt;br /&gt;
&lt;br /&gt;
In addition the OpenVPN  screen will now default to ''Clients'' instead of ''Servers'' which is more likely for someone using pfSense at home in their broadband as it is the case for me.  So saving clicks on navigation.&lt;br /&gt;
&lt;br /&gt;
These are both in one path as they modify the same file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Traffic shaper default to limiters, VPN default to client' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- head.inc    2022-01-31 19:53:43.000000000 +0000&lt;br /&gt;
+++ head.inc.new  2022-11-22 06:49:30.083874000 +0000&lt;br /&gt;
@@ -312,7 +312,7 @@&lt;br /&gt;
 $firewall_menu[] = array(gettext(&amp;quot;NAT&amp;quot;), &amp;quot;/firewall_nat.php&amp;quot;);&lt;br /&gt;
 $firewall_menu[] = array(gettext(&amp;quot;Rules&amp;quot;), &amp;quot;/firewall_rules.php&amp;quot;);&lt;br /&gt;
 $firewall_menu[] = array(gettext(&amp;quot;Schedules&amp;quot;), &amp;quot;/firewall_schedule.php&amp;quot;);&lt;br /&gt;
-$firewall_menu[] = array(gettext(&amp;quot;Traffic Shaper&amp;quot;), &amp;quot;/firewall_shaper.php&amp;quot;);&lt;br /&gt;
+$firewall_menu[] = array(gettext(&amp;quot;Traffic Shaper&amp;quot;), &amp;quot;/firewall_shaper_vinterface.php&amp;quot;);&lt;br /&gt;
 $firewall_menu[] = array(gettext(&amp;quot;Virtual IPs&amp;quot;), &amp;quot;/firewall_virtual_ip.php&amp;quot;);&lt;br /&gt;
 $firewall_menu = msort(array_merge($firewall_menu, return_ext_menu(&amp;quot;Firewall&amp;quot;)), 0);&lt;br /&gt;
&lt;br /&gt;
@@ -349,7 +349,7 @@&lt;br /&gt;
 // VPN&lt;br /&gt;
 $vpn_menu = array();&lt;br /&gt;
 $vpn_menu[] = array(gettext(&amp;quot;IPsec&amp;quot;), &amp;quot;/vpn_ipsec.php&amp;quot;);&lt;br /&gt;
-$vpn_menu[] = array(gettext(&amp;quot;OpenVPN&amp;quot;), &amp;quot;/vpn_openvpn_server.php&amp;quot;);&lt;br /&gt;
+$vpn_menu[] = array(gettext(&amp;quot;OpenVPN&amp;quot;), &amp;quot;/vpn_openvpn_client.php&amp;quot;);&lt;br /&gt;
 //$vpn_menu[] = array(gettext(&amp;quot;PPTP&amp;quot;), &amp;quot;/vpn_pptp.php&amp;quot;);&lt;br /&gt;
 $vpn_menu[] = array(gettext(&amp;quot;L2TP&amp;quot;), &amp;quot;/vpn_l2tp.php&amp;quot;);&lt;br /&gt;
 $vpn_menu = msort(array_merge($vpn_menu, return_ext_menu(&amp;quot;VPN&amp;quot;)), 0);&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=757</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=757"/>
				<updated>2023-06-07T13:18:39Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
               '''WORK IN PROGRESS'''.&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.6.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
*[[ShaperVPNDefs|OpenVPN page default to client, Traffic shaper page default to limiters]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&lt;br /&gt;
&lt;br /&gt;
Patches will be added here on the next revision of this page.&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=CompactTrafficTotals&amp;diff=756</id>
		<title>CompactTrafficTotals</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=CompactTrafficTotals&amp;diff=756"/>
				<updated>2023-06-07T13:15:15Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Created page with &amp;quot;The traffic totals package in pfSense in my configuration has the data going off the side of the output area without any wrapping, to solve this problem I removed the ratio co...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The traffic totals package in pfSense in my configuration has the data going off the side of the output area without any wrapping, to solve this problem I removed the ratio column which presents the download to upload ratio of traffic, this I felt is the least important column.  If you have the same problem, this patch may be useful to you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Compact traffic totals output' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /usr/local/www/status_traffic_totals.php   2018-05-23 22:04:39.000000000 +0100&lt;br /&gt;
+++ /usr/local/www/status_traffic_totals.php     2019-08-30 12:37:10.926071000 +0100&lt;br /&gt;
@@ -1055,7 +1055,7 @@&lt;br /&gt;
                for(var i = 0; i &amp;lt; data.length; i += 2) {&lt;br /&gt;
                        var key = data[i].key.substring(0,data[i].key.length-5);&lt;br /&gt;
 &lt;br /&gt;
-                       header += '&amp;lt;th&amp;gt;' + key + ' TX&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;' + key + ' RX&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;' + key + ' Ratio&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;' + key + ' Total&amp;lt;/th&amp;gt;';&lt;br /&gt;
+                       header += '&amp;lt;th&amp;gt;' + key + ' Total&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;' + key + ' RX&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;' + key + ' TX&amp;lt;/th&amp;gt;';&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
                header += '&amp;lt;/tr&amp;gt;';&lt;br /&gt;
@@ -1147,7 +1147,7 @@&lt;br /&gt;
                                                totalUnit = 'TiB';&lt;br /&gt;
                                        }&lt;br /&gt;
 &lt;br /&gt;
-                                       body += '&amp;lt;td&amp;gt;' + tx.toFixed(2) + ' ' + txUnit + '&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;' + rx.toFixed(2) + ' ' + rxUnit + '&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;' + ratio.toFixed(2) + '&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;' + total.toFixed(2) + ' ' + totalUnit + '&amp;lt;/td&amp;gt;';&lt;br /&gt;
+                                       body += '&amp;lt;td&amp;gt;' + total.toFixed(2) + ' ' + totalUnit + '&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;' + rx.toFixed(2) + ' ' + rxUnit + '&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;' + tx.toFixed(2) + ' ' + txUnit + '&amp;lt;/td&amp;gt;';&lt;br /&gt;
 &lt;br /&gt;
                                }&lt;br /&gt;
 &lt;br /&gt;
@@ -1260,7 +1260,7 @@&lt;br /&gt;
                                                totalUnit = 'TiB';&lt;br /&gt;
                                        }&lt;br /&gt;
 &lt;br /&gt;
-                                       body += '&amp;lt;td&amp;gt;' + tx.toFixed(2) + ' ' + txUnit + '&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;' + rx.toFixed(2) + ' ' + rxUnit + '&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;' + ratio.toFixed(2) + '&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;' + total.toFixed(2) + ' ' + totalUnit + '&amp;lt;/td&amp;gt;';&lt;br /&gt;
+                                       body += '&amp;lt;td&amp;gt;' + total.toFixed(2) + ' ' + totalUnit + '&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;' + rx.toFixed(2) + ' ' + rxUnit + '&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;' + tx.toFixed(2) + ' ' + txUnit + '&amp;lt;/td&amp;gt;';&lt;br /&gt;
                                }&lt;br /&gt;
 &lt;br /&gt;
                                body += '&amp;lt;/tr&amp;gt;';&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=FWdefLAN_patch&amp;diff=755</id>
		<title>FWdefLAN patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=FWdefLAN_patch&amp;diff=755"/>
				<updated>2023-06-07T13:11:31Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default pfSense will take you to the WAN tab in the firewall rules section, I have found that the majority of my editing was in the LAN tab, this patch will save clicks by defaulting to the LAN tab when accessing the firewall rules page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Firewall rules page default to LAN' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- firewall_rules.php   2019-01-06 08:56:58.677038000 +0000&lt;br /&gt;
+++ firewall_rules.php    2019-01-06 08:57:19.860922000 +0000&lt;br /&gt;
@@ -122,7 +122,7 @@&lt;br /&gt;
 &lt;br /&gt;
 if (!$if || !isset($iflist[$if])) {&lt;br /&gt;
        if ($if != &amp;quot;any&amp;quot; &amp;amp;&amp;amp; $if != &amp;quot;FloatingRules&amp;quot; &amp;amp;&amp;amp; isset($iflist['wan'])) {&lt;br /&gt;
-               $if = &amp;quot;wan&amp;quot;;&lt;br /&gt;
+               $if = &amp;quot;lan&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
-               $if = &amp;quot;FloatingRules&amp;quot;;&lt;br /&gt;
+               $if = &amp;quot;lan&amp;quot;;&lt;br /&gt;
        }&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=FWdefLAN_patch&amp;diff=754</id>
		<title>FWdefLAN patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=FWdefLAN_patch&amp;diff=754"/>
				<updated>2023-06-07T13:11:07Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Created page with &amp;quot;By default pfSense will take you to the WAN tab in the firewall rules section, I had found that the majority of my editing was in the LAN tab, this patch will save clicks by d...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default pfSense will take you to the WAN tab in the firewall rules section, I had found that the majority of my editing was in the LAN tab, this patch will save clicks by defaulting to the LAN tab when accessing the firewall rules page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Firewall rules page default to LAN' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- firewall_rules.php   2019-01-06 08:56:58.677038000 +0000&lt;br /&gt;
+++ firewall_rules.php    2019-01-06 08:57:19.860922000 +0000&lt;br /&gt;
@@ -122,7 +122,7 @@&lt;br /&gt;
 &lt;br /&gt;
 if (!$if || !isset($iflist[$if])) {&lt;br /&gt;
        if ($if != &amp;quot;any&amp;quot; &amp;amp;&amp;amp; $if != &amp;quot;FloatingRules&amp;quot; &amp;amp;&amp;amp; isset($iflist['wan'])) {&lt;br /&gt;
-               $if = &amp;quot;wan&amp;quot;;&lt;br /&gt;
+               $if = &amp;quot;lan&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
-               $if = &amp;quot;FloatingRules&amp;quot;;&lt;br /&gt;
+               $if = &amp;quot;lan&amp;quot;;&lt;br /&gt;
        }&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=MuteWebAccess_patch&amp;diff=753</id>
		<title>MuteWebAccess patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=MuteWebAccess_patch&amp;diff=753"/>
				<updated>2023-06-07T13:07:44Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Created page with &amp;quot;If you are only accessing pfSense from the LAN, and WAN access is locked out, it might be preferential to not log every action in the UI access logs, this patch will mute that...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you are only accessing pfSense from the LAN, and WAN access is locked out, it might be preferential to not log every action in the UI access logs, this patch will mute that logging.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Mute WebUI access log' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/etc/inc/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- system.inc  2017-02-03 15:05:45.000000000 +0000&lt;br /&gt;
+++ system.inc.mute     2017-02-25 14:50:10.749459000 +0000&lt;br /&gt;
@@ -1419,7 +1419,7 @@&lt;br /&gt;
 &lt;br /&gt;
        sendfile        on;&lt;br /&gt;
 &lt;br /&gt;
-       access_log      syslog:server=unix:/var/run/log,facility=local5 combined;&lt;br /&gt;
+       access_log      /dev/null;&lt;br /&gt;
 &lt;br /&gt;
 EOD;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Bash_patch&amp;diff=752</id>
		<title>Bash patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Bash_patch&amp;diff=752"/>
				<updated>2023-06-07T13:04:57Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When logging in to pfSense via the console or ssh terminal, you are presented with an access menu with various options, option 8 gives shell access but using the default FreeBSD csh shell.  This patch adds an extra option, option 17 which will login to a bash shell, you will also need to install bash, the command for that is in the below instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the pfSense shell run the following command. &amp;lt;code&amp;gt;pkg install bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Add Bash shell to terminal menu' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/etc/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- rc.initial.dist     2017-02-02 22:28:17.691805000 +0000&lt;br /&gt;
+++ rc.initial  2017-02-02 22:27:52.297217000 +0000&lt;br /&gt;
@@ -88,7 +88,7 @@&lt;br /&gt;
 echo &amp;quot; 5) Reboot system                     ${sshd_option}&amp;quot;&lt;br /&gt;
 echo &amp;quot; 6) Halt system                       15) Restore recent configuration&amp;quot;&lt;br /&gt;
 echo &amp;quot; 7) Ping host                         16) Restart PHP-FPM&amp;quot;&lt;br /&gt;
-echo &amp;quot; 8) Shell&amp;quot;&lt;br /&gt;
+echo &amp;quot; 8) Shell                             17) Bash Shell&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 echo&lt;br /&gt;
 read -p &amp;quot;Enter an option: &amp;quot; opmode&lt;br /&gt;
@@ -147,6 +147,9 @@&lt;br /&gt;
 16)&lt;br /&gt;
        /etc/rc.php-fpm_restart&lt;br /&gt;
        ;;&lt;br /&gt;
+17)&lt;br /&gt;
+        /usr/local/bin/bash -l&lt;br /&gt;
+        ;;&lt;br /&gt;
 100)&lt;br /&gt;
        if grep &amp;quot;$WORD&amp;quot; &amp;quot;$CONFIG&amp;quot;; then&lt;br /&gt;
                links &amp;quot;https://localhost&amp;quot;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Bash_patch&amp;diff=751</id>
		<title>Bash patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Bash_patch&amp;diff=751"/>
				<updated>2023-06-07T13:03:54Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When logging in to pfSense via the console or ssh terminal, you are presented with an access menu with various options, option 8 gives shell access but using the default FreeBSD csh shell.  This patch adds an extra option, option 17 which will login to a bash shell, you will also need to install bash, the command for that is in the below instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the pfSense shell run the following command. &amp;lt;code&amp;gt;pkg install bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Remove schedule and add limiters Firewall UI' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/etc/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- rc.initial.dist     2017-02-02 22:28:17.691805000 +0000&lt;br /&gt;
+++ rc.initial  2017-02-02 22:27:52.297217000 +0000&lt;br /&gt;
@@ -88,7 +88,7 @@&lt;br /&gt;
 echo &amp;quot; 5) Reboot system                     ${sshd_option}&amp;quot;&lt;br /&gt;
 echo &amp;quot; 6) Halt system                       15) Restore recent configuration&amp;quot;&lt;br /&gt;
 echo &amp;quot; 7) Ping host                         16) Restart PHP-FPM&amp;quot;&lt;br /&gt;
-echo &amp;quot; 8) Shell&amp;quot;&lt;br /&gt;
+echo &amp;quot; 8) Shell                             17) Bash Shell&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 echo&lt;br /&gt;
 read -p &amp;quot;Enter an option: &amp;quot; opmode&lt;br /&gt;
@@ -147,6 +147,9 @@&lt;br /&gt;
 16)&lt;br /&gt;
        /etc/rc.php-fpm_restart&lt;br /&gt;
        ;;&lt;br /&gt;
+17)&lt;br /&gt;
+        /usr/local/bin/bash -l&lt;br /&gt;
+        ;;&lt;br /&gt;
 100)&lt;br /&gt;
        if grep &amp;quot;$WORD&amp;quot; &amp;quot;$CONFIG&amp;quot;; then&lt;br /&gt;
                links &amp;quot;https://localhost&amp;quot;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Bash_patch&amp;diff=750</id>
		<title>Bash patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Bash_patch&amp;diff=750"/>
				<updated>2023-06-07T13:02:42Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Created page with &amp;quot;When logging in to pfSense via the console or ssh terminal, you are presented with an access menu with various options, option 8 gives shell access but using the default FreeB...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When logging in to pfSense via the console or ssh terminal, you are presented with an access menu with various options, option 8 gives shell access but using the default FreeBSD csh shell.  This patch adds an extra option, option 17 which will login to a bash shell, you will also need to install bash, the command for that is in the below instructions.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In the pfSense shell run the following command. &amp;lt;code&amp;gt;pkg install bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Remove schedule and add limiters Firewall UI' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/etc/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- rc.initial.dist     2017-02-02 22:28:17.691805000 +0000&lt;br /&gt;
+++ rc.initial  2017-02-02 22:27:52.297217000 +0000&lt;br /&gt;
@@ -88,7 +88,7 @@&lt;br /&gt;
 echo &amp;quot; 5) Reboot system                     ${sshd_option}&amp;quot;&lt;br /&gt;
 echo &amp;quot; 6) Halt system                       15) Restore recent configuration&amp;quot;&lt;br /&gt;
 echo &amp;quot; 7) Ping host                         16) Restart PHP-FPM&amp;quot;&lt;br /&gt;
-echo &amp;quot; 8) Shell&amp;quot;&lt;br /&gt;
+echo &amp;quot; 8) Shell                             17) Bash Shell&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 echo&lt;br /&gt;
 read -p &amp;quot;Enter an option: &amp;quot; opmode&lt;br /&gt;
@@ -147,6 +147,9 @@&lt;br /&gt;
 16)&lt;br /&gt;
        /etc/rc.php-fpm_restart&lt;br /&gt;
        ;;&lt;br /&gt;
+17)&lt;br /&gt;
+        /usr/local/bin/bash -l&lt;br /&gt;
+        ;;&lt;br /&gt;
 100)&lt;br /&gt;
        if grep &amp;quot;$WORD&amp;quot; &amp;quot;$CONFIG&amp;quot;; then&lt;br /&gt;
                links &amp;quot;https://localhost&amp;quot;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=749</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=749"/>
				<updated>2023-06-07T12:56:58Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
               '''WORK IN PROGRESS'''.&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.6.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
*[[bash_patch|Add Bash shell as option to console/terminal login menu]]&lt;br /&gt;
*[[MuteWebAccess_patch|Mute web UI access log for cleaner logs]]&lt;br /&gt;
*[[FWdefLAN_patch|Firewall page default to LAN instead of WAN]]&lt;br /&gt;
*[[CompactTrafficTotals|Compact the Traffic Total page]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&lt;br /&gt;
&lt;br /&gt;
Patches will be added here on the next revision of this page.&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Servicecyclev6_patch&amp;diff=748</id>
		<title>Servicecyclev6 patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Servicecyclev6_patch&amp;diff=748"/>
				<updated>2023-06-05T18:36:10Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: fix error on base path&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.&lt;br /&gt;
&lt;br /&gt;
This can cause problems e.g. if your pfSense is hosting LAN services such as a NTP server or UPS daemon.  Consider a scenario e.g. if you have a power cut, your WAN goes offline, pfSense then puts services into a cycle loop, which in turn drops connectivity to the UPS daemon so client machines are unaware of power status and battery level which might prevent automated safe shutdown/hibernation.&lt;br /&gt;
&lt;br /&gt;
This patch changes the behaviour so services will only get cycled if a gateway comes back online with a different IP address, if its a cycle keeping the existing IP, then it will not cycle all services, services such as OpenVPN should still behave the same as before.&lt;br /&gt;
&lt;br /&gt;
This is the IPv6 version of the patch, there is also a IPv4 version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Better diagnostics limiters layout' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /etc/rc.newwanipv6  2022-01-31 19:53:42.000000000 +0000&lt;br /&gt;
+++ /etc/rc.newwanipv6     2023-04-18 03:15:33.061352000 +0100&lt;br /&gt;
@@ -161,6 +161,7 @@&lt;br /&gt;
                }&lt;br /&gt;
        } elseif (does_interface_exist($interface_real) &amp;amp;&amp;amp; !empty($oldipv6)) {&lt;br /&gt;
                mwexec(&amp;quot;/sbin/ifconfig {$interface_real} inet6 {$oldipv6} delete&amp;quot;);&lt;br /&gt;
+               restart_packages();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        file_put_contents(&amp;quot;{$g['vardb_path']}/{$interface}_cacheipv6&amp;quot;, $curwanipv6);&lt;br /&gt;
@@ -211,7 +212,7 @@&lt;br /&gt;
        /* reload graphing functions */&lt;br /&gt;
        enable_rrd_graphing();&lt;br /&gt;
 &lt;br /&gt;
-       restart_packages();&lt;br /&gt;
+       // restart_packages();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ?&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Servicecyclev4_patch&amp;diff=747</id>
		<title>Servicecyclev4 patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Servicecyclev4_patch&amp;diff=747"/>
				<updated>2023-06-05T18:35:44Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: fix error on base path&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.&lt;br /&gt;
&lt;br /&gt;
This can cause problems e.g. if your pfSense is hosting LAN services such as a NTP server or UPS daemon.  Consider a scenario e.g. if you have a power cut, your WAN goes offline, pfSense then puts services into a cycle loop, which in turn drops connectivity to the UPS daemon so client machines are unaware of power status and battery level which might prevent automated safe shutdown/hibernation.&lt;br /&gt;
&lt;br /&gt;
This patch changes the behaviour so services will only get cycled if a gateway comes back online with a different IP address, if its a cycle keeping the existing IP, then it will not cycle all services, services such as OpenVPN should still behave the same as before.&lt;br /&gt;
&lt;br /&gt;
This is the IPv4 version of the patch, there is also a IPv6 version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Better diagnostics limiters layout' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /etc/rc.newwanip    2023-04-18 03:05:04.404321000 +0100&lt;br /&gt;
+++ /etc/rc.newwanip       2023-04-18 03:05:50.740612000 +0100&lt;br /&gt;
@@ -233,10 +233,12 @@&lt;br /&gt;
                if (isset($config['system']['ip_change_kill_states'])) {&lt;br /&gt;
                        log_error(&amp;quot;IP Address has changed, killing all states (ip_change_kill_states is set).&amp;quot;);&lt;br /&gt;
                        pfSense_kill_states(utf8_encode($oldip));&lt;br /&gt;
+                       restart_packages();&lt;br /&gt;
                        filter_flush_state_table();&lt;br /&gt;
                } else {&lt;br /&gt;
                        log_error(&amp;quot;IP Address has changed, killing states on former IP Address $oldip.&amp;quot;);&lt;br /&gt;
                        pfSense_kill_states(utf8_encode($oldip));&lt;br /&gt;
+                       restart_packages();&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
@@ -270,7 +272,7 @@&lt;br /&gt;
        /* restart snmp */&lt;br /&gt;
        services_snmpd_configure();&lt;br /&gt;
 &lt;br /&gt;
-       restart_packages();&lt;br /&gt;
+       // restart_packages();&lt;br /&gt;
 } else {&lt;br /&gt;
        /* signal filter reload */&lt;br /&gt;
        filter_configure();&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=LimitersFW_patch&amp;diff=746</id>
		<title>LimitersFW patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=LimitersFW_patch&amp;diff=746"/>
				<updated>2023-06-05T18:29:36Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default the firewall rules screen will display the configured queue (ALTQ) in the Queue column, if you are using limiters instead (dummynet) which is common to use fq_codel, then this patch can be used to display the configured limiter in that column instead of the queue, new column name Limiter.  In addition to free up space, it also removes the schedule column which is unlikely to be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Remove schedule and add limiters Firewall UI' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- firewall_rules.php  2022-09-28 20:57:55.827968000 +0100&lt;br /&gt;
+++ firewall_rules.php    2022-09-28 20:55:22.694754000 +0100&lt;br /&gt;
@@ -405,8 +405,7 @@&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Destination&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Port&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Gateway&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
-                                               &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Queue&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
-                                               &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Schedule&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
+                                               &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Limiter&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Description&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Actions&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                        &amp;lt;/tr&amp;gt;&lt;br /&gt;
@@ -859,26 +858,20 @@&lt;br /&gt;
                                                &amp;lt;/td&amp;gt;&lt;br /&gt;
                                                &amp;lt;td&amp;gt;&lt;br /&gt;
                                                        &amp;lt;?php&lt;br /&gt;
-                                                               if (isset($filterent['ackqueue']) &amp;amp;&amp;amp; isset($filterent['defaultqueue'])) {&lt;br /&gt;
-                                                                       $desc = str_replace('_', ' ', $filterent['ackqueue']);&lt;br /&gt;
-                                                                       echo &amp;quot;&amp;lt;a href=\&amp;quot;firewall_shaper_queues.php?queue={$filterent['ackqueue']}&amp;amp;amp;action=show\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
-                                                                       $desc = str_replace('_', '_&amp;lt;wbr&amp;gt;', $filterent['defaultqueue']);&lt;br /&gt;
-                                                                       echo &amp;quot;/&amp;lt;a href=\&amp;quot;firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&amp;amp;amp;action=show\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
-                                                               } else if (isset($filterent['defaultqueue'])) {&lt;br /&gt;
-                                                                       $desc = str_replace('_', '_&amp;lt;wbr&amp;gt;', $filterent['defaultqueue']);&lt;br /&gt;
-                                                                       echo &amp;quot;&amp;lt;a href=\&amp;quot;firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&amp;amp;amp;action=show\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
+                                                               if (isset($filterent['pdnpipe']) &amp;amp;&amp;amp; isset($filterent['dnpipe'])) {&lt;br /&gt;
+                                                                       $desc = str_replace('_', ' ', $filterent['pdnpipe']);&lt;br /&gt;
+                                                                       echo &amp;quot;&amp;lt;a href=\&amp;quot;firewall_shaper_vinterface.php\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
+                                                                       $desc = str_replace('_', '_&amp;lt;wbr&amp;gt;', $filterent['dnpipe']);&lt;br /&gt;
+                                                                       echo &amp;quot;/&amp;lt;a href=\&amp;quot;firewall_shaper_vinterface.php\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
+                                                               } else if (isset($filterent['dnpipe'])) {&lt;br /&gt;
+                                                                       $desc = str_replace('_', '_&amp;lt;wbr&amp;gt;', $filterent['dnpipe']);&lt;br /&gt;
+                                                                       echo &amp;quot;&amp;lt;a href=\&amp;quot;firewall_shaper_vinterface.php\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
                                                                } else {&lt;br /&gt;
                                                                        echo gettext(&amp;quot;none&amp;quot;);&lt;br /&gt;
                                                                }&lt;br /&gt;
                                                        ?&amp;gt;&lt;br /&gt;
                                                &amp;lt;/td&amp;gt;&lt;br /&gt;
                                                &amp;lt;td&amp;gt;&lt;br /&gt;
-                                                       &amp;lt;?php if ($printicon) { ?&amp;gt;&lt;br /&gt;
-                                                               &amp;lt;i class=&amp;quot;fa fa-&amp;lt;?=$image?&amp;gt; &amp;lt;?=$dispcolor?&amp;gt;&amp;quot; title=&amp;quot;&amp;lt;?=$alttext;?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
-                                                       &amp;lt;?php } ?&amp;gt;&lt;br /&gt;
-                                                       &amp;lt;?=$schedule_span_begin;?&amp;gt;&amp;lt;?=str_replace('_', '_&amp;lt;wbr&amp;gt;', htmlspecialchars($filterent['sched']));?&amp;gt;&amp;amp;nbsp;&amp;lt;?=$schedule_span_end;?&amp;gt;&lt;br /&gt;
-                                               &amp;lt;/td&amp;gt;&lt;br /&gt;
-                                               &amp;lt;td&amp;gt;&lt;br /&gt;
                                                        &amp;lt;?=htmlspecialchars($filterent['descr']);?&amp;gt;&lt;br /&gt;
                                                &amp;lt;/td&amp;gt;&lt;br /&gt;
                                                &amp;lt;td class=&amp;quot;action-icons&amp;quot;&amp;gt;,&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=File:Pfreccomendedpatches.png&amp;diff=745</id>
		<title>File:Pfreccomendedpatches.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=File:Pfreccomendedpatches.png&amp;diff=745"/>
				<updated>2023-06-05T18:21:48Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: Chrysalis uploaded a new version of File:Pfreccomendedpatches.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=744</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=744"/>
				<updated>2023-06-05T18:19:12Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
               '''WORK IN PROGRESS'''.&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.6.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&lt;br /&gt;
&lt;br /&gt;
Patches will be added here on the next revision of this page.&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=743</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=743"/>
				<updated>2023-06-05T11:08:13Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
               '''WORK IN PROGRESS'''.&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.6.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
&lt;br /&gt;
Note adding these patches with the instructions provided wont activate the patch, system behaviour is only changed after clicking apply for that patch, and can be reverted any time.  Auto apply defaults to off, meaning they wont be applied on system updates.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&lt;br /&gt;
&lt;br /&gt;
Patches will be added here on the next revision of this page.&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=742</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=742"/>
				<updated>2023-06-05T10:44:57Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
               '''WORK IN PROGRESS'''.&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.6.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&lt;br /&gt;
&lt;br /&gt;
Patches will be added here on the next revision of this page.&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Servicecyclev6_patch&amp;diff=741</id>
		<title>Servicecyclev6 patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Servicecyclev6_patch&amp;diff=741"/>
				<updated>2023-06-05T10:42:22Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.&lt;br /&gt;
&lt;br /&gt;
This can cause problems e.g. if your pfSense is hosting LAN services such as a NTP server or UPS daemon.  Consider a scenario e.g. if you have a power cut, your WAN goes offline, pfSense then puts services into a cycle loop, which in turn drops connectivity to the UPS daemon so client machines are unaware of power status and battery level which might prevent automated safe shutdown/hibernation.&lt;br /&gt;
&lt;br /&gt;
This patch changes the behaviour so services will only get cycled if a gateway comes back online with a different IP address, if its a cycle keeping the existing IP, then it will not cycle all services, services such as OpenVPN should still behave the same as before.&lt;br /&gt;
&lt;br /&gt;
This is the IPv6 version of the patch, there is also a IPv4 version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Better diagnostics limiters layout' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /etc/rc.newwanipv6  2022-01-31 19:53:42.000000000 +0000&lt;br /&gt;
+++ /etc/rc.newwanipv6     2023-04-18 03:15:33.061352000 +0100&lt;br /&gt;
@@ -161,6 +161,7 @@&lt;br /&gt;
                }&lt;br /&gt;
        } elseif (does_interface_exist($interface_real) &amp;amp;&amp;amp; !empty($oldipv6)) {&lt;br /&gt;
                mwexec(&amp;quot;/sbin/ifconfig {$interface_real} inet6 {$oldipv6} delete&amp;quot;);&lt;br /&gt;
+               restart_packages();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        file_put_contents(&amp;quot;{$g['vardb_path']}/{$interface}_cacheipv6&amp;quot;, $curwanipv6);&lt;br /&gt;
@@ -211,7 +212,7 @@&lt;br /&gt;
        /* reload graphing functions */&lt;br /&gt;
        enable_rrd_graphing();&lt;br /&gt;
 &lt;br /&gt;
-       restart_packages();&lt;br /&gt;
+       // restart_packages();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ?&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Servicecyclev4_patch&amp;diff=740</id>
		<title>Servicecyclev4 patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Servicecyclev4_patch&amp;diff=740"/>
				<updated>2023-06-05T10:41:57Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Default behaviour on pfSense is to cycle all services if any configured gateways go offline, this can include VPN's and tunnels not just broadband connectivity.&lt;br /&gt;
&lt;br /&gt;
This can cause problems e.g. if your pfSense is hosting LAN services such as a NTP server or UPS daemon.  Consider a scenario e.g. if you have a power cut, your WAN goes offline, pfSense then puts services into a cycle loop, which in turn drops connectivity to the UPS daemon so client machines are unaware of power status and battery level which might prevent automated safe shutdown/hibernation.&lt;br /&gt;
&lt;br /&gt;
This patch changes the behaviour so services will only get cycled if a gateway comes back online with a different IP address, if its a cycle keeping the existing IP, then it will not cycle all services, services such as OpenVPN should still behave the same as before.&lt;br /&gt;
&lt;br /&gt;
This is the IPv4 version of the patch, there is also a IPv6 version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Better diagnostics limiters layout' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- /etc/rc.newwanip    2023-04-18 03:05:04.404321000 +0100&lt;br /&gt;
+++ /etc/rc.newwanip       2023-04-18 03:05:50.740612000 +0100&lt;br /&gt;
@@ -233,10 +233,12 @@&lt;br /&gt;
                if (isset($config['system']['ip_change_kill_states'])) {&lt;br /&gt;
                        log_error(&amp;quot;IP Address has changed, killing all states (ip_change_kill_states is set).&amp;quot;);&lt;br /&gt;
                        pfSense_kill_states(utf8_encode($oldip));&lt;br /&gt;
+                       restart_packages();&lt;br /&gt;
                        filter_flush_state_table();&lt;br /&gt;
                } else {&lt;br /&gt;
                        log_error(&amp;quot;IP Address has changed, killing states on former IP Address $oldip.&amp;quot;);&lt;br /&gt;
                        pfSense_kill_states(utf8_encode($oldip));&lt;br /&gt;
+                       restart_packages();&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
@@ -270,7 +272,7 @@&lt;br /&gt;
        /* restart snmp */&lt;br /&gt;
        services_snmpd_configure();&lt;br /&gt;
 &lt;br /&gt;
-       restart_packages();&lt;br /&gt;
+       // restart_packages();&lt;br /&gt;
 } else {&lt;br /&gt;
        /* signal filter reload */&lt;br /&gt;
        filter_configure();&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=DiagLimiters_patch&amp;diff=739</id>
		<title>DiagLimiters patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=DiagLimiters_patch&amp;diff=739"/>
				<updated>2023-06-05T10:41:36Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On the Diagnostics Limiter Info screen, the default layout doesnt represent well the flow of packets through dummynet (the limiter), I changed the layout so it fits the dummynet documented traffic flow, making it easier to understand what is going on.&lt;br /&gt;
&lt;br /&gt;
Dummynet has two ways to configure it, one can either use a very simplistic configuration which just utilises pipes, or instead they can utilise schedulers, which also utilises queues, in this advanced configuration pipes are still used to configure the max flow of traffic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Better diagnostics limiters layout' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- diag_limiter_info.php    2022-11-23 10:33:41.856188000 +0000&lt;br /&gt;
+++ diag_limiter_info.php       2022-11-23 10:44:57.843461000 +0000&lt;br /&gt;
@@ -38,16 +38,16 @@&lt;br /&gt;
        if ($text == &amp;quot;&amp;quot;) {&lt;br /&gt;
                $text = gettext(&amp;quot;No limiters were found on this system.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
-       echo gettext(&amp;quot;Limiters:&amp;quot;) . &amp;quot;\n&amp;quot;;&lt;br /&gt;
+       echo gettext(&amp;quot;Pipes:&amp;quot;) . &amp;quot;\n&amp;quot;;&lt;br /&gt;
        echo $text;&lt;br /&gt;
+        $text = `/sbin/ipfw queue show`;&lt;br /&gt;
+        if ($text != &amp;quot;&amp;quot;) {&lt;br /&gt;
+                echo &amp;quot;\n&amp;quot; . gettext(&amp;quot;Queues&amp;quot;) . &amp;quot;:\n&amp;quot;;&lt;br /&gt;
+                echo $text . &amp;quot;|&amp;quot;;&lt;br /&gt;
+        }&lt;br /&gt;
        $text = `/sbin/ipfw sched show`;&lt;br /&gt;
        if ($text != &amp;quot;&amp;quot;) {&lt;br /&gt;
-               echo &amp;quot;\n\n&amp;quot; . gettext(&amp;quot;Schedulers&amp;quot;) . &amp;quot;:\n&amp;quot;;&lt;br /&gt;
-               echo $text;&lt;br /&gt;
-       }&lt;br /&gt;
-       $text = `/sbin/ipfw queue show`;&lt;br /&gt;
-       if ($text != &amp;quot;&amp;quot;) {&lt;br /&gt;
-               echo &amp;quot;\n\n&amp;quot; . gettext(&amp;quot;Queues&amp;quot;) . &amp;quot;:\n&amp;quot;;&lt;br /&gt;
+               echo &amp;quot;\n&amp;quot; . gettext(&amp;quot;|-&amp;gt;Schedulers&amp;quot;) . &amp;quot;:\n&amp;quot;;&lt;br /&gt;
                echo $text;&lt;br /&gt;
        }&lt;br /&gt;
        exit;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=LimitersFW_patch&amp;diff=738</id>
		<title>LimitersFW patch</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=LimitersFW_patch&amp;diff=738"/>
				<updated>2023-06-05T10:41:17Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default the firewall rules screen will display the configured queue (ALTQ) in the Queue column, if you are using limiters instead (dummynet) which is common to use fq_codel, then this patch will display the configured limiter in that column instead of the queue, new column name Limiter.  In addition to free up space, it also removes the schedule column which is unlikely to be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste the below code into the ''Patch Contents'' box.&lt;br /&gt;
&lt;br /&gt;
Add a description such as 'Remove schedule and add limiters Firewall UI' in the ''Description'' box.&lt;br /&gt;
&lt;br /&gt;
Set ''Path Strip Count'' to '0'.&lt;br /&gt;
&lt;br /&gt;
''Base Directory'' to '/usr/local/www/'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;--- firewall_rules.php  2022-09-28 20:57:55.827968000 +0100&lt;br /&gt;
+++ firewall_rules.php    2022-09-28 20:55:22.694754000 +0100&lt;br /&gt;
@@ -405,8 +405,7 @@&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Destination&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Port&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Gateway&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
-                                               &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Queue&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
-                                               &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Schedule&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
+                                               &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Limiter&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Description&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                                &amp;lt;th&amp;gt;&amp;lt;?=gettext(&amp;quot;Actions&amp;quot;)?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
                                        &amp;lt;/tr&amp;gt;&lt;br /&gt;
@@ -859,26 +858,20 @@&lt;br /&gt;
                                                &amp;lt;/td&amp;gt;&lt;br /&gt;
                                                &amp;lt;td&amp;gt;&lt;br /&gt;
                                                        &amp;lt;?php&lt;br /&gt;
-                                                               if (isset($filterent['ackqueue']) &amp;amp;&amp;amp; isset($filterent['defaultqueue'])) {&lt;br /&gt;
-                                                                       $desc = str_replace('_', ' ', $filterent['ackqueue']);&lt;br /&gt;
-                                                                       echo &amp;quot;&amp;lt;a href=\&amp;quot;firewall_shaper_queues.php?queue={$filterent['ackqueue']}&amp;amp;amp;action=show\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
-                                                                       $desc = str_replace('_', '_&amp;lt;wbr&amp;gt;', $filterent['defaultqueue']);&lt;br /&gt;
-                                                                       echo &amp;quot;/&amp;lt;a href=\&amp;quot;firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&amp;amp;amp;action=show\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
-                                                               } else if (isset($filterent['defaultqueue'])) {&lt;br /&gt;
-                                                                       $desc = str_replace('_', '_&amp;lt;wbr&amp;gt;', $filterent['defaultqueue']);&lt;br /&gt;
-                                                                       echo &amp;quot;&amp;lt;a href=\&amp;quot;firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&amp;amp;amp;action=show\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
+                                                               if (isset($filterent['pdnpipe']) &amp;amp;&amp;amp; isset($filterent['dnpipe'])) {&lt;br /&gt;
+                                                                       $desc = str_replace('_', ' ', $filterent['pdnpipe']);&lt;br /&gt;
+                                                                       echo &amp;quot;&amp;lt;a href=\&amp;quot;firewall_shaper_vinterface.php\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
+                                                                       $desc = str_replace('_', '_&amp;lt;wbr&amp;gt;', $filterent['dnpipe']);&lt;br /&gt;
+                                                                       echo &amp;quot;/&amp;lt;a href=\&amp;quot;firewall_shaper_vinterface.php\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
+                                                               } else if (isset($filterent['dnpipe'])) {&lt;br /&gt;
+                                                                       $desc = str_replace('_', '_&amp;lt;wbr&amp;gt;', $filterent['dnpipe']);&lt;br /&gt;
+                                                                       echo &amp;quot;&amp;lt;a href=\&amp;quot;firewall_shaper_vinterface.php\&amp;quot;&amp;gt;{$desc}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
                                                                } else {&lt;br /&gt;
                                                                        echo gettext(&amp;quot;none&amp;quot;);&lt;br /&gt;
                                                                }&lt;br /&gt;
                                                        ?&amp;gt;&lt;br /&gt;
                                                &amp;lt;/td&amp;gt;&lt;br /&gt;
                                                &amp;lt;td&amp;gt;&lt;br /&gt;
-                                                       &amp;lt;?php if ($printicon) { ?&amp;gt;&lt;br /&gt;
-                                                               &amp;lt;i class=&amp;quot;fa fa-&amp;lt;?=$image?&amp;gt; &amp;lt;?=$dispcolor?&amp;gt;&amp;quot; title=&amp;quot;&amp;lt;?=$alttext;?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
-                                                       &amp;lt;?php } ?&amp;gt;&lt;br /&gt;
-                                                       &amp;lt;?=$schedule_span_begin;?&amp;gt;&amp;lt;?=str_replace('_', '_&amp;lt;wbr&amp;gt;', htmlspecialchars($filterent['sched']));?&amp;gt;&amp;amp;nbsp;&amp;lt;?=$schedule_span_end;?&amp;gt;&lt;br /&gt;
-                                               &amp;lt;/td&amp;gt;&lt;br /&gt;
-                                               &amp;lt;td&amp;gt;&lt;br /&gt;
                                                        &amp;lt;?=htmlspecialchars($filterent['descr']);?&amp;gt;&lt;br /&gt;
                                                &amp;lt;/td&amp;gt;&lt;br /&gt;
                                                &amp;lt;td class=&amp;quot;action-icons&amp;quot;&amp;gt;,&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	<entry>
		<id>https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=737</id>
		<title>Pfsense</title>
		<link rel="alternate" type="text/html" href="https://wiki.kitz.co.uk/index.php?title=Pfsense&amp;diff=737"/>
				<updated>2023-06-05T10:40:52Z</updated>
		
		<summary type="html">&lt;p&gt;Chrysalis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pfSense patches contributed by the kitz community ==&lt;br /&gt;
&lt;br /&gt;
               '''WORK IN PROGRESS'''.&lt;br /&gt;
&lt;br /&gt;
The following patches have been created to work on pfSense version 2.6.0.  They are added or amended as ''Custom System Patches'' in the ''System Patches'' package on pfSense, there is information about this below the list of patches.&lt;br /&gt;
&lt;br /&gt;
*[[LimitersFW_patch|Remove Schedule from Firewall GUI and also replace Queues with Limiters]]&lt;br /&gt;
*[[DiagLimiters_patch|Improved Limiters information page layout]]&lt;br /&gt;
*[[servicecyclev4_patch|Only cycle services on IP change IPv4]]&lt;br /&gt;
*[[servicecyclev6_patch|Only cycle services on IP change IPv6]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use patches on pfSense you first need to install the ''System Patches'' package, this can be installed in the following way.&lt;br /&gt;
&lt;br /&gt;
1 - First login to pfSense.&amp;lt;br /&amp;gt;&lt;br /&gt;
2 - Second click on the ''System'' pulldown menu on the top bar and select Package Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:PFpackagemanager.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
3 - Select ''Available Packages''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfavailablepackages.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
4 - You should see a list of packages appear on the screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
5 - Scroll down to the ''System Patches'' package and then click on the green install button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfsystempatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfinstall.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
6 - After a delay the package should be installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now with the ''System Patches'' package installed there wont be any patches installed by default, this package just facilitates easy patch management.&lt;br /&gt;
&lt;br /&gt;
The interface can be accessed first by clicking the ''System'' pulldown menu again, then by clicking ''patches'' on the menu.&lt;br /&gt;
&lt;br /&gt;
At this point there will be two boxes.&lt;br /&gt;
&lt;br /&gt;
The top box will be titled ''Custom System Patches''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfcustompatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
The bottom box will be titled ''Recommended System Patches for Netgate pfSense®	software version 2.6.0''.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:pfreccomendedpatches.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bottom box is akin to hotfixes.  These patches are made by contributors to pfSense code and are things that will be patched in the next release of pfSense.  But have been deemed important enough to backport to 2.6.0 via a hotfix.&lt;br /&gt;
&lt;br /&gt;
To install any of these recommended system patches, you just need to click the blue ''Apply'' button, they can be safely reverted by clicking the blue ''Revert'' button.  The blue ''View'' button allows you to view the patch code, and the blue ''Debug'' button confirms if the patch applies cleanly or not.&lt;br /&gt;
&lt;br /&gt;
One patch in this section might be considered especially useful called ''Disable pf counter data preservation to temporarily work around latency when reloading large rulesets'', this patch will prevent network drops during any firewall rule reloads.&lt;br /&gt;
&lt;br /&gt;
Now on to user contributed patches.&lt;br /&gt;
&lt;br /&gt;
The top box mentioned earlier titled ''Custom System Patches''  works similar once a patch has been added, it will have the same blue buttons, and the same failsafe's notably patches that dont apply cleanly will not have the option to be applied.&lt;br /&gt;
&lt;br /&gt;
To add one of the patches linked to in this wiki or to make your own patch, there is a green button labelled ''Add New Patch''.&lt;br /&gt;
&lt;br /&gt;
Patches will be added here on the next revision of this page.&lt;/div&gt;</summary>
		<author><name>Chrysalis</name></author>	</entry>

	</feed>