[HTTP1Connection] Option to ignore unclean ssl shutdown errors (#432)

- a new `RequestOptions` struct was created, that can be used to set request specific options. It is required by the `HTTPExecutableRequest`
- Added support for `ignoreUncleanSSLShutdown` in the `HTTPRequestStateMachine` and the `HTTP1ConnectionStateMachine`. In http/2 `ignoreUncleanSSLShutdown` is always off.
This commit is contained in:
Fabian Fett
2021-09-21 10:04:17 +02:00
committed by GitHub
parent b25943adad
commit 64fbfdaeda
20 changed files with 219 additions and 89 deletions
@@ -24,7 +24,7 @@ final class HTTP2ClientRequestHandler: ChannelDuplexHandler {
private let eventLoop: EventLoop
private var state: HTTPRequestStateMachine = .init(isChannelWritable: false) {
private var state: HTTPRequestStateMachine = .init(isChannelWritable: false, ignoreUncleanSSLShutdown: false) {
willSet {
self.eventLoop.assertInEventLoop()
}
@@ -35,7 +35,7 @@ final class HTTP2ClientRequestHandler: ChannelDuplexHandler {
private var request: HTTPExecutableRequest? {
didSet {
if let newRequest = self.request, let idleReadTimeout = newRequest.idleReadTimeout {
if let newRequest = self.request, let idleReadTimeout = newRequest.requestOptions.idleReadTimeout {
self.idleReadTimeoutStateMachine = .init(timeAmount: idleReadTimeout)
} else {
self.idleReadTimeoutStateMachine = nil