diff --git a/Package.swift b/Package.swift index 3b7b9de..5dca7d2 100644 --- a/Package.swift +++ b/Package.swift @@ -101,7 +101,7 @@ let package = Package( .package(url: "https://github.com/apple/swift-certificates.git", from: "1.19.3"), .package(url: "https://github.com/apple/swift-log.git", from: "1.14.0"), .package(url: "https://github.com/apple/swift-nio.git", from: "2.103.0"), - .package(url: "https://github.com/apple/swift-nio-quic.git", .upToNextMinor(from: "0.4.0")), + .package(url: "https://github.com/apple/swift-nio-quic.git", .upToNextMinor(from: "0.6.0")), .package(url: "https://github.com/apple/swift-nio-quic-helpers.git", .upToNextMinor(from: "0.1.0")), .package(url: "https://github.com/apple/swift-nio-http3.git", .upToNextMinor(from: "0.3.0")), .package(url: "https://github.com/apple/swift-nio-ssl.git", from: "2.37.0"), diff --git a/Sources/NIOHTTPServer/Configuration/HTTP3/HTTP3+QUICConfiguration.swift b/Sources/NIOHTTPServer/Configuration/HTTP3/HTTP3+QUICConfiguration.swift index 545bb61..1f20487 100644 --- a/Sources/NIOHTTPServer/Configuration/HTTP3/HTTP3+QUICConfiguration.swift +++ b/Sources/NIOHTTPServer/Configuration/HTTP3/HTTP3+QUICConfiguration.swift @@ -207,13 +207,11 @@ extension NIOHTTPServerConfiguration.HTTP3 { } @available(anyAppleOS 27.0, *) -extension NIOQUIC.QUICConfiguration.QLogConfiguration { +extension NIOQUIC.QLogConfiguration { fileprivate init(_ configuration: NIOHTTPServerConfiguration.HTTP3.QUICConfiguration.QLogConfiguration) { - self.init( - path: configuration.path, - topic: configuration.topic, - description: configuration.description - ) + self.init(path: configuration.path) + self.topic = configuration.topic + self.description = configuration.description } } @@ -268,25 +266,25 @@ extension NIOQUIC.QUICConfiguration { _ config: NIOHTTPServerConfiguration.HTTP3.QUICConfiguration, authenticationConfiguration: NIOQUIC.AuthenticationConfiguration ) { - self = .server( + self = .forServer( // SwiftTLS currently just ignores the `serverName` sent in the ClientHello. See // https://github.com/apple/swift-nio-quic/issues/4. serverName: config.serverName, authenticationConfiguration: authenticationConfiguration, - keyExchangeGroup: .init(config.keyExchangeGroup), - applicationProtocols: ["h3"], - maxIdleTimeout: config.maxIdleTimeout, - initialMaxData: config.initialMaxData, - initialMaxStreamDataBidiLocal: config.initialMaxStreamDataBidirectionalLocal, - initialMaxStreamDataBidiRemote: config.initialMaxStreamDataBidirectionalRemote, - initialMaxStreamDataUni: config.initialMaxStreamDataUnidirectional, - initialMaxStreamsBidi: config.initialMaxStreamsBidirectional, - initialMaxStreamsUni: config.initialMaxStreamsUnidirectional, - keepAliveInterval: config.keepAliveInterval, - sendRetry: config.sendRetry, - keyLogPath: config.keyLogPath, - qLogConfiguration: config.qLogConfiguration.map { .init($0) } + applicationProtocols: ["h3"] ) + self.keyExchangeGroup = .init(config.keyExchangeGroup) + self.maxIdleTimeout = config.maxIdleTimeout + self.initialMaxData = config.initialMaxData + self.initialMaxStreamDataBidiLocal = config.initialMaxStreamDataBidirectionalLocal + self.initialMaxStreamDataBidiRemote = config.initialMaxStreamDataBidirectionalRemote + self.initialMaxStreamDataUni = config.initialMaxStreamDataUnidirectional + self.initialMaxStreamsBidi = config.initialMaxStreamsBidirectional + self.initialMaxStreamsUni = config.initialMaxStreamsUnidirectional + self.keepAliveInterval = config.keepAliveInterval + self.sendRetry = config.sendRetry + self.keyLogPath = config.keyLogPath + self.qLogConfiguration = config.qLogConfiguration.map { .init($0) } } #if UnstableHTTPDatagrams diff --git a/Tests/NIOHTTPServerTests/Utilities/Helpers.swift b/Tests/NIOHTTPServerTests/Utilities/Helpers.swift index 3a91472..b65c4da 100644 --- a/Tests/NIOHTTPServerTests/Utilities/Helpers.swift +++ b/Tests/NIOHTTPServerTests/Utilities/Helpers.swift @@ -135,11 +135,13 @@ extension QUICConfiguration { caPath: String?, maxDatagramFrameSize: Int = 65535 ) -> QUICConfiguration { - QUICConfiguration.client( + var configuration = QUICConfiguration.forClient( verificationConfiguration: .x509Certificates(trustRootsFilePath: caPath), - applicationProtocols: [NIOHTTPServer.HTTPVersion.http3.alpnIdentifier], - maxDatagramFrameSize: maxDatagramFrameSize + applicationProtocols: [NIOHTTPServer.HTTPVersion.http3.alpnIdentifier] ) + configuration.maxDatagramFrameSize = maxDatagramFrameSize + + return configuration } } #endif