From bc16f9e880a91a9432283012a348b9ac85301c2e Mon Sep 17 00:00:00 2001
From: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com>
Date: Wed, 21 Jan 2026 11:58:54 +0100
Subject: [PATCH 1/4] Update TryCreateExtendedHeaderType to check multiple
flags
---
src/Shared/INodePacket.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Shared/INodePacket.cs b/src/Shared/INodePacket.cs
index 541a266d1b9..1152a256382 100644
--- a/src/Shared/INodePacket.cs
+++ b/src/Shared/INodePacket.cs
@@ -329,7 +329,7 @@ internal static class NodePacketTypeExtensions
/// True if extended header flag was set, false otherwise.
public static bool TryCreateExtendedHeaderType(HandshakeOptions handshakeOptions, NodePacketType type, out byte extendedheader)
{
- if (Handshake.IsHandshakeOptionEnabled(handshakeOptions, HandshakeOptions.TaskHost))
+ if (Handshake.IsHandshakeOptionEnabled(handshakeOptions, HandshakeOptions.NET | HandshakeOptions.TaskHost) || Handshake.IsHandshakeOptionEnabled(handshakeOptions, HandshakeOptions.CLR4 | HandshakeOptions.TaskHost))
{
extendedheader = (byte)((byte)type | ExtendedHeaderFlag);
return true;
From 3426d9990ef8c2039f6e9a65592f49b271403e55 Mon Sep 17 00:00:00 2001
From: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com>
Date: Wed, 21 Jan 2026 12:03:14 +0100
Subject: [PATCH 2/4] Clarify extended header support conditions
Refactor TryCreateExtendedHeaderType to clarify conditions for extended header support.
---
src/Shared/INodePacket.cs | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/Shared/INodePacket.cs b/src/Shared/INodePacket.cs
index 1152a256382..fc13106fd96 100644
--- a/src/Shared/INodePacket.cs
+++ b/src/Shared/INodePacket.cs
@@ -329,7 +329,9 @@ internal static class NodePacketTypeExtensions
/// True if extended header flag was set, false otherwise.
public static bool TryCreateExtendedHeaderType(HandshakeOptions handshakeOptions, NodePacketType type, out byte extendedheader)
{
- if (Handshake.IsHandshakeOptionEnabled(handshakeOptions, HandshakeOptions.NET | HandshakeOptions.TaskHost) || Handshake.IsHandshakeOptionEnabled(handshakeOptions, HandshakeOptions.CLR4 | HandshakeOptions.TaskHost))
+ // Extended headers are supported by .NET Core+ and CLR4 task hosts, but not CLR2.
+ if (handshakeOptions.HasFlag(HandshakeOptions.TaskHost)
+ && (handshakeOptions.HasFlag(HandshakeOptions.NET) || handshakeOptions.HasFlag(HandshakeOptions.CLR4)))
{
extendedheader = (byte)((byte)type | ExtendedHeaderFlag);
return true;
From ea441f6ab7e716d83c30a2a260c2c74dc3c4382e Mon Sep 17 00:00:00 2001
From: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com>
Date: Wed, 21 Jan 2026 13:03:06 +0100
Subject: [PATCH 3/4] Update src/Shared/INodePacket.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
src/Shared/INodePacket.cs | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/Shared/INodePacket.cs b/src/Shared/INodePacket.cs
index fc13106fd96..086e1415646 100644
--- a/src/Shared/INodePacket.cs
+++ b/src/Shared/INodePacket.cs
@@ -329,9 +329,10 @@ internal static class NodePacketTypeExtensions
/// True if extended header flag was set, false otherwise.
public static bool TryCreateExtendedHeaderType(HandshakeOptions handshakeOptions, NodePacketType type, out byte extendedheader)
{
- // Extended headers are supported by .NET Core+ and CLR4 task hosts, but not CLR2.
- if (handshakeOptions.HasFlag(HandshakeOptions.TaskHost)
- && (handshakeOptions.HasFlag(HandshakeOptions.NET) || handshakeOptions.HasFlag(HandshakeOptions.CLR4)))
+ // Extended headers are supported by all task hosts except CLR2. CLR4 is represented
+ // by the absence of both CLR2 and NET flags; NET covers .NET Core and later.
+ if (handshakeOptions.HasFlag(HandshakeOptions.TaskHost)
+ && !handshakeOptions.HasFlag(HandshakeOptions.CLR2))
{
extendedheader = (byte)((byte)type | ExtendedHeaderFlag);
return true;
From 9a217912a51f37f1fc252e8ed8b6501f6967a077 Mon Sep 17 00:00:00 2001
From: YuliiaKovalova
Date: Wed, 21 Jan 2026 14:14:07 +0100
Subject: [PATCH 4/4] fix the comment
---
src/Shared/INodePacket.cs | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/Shared/INodePacket.cs b/src/Shared/INodePacket.cs
index 086e1415646..f455dc9aae5 100644
--- a/src/Shared/INodePacket.cs
+++ b/src/Shared/INodePacket.cs
@@ -329,10 +329,9 @@ internal static class NodePacketTypeExtensions
/// True if extended header flag was set, false otherwise.
public static bool TryCreateExtendedHeaderType(HandshakeOptions handshakeOptions, NodePacketType type, out byte extendedheader)
{
- // Extended headers are supported by all task hosts except CLR2. CLR4 is represented
- // by the absence of both CLR2 and NET flags; NET covers .NET Core and later.
- if (handshakeOptions.HasFlag(HandshakeOptions.TaskHost)
- && !handshakeOptions.HasFlag(HandshakeOptions.CLR2))
+ // Extended headers are supported by all task hosts except CLR2.
+ if (Handshake.IsHandshakeOptionEnabled(handshakeOptions, HandshakeOptions.TaskHost)
+ && !Handshake.IsHandshakeOptionEnabled(handshakeOptions, HandshakeOptions.CLR2))
{
extendedheader = (byte)((byte)type | ExtendedHeaderFlag);
return true;