diff --git a/Sources/SwiftNetwork/QUIC/QUICConnection.swift b/Sources/SwiftNetwork/QUIC/QUICConnection.swift index 58a2922..1913009 100644 --- a/Sources/SwiftNetwork/QUIC/QUICConnection.swift +++ b/Sources/SwiftNetwork/QUIC/QUICConnection.swift @@ -2307,7 +2307,7 @@ public final class QUICConnection: ManyToManyApplicationStreamProtocol, ) guard - packet.destinationConnectionID == path.dcid + packet.destinationConnectionID == path.scid || validateDCIDFromInboundPacket(packet, on: path) else { return false diff --git a/Sources/SwiftNetwork/QUIC/QUICConnectionID.swift b/Sources/SwiftNetwork/QUIC/QUICConnectionID.swift index cbc9766..dcfe864 100644 --- a/Sources/SwiftNetwork/QUIC/QUICConnectionID.swift +++ b/Sources/SwiftNetwork/QUIC/QUICConnectionID.swift @@ -168,6 +168,14 @@ public struct QUICConnectionID: Sendable, Equatable, CustomStringConvertible { guard lhs.actualLength == rhs.actualLength else { return false } + #if !NETWORK_EMBEDDED + return lhs.connectionIDStorage.span.withUnsafeBytes { left in + rhs.connectionIDStorage.span.withUnsafeBytes { right in + memcmp(left.baseAddress!, right.baseAddress!, 20) + } + } == 0 + #else + // Fall back to comparing by index let lhsSpan = lhs._connectionID.span let rhsSpan = rhs._connectionID.span for i in 0..