From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id EF7ED1FF0F5 for ; Thu, 15 Oct 2026 07:45:49 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 231F2213D2; Thu, 15 Oct 2026 07:45:48 +0200 (CEST) From: Arthur Bied-Charreton To: pve-devel@lists.proxmox.com Subject: [PATCH pve-firewall v3] api: aliases: make cidr optional on update and preserve comment Date: Thu, 15 Oct 2026 07:45:34 +0200 Message-ID: <20261015054534.25978-1-a.bied-charreton@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1792043144167 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.968 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: S74IULV4FNXJMQK5S5B7NYGGYUHOOIT2 X-Message-ID-Hash: S74IULV4FNXJMQK5S5B7NYGGYUHOOIT2 X-MailFrom: a.bied-charreton@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Updating an alias required passing its CIDR, and dropped the existing comment unless it was passed again. Clients therefore had to fetch the alias first just to send back the currently configured CIDR and comment. Make 'cidr' optional in PUT .../firewall/aliases/{name} and keep the existing CIDR and comment if none is passed. Passing an empty comment still clears it. Signed-off-by: Arthur Bied-Charreton --- src/PVE/API2/Firewall/Aliases.pm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/PVE/API2/Firewall/Aliases.pm b/src/PVE/API2/Firewall/Aliases.pm index 4f6960d..02835b3 100644 --- a/src/PVE/API2/Firewall/Aliases.pm +++ b/src/PVE/API2/Firewall/Aliases.pm @@ -215,7 +215,7 @@ sub register_update_alias { $properties->{name} = $api_properties->{name}; $properties->{rename} = $api_properties->{rename}; - $properties->{cidr} = $api_properties->{cidr}; + $properties->{cidr} = { $api_properties->{cidr}->%*, optional => 1 }; $properties->{comment} = $api_properties->{comment}; $properties->{digest} = get_standard_option('pve-config-digest'); @@ -251,8 +251,11 @@ sub register_update_alias { raise_param_exc({ name => "no such alias" }) if !$aliases->{$name}; - my $data = { name => $param->{name}, cidr => $param->{cidr} }; - $data->{comment} = $param->{comment} if $param->{comment}; + my $data = { + name => $param->{name}, + cidr => $param->{cidr} // $aliases->{$name}->{cidr}, + comment => $param->{comment} // $aliases->{$name}->{comment}, + }; $aliases->{$name} = $data; -- 2.47.3