From 9ac330045d68dd0f705c8cd9463b30ea900e269f 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: Tue, 3 Dec 2024 11:54:25 +0100
Subject: [PATCH] [stable2407] Backport #6603 (#6668)

Backport #6603 into `stable2407` from lexnv.

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: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
---
 prdoc/pr_6603.prdoc                              | 16 ++++++++++++++++
 .../src/litep2p/shim/request_response/mod.rs     |  7 ++-----
 2 files changed, 18 insertions(+), 5 deletions(-)
 create mode 100644 prdoc/pr_6603.prdoc

diff --git a/prdoc/pr_6603.prdoc b/prdoc/pr_6603.prdoc
new file mode 100644
index 00000000000..20c5e7294df
--- /dev/null
+++ b/prdoc/pr_6603.prdoc
@@ -0,0 +1,16 @@
+# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0
+# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json
+
+title: Always provide main protocol name in litep2p responses
+
+doc:
+  - audience: [ Node Dev, Node Operator ]
+    description: |
+      This PR aligns litep2p behavior with libp2p. Previously, litep2p network backend
+      would provide the actual negotiated request-response protocol that produced a
+      response message. After this PR, only the main protocol name is reported to other
+      subsystems.
+
+crates:
+  - name: sc-network
+    bump: patch
diff --git a/substrate/client/network/src/litep2p/shim/request_response/mod.rs b/substrate/client/network/src/litep2p/shim/request_response/mod.rs
index 82d01c01236..68e071cf702 100644
--- a/substrate/client/network/src/litep2p/shim/request_response/mod.rs
+++ b/substrate/client/network/src/litep2p/shim/request_response/mod.rs
@@ -318,7 +318,7 @@ impl RequestResponseProtocol {
 		&mut self,
 		peer: litep2p::PeerId,
 		request_id: RequestId,
-		fallback: Option<litep2p::ProtocolName>,
+		_fallback: Option<litep2p::ProtocolName>,
 		response: Vec<u8>,
 	) {
 		match self.pending_inbound_responses.remove(&request_id) {
@@ -335,10 +335,7 @@ impl RequestResponseProtocol {
 					response.len(),
 				);
 
-				let _ = tx.send(Ok((
-					response,
-					fallback.map_or_else(|| self.protocol.clone(), Into::into),
-				)));
+				let _ = tx.send(Ok((response, self.protocol.clone())));
 				self.metrics.register_outbound_request_success(started.elapsed());
 			},
 		}
-- 
GitLab