From ffc3f2f1f3c53c3eeb6e1649ea1b165b824ab241 Mon Sep 17 00:00:00 2001
From: "paritytech-cmd-bot-polkadot-sdk[bot]"
 <179002856+paritytech-cmd-bot-polkadot-sdk[bot]@users.noreply.github.com>
Date: Wed, 13 Nov 2024 14:08:48 +0100
Subject: [PATCH] [stable2409] Backport #6454 (#6458)

Backport #6454 into `stable2409` from niklasad1.

See the
[documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md)
on how to use this bot.

<!--
  # To be used by other automation, do not modify:
  original-pr-number: #${pull_number}
-->

Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
---
 prdoc/pr_6454.prdoc                       |  7 +++++++
 substrate/client/rpc-servers/src/utils.rs | 13 +++++--------
 2 files changed, 12 insertions(+), 8 deletions(-)
 create mode 100644 prdoc/pr_6454.prdoc

diff --git a/prdoc/pr_6454.prdoc b/prdoc/pr_6454.prdoc
new file mode 100644
index 00000000000..3fd3e39db60
--- /dev/null
+++ b/prdoc/pr_6454.prdoc
@@ -0,0 +1,7 @@
+title: 'rpc server: fix ipv6 host filter for localhost'
+doc:
+- audience: Node Operator
+  description: "This PR fixes that ipv6 connections to localhost was faulty rejected by the host filter because only [::1] was allowed"
+crates:
+- name: sc-rpc-server
+  bump: minor
diff --git a/substrate/client/rpc-servers/src/utils.rs b/substrate/client/rpc-servers/src/utils.rs
index d9b2db7af13..51cce622429 100644
--- a/substrate/client/rpc-servers/src/utils.rs
+++ b/substrate/client/rpc-servers/src/utils.rs
@@ -193,14 +193,11 @@ pub(crate) fn host_filtering(enabled: bool, addr: SocketAddr) -> Option<HostFilt
 	if enabled {
 		// NOTE: The listening addresses are whitelisted by default.
 
-		let mut hosts = Vec::new();
-
-		if addr.is_ipv4() {
-			hosts.push(format!("localhost:{}", addr.port()));
-			hosts.push(format!("127.0.0.1:{}", addr.port()));
-		} else {
-			hosts.push(format!("[::1]:{}", addr.port()));
-		}
+		let hosts = [
+			format!("localhost:{}", addr.port()),
+			format!("127.0.0.1:{}", addr.port()),
+			format!("[::1]:{}", addr.port()),
+		];
 
 		Some(HostFilterLayer::new(hosts).expect("Valid hosts; qed"))
 	} else {
-- 
GitLab