From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 465741FF140 for ; Fri, 27 Mar 2026 13:13:48 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id EB8BD8B44; Fri, 27 Mar 2026 13:14:08 +0100 (CET) From: Christian Ebner To: pbs-devel@lists.proxmox.com Subject: [PATCH proxmox-backup v4 8/8] fix #6716: pass node http proxy config to s3 backend Date: Fri, 27 Mar 2026 13:13:19 +0100 Message-ID: <20260327121319.628881-9-c.ebner@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260327121319.628881-1-c.ebner@proxmox.com> References: <20260327121319.628881-1-c.ebner@proxmox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1774613564164 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.089 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_2 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_4 0.1 random spam to be learned in bayes 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: 5M2I6ZCGXL2W6FIAFFF4RHY3JSYID5ZB X-Message-ID-Hash: 5M2I6ZCGXL2W6FIAFFF4RHY3JSYID5ZB X-MailFrom: c.ebner@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 Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Read the current node proxy config and pass it to the s3 client on instantiation. The given proxy config is then used for the rest of the s3 client instance lifetime. Signed-off-by: Christian Ebner Reviewed-by: Fabian Grünbichler --- pbs-datastore/src/datastore.rs | 4 ++-- src/api2/admin/s3.rs | 2 +- src/api2/config/s3.rs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pbs-datastore/src/datastore.rs b/pbs-datastore/src/datastore.rs index ef378c696..36f6b0c79 100644 --- a/pbs-datastore/src/datastore.rs +++ b/pbs-datastore/src/datastore.rs @@ -433,7 +433,7 @@ impl DataStore { Some(bucket), self.name().to_owned(), Some(rate_limiter_options), - None, //FIXME read from node.cfg + pbs_config::node::node_http_proxy_config()?, ); let s3_client = S3Client::new(options)?; DatastoreBackend::S3(Arc::new(s3_client)) @@ -2659,7 +2659,7 @@ impl DataStore { Some(bucket), datastore_config.name.to_owned(), Some(rate_limiter_options), - None, // FIXME read from node.cfg + pbs_config::node::node_http_proxy_config()?, ); let s3_client = S3Client::new(options) .context("failed to create s3 client") diff --git a/src/api2/admin/s3.rs b/src/api2/admin/s3.rs index d3b3b11e6..a739909ee 100644 --- a/src/api2/admin/s3.rs +++ b/src/api2/admin/s3.rs @@ -55,7 +55,7 @@ pub async fn check( Some(bucket), store_prefix, None, - None, // FIXME read from node.cfg once regular datastore operations do as well + pbs_config::node::node_http_proxy_config()?, ); let test_object_key = diff --git a/src/api2/config/s3.rs b/src/api2/config/s3.rs index 9f1b4b5f7..e48c637d5 100644 --- a/src/api2/config/s3.rs +++ b/src/api2/config/s3.rs @@ -356,7 +356,7 @@ pub async fn list_buckets( None, empty_prefix, None, - None, // FIXME read from node.cfg once regular datastore operations do as well + pbs_config::node::node_http_proxy_config()?, ); let client = S3Client::new(options).context("client creation failed")?; let list_buckets_response = client -- 2.47.3