@@ -76,9 +76,6 @@ final class QUICTestHarness {
7676
7777 let clientInstance : QUICProtocol . Instance
7878 let serverInstance : QUICProtocol . Instance
79-
80- let clientBridge : BridgeDatagramProtocol . Instance
81- let serverBridge : BridgeDatagramProtocol . Instance
8279 }
8380 var state : QUICHarnessState ? = nil
8481
@@ -141,7 +138,8 @@ final class QUICTestHarness {
141138 serverDrops: DatagramDrops ? = nil ,
142139 timeout: TimeInterval = 5.0 ,
143140 clientOptions: ProtocolOptions < QUICProtocol > = QUICProtocol . options ( ) ,
144- serverOptions: ProtocolOptions < QUICProtocol > = QUICProtocol . options ( )
141+ serverOptions: ProtocolOptions < QUICProtocol > = QUICProtocol . options ( ) ,
142+ bridgeObserveFirstByteHandler: BridgeObserveFirstByteHandler = nil
145143 ) throws ( NetworkError) {
146144 var clientConnected = false
147145 var serverConnected = false
@@ -168,9 +166,9 @@ final class QUICTestHarness {
168166 clientOptions. setProtocolInstance ( clientReference)
169167 clientParameters. defaultStack. transport = . quic( clientOptions)
170168
171- let clientBridgeInstance = BridgeDatagramProtocol . Instance ( context: self . context)
172- let clientBridge = clientBridgeInstance. reference
169+ let clientBridge = BridgeDatagramProtocol . instance ( context: self . context)
173170 let clientBridgeOptions = BridgeDatagramProtocol . options ( )
171+ clientBridgeOptions. observeFirstByteHandler = bridgeObserveFirstByteHandler
174172 clientBridgeOptions. setProtocolInstance ( clientBridge)
175173 clientBridgeOptions. linkDelay = clientLinkDelay
176174 clientBridgeOptions. datagramDrops = clientDrops
@@ -196,9 +194,9 @@ final class QUICTestHarness {
196194 serverOptions. setProtocolInstance ( serverReference)
197195 serverParameters. defaultStack. transport = . quic( serverOptions)
198196
199- let serverBridgeInstance = BridgeDatagramProtocol . Instance ( context: self . context)
200- let serverBridge = serverBridgeInstance. reference
197+ let serverBridge = BridgeDatagramProtocol . instance ( context: self . context)
201198 let serverBridgeOptions = BridgeDatagramProtocol . options ( )
199+ serverBridgeOptions. observeFirstByteHandler = bridgeObserveFirstByteHandler
202200 serverBridgeOptions. setProtocolInstance ( serverBridge)
203201 serverBridgeOptions. linkDelay = serverLinkDelay
204202 serverBridgeOptions. datagramDrops = serverDrops
@@ -297,9 +295,7 @@ final class QUICTestHarness {
297295 clientReference: clientReference,
298296 serverReference: serverReference,
299297 clientInstance: clientInstance,
300- serverInstance: serverInstance,
301- clientBridge: clientBridgeInstance,
302- serverBridge: serverBridgeInstance
298+ serverInstance: serverInstance
303299 )
304300
305301 clientHarness. waitForError { error in
@@ -550,18 +546,6 @@ final class QUICTestHarness {
550546 wait ( for: [ stopCompleteExpectation] , timeout: 5.0 )
551547 }
552548
553- // Installs a callback on the client and server bridge that fires passing the raw first byte to the
554- // caller for a short header packet. Used to detect a spin bit passing between the client and server.
555- func observeFirstByteForOutboundShortHeaderPacket( handler: @escaping ( _ firstByte: UInt8 ) -> Void ) {
556- guard let state else { return }
557- let observe : ( ( UInt8 ) -> Void ) = { firstByte in
558- guard ( firstByte & 0xC0 ) == 0x40 else { return }
559- handler ( firstByte)
560- }
561- state. clientBridge. observeFirstByte = observe
562- state. serverBridge. observeFirstByte = observe
563- }
564-
565549 func echoDataOnStream(
566550 dataGenerator: TestDataGenerator ,
567551 streamIndex: Int ,
@@ -933,6 +917,7 @@ final class QUICTestHarness {
933917 extraServerCIDs: [ ( QUICConnectionID , QUICStatelessResetToken ) ] = . init( ) ,
934918 afterHandshake: ( ( QUICTestHarness ) -> Void ) ? = nil , // Block to run after handshake is complete
935919 afterData: ( ( QUICTestHarness ) -> Void ) ? = nil , // Block to run after handshake is complete
920+ bridgeObserveFirstByteHandler: BridgeObserveFirstByteHandler = nil
936921 ) {
937922 // Start with the handshake
938923 Logger . test. debug ( " Test phase: Handshake " )
@@ -952,7 +937,8 @@ final class QUICTestHarness {
952937 serverDrops: serverDrops,
953938 timeout: timeout,
954939 clientOptions: clientOptions,
955- serverOptions: serverOptions
940+ serverOptions: serverOptions,
941+ bridgeObserveFirstByteHandler: bridgeObserveFirstByteHandler
956942 )
957943 } catch {
958944 if expectHandshakeError == nil {
0 commit comments