[pve-devel] [PATCH pve-manager v2 2/2] firewall: properly detect changes when ip / cidr is used in rule
Mira Limbeck
m.limbeck at proxmox.com
Tue Jan 16 15:57:29 CET 2024
On 1/16/24 15:30, Stefan Hanreich wrote:
> With the current implementation using queryDelay, this means that the
> change event for the input never completes. This in turn leads to
> the input panel never changing its dirty status. By using the
> beforequery event we can simply cancel the query without resorting to
> the queryDelay hack.
>
> Reported-By: Mira Limbeck <m.limbeck at proxmox.com>
> Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
> ---
> www/manager6/form/IPRefSelector.js | 13 +++----------
> 1 file changed, 3 insertions(+), 10 deletions(-)
>
> diff --git a/www/manager6/form/IPRefSelector.js b/www/manager6/form/IPRefSelector.js
> index 7e5eea63a..d41cde5f5 100644
> --- a/www/manager6/form/IPRefSelector.js
> +++ b/www/manager6/form/IPRefSelector.js
> @@ -56,15 +56,6 @@ Ext.define('PVE.form.IPRefSelector', {
> },
> });
>
> - var disable_query_for_ips = function(f, value) {
> - if (value === null ||
> - value.match(/^\d/)) { // IP address starts with \d
> - f.queryDelay = 9999999999; // hack: disable with long delay
> - } else {
> - f.queryDelay = 10;
> - }
> - };
> -
> var columns = [];
>
> if (!me.ref_type) {
> @@ -109,7 +100,9 @@ Ext.define('PVE.form.IPRefSelector', {
> },
> });
>
> - me.on('change', disable_query_for_ips);
> + me.on('beforequery', function(queryPlan) {
> + return !(queryPlan.query === null || queryPlan.query.match(/^\d/));
> + });
>
> me.callParent();
> },
Tested this with ~900 ipsets and ~1000 aliases.
Did not notice any worse delay or issues with this patch applied.
Tested-by: Mira Limbeck <m.limbeck at proxmox.com>
Reviewed-by: Mira Limbeck <m.limbeck at proxmox.com>
More information about the pve-devel
mailing list