Skip to content

Commit a6ca288

Browse files
authoredOct 1, 2021
[HTTPConnectionPool] StateMachine has explicit function for HTTP1 connection close (#448)
1 parent 2bd8885 commit a6ca288

File tree

4 files changed

+10
-10
lines changed

4 files changed

+10
-10
lines changed
 

‎Sources/AsyncHTTPClient/ConnectionPool/HTTPConnectionPool.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ extension HTTPConnectionPool: HTTP1ConnectionDelegate {
456456
"ahc-http-version": "http/1.1",
457457
])
458458
self.modifyStateAndRunActions {
459-
$0.connectionClosed(connection.id)
459+
$0.http1ConnectionClosed(connection.id)
460460
}
461461
}
462462

‎Sources/AsyncHTTPClient/ConnectionPool/State Machine/HTTPConnectionPool+HTTP1StateMachine.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ extension HTTPConnectionPool {
214214
}
215215

216216
/// A connection has been unexpectedly closed
217-
mutating func connectionClosed(_ connectionID: Connection.ID) -> Action {
217+
mutating func http1ConnectionClosed(_ connectionID: Connection.ID) -> Action {
218218
guard let (index, context) = self.connections.failConnection(connectionID) else {
219219
// When a connection close is initiated by the connection pool, the connection will
220220
// still report its close to the state machine. In those cases we must ignore the

‎Sources/AsyncHTTPClient/ConnectionPool/State Machine/HTTPConnectionPool+StateMachine.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,10 @@ extension HTTPConnectionPool {
157157
}
158158

159159
/// A connection has been closed
160-
mutating func connectionClosed(_ connectionID: Connection.ID) -> Action {
160+
mutating func http1ConnectionClosed(_ connectionID: Connection.ID) -> Action {
161161
switch self.state {
162162
case .http1(var http1StateMachine):
163-
let action = http1StateMachine.connectionClosed(connectionID)
163+
let action = http1StateMachine.http1ConnectionClosed(connectionID)
164164
self.state = .http1(http1StateMachine)
165165
return action
166166
}

‎Tests/AsyncHTTPClientTests/HTTPConnectionPool+HTTP1StateTests.swift

+6-6
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ class HTTPConnectionPool_HTTP1StateMachineTests: XCTestCase {
250250
XCTAssertEqual(failAction.request, .failRequest(finalRequest, HTTPClientError.alreadyShutdown, cancelTimeout: false))
251251

252252
// 5. close open connection
253-
let closeAction = state.connectionClosed(connectionID)
253+
let closeAction = state.http1ConnectionClosed(connectionID)
254254
XCTAssertEqual(closeAction.connection, .cleanupConnections(.init(), isShutdown: .yes(unclean: true)))
255255
XCTAssertEqual(closeAction.request, .none)
256256
}
@@ -371,7 +371,7 @@ class HTTPConnectionPool_HTTP1StateMachineTests: XCTestCase {
371371
let doneAction = state.http1ConnectionReleased(connectionID)
372372
XCTAssertEqual(doneAction.request, .none)
373373
XCTAssertEqual(doneAction.connection, .closeConnection(connection, isShutdown: .no))
374-
XCTAssertEqual(state.connectionClosed(connectionID), .none)
374+
XCTAssertEqual(state.http1ConnectionClosed(connectionID), .none)
375375

376376
case .cancelTimeoutTimer(let connectionID):
377377
guard let expectedConnection = connections.newestParkedConnection(for: reqEventLoop) ?? connections.newestParkedConnection else {
@@ -428,7 +428,7 @@ class HTTPConnectionPool_HTTP1StateMachineTests: XCTestCase {
428428
XCTAssertEqual(connections.parked, 7)
429429
XCTAssertEqual(connections.used, 1)
430430
XCTAssertNoThrow(try connections.abortConnection(connectionToAbort.id))
431-
XCTAssertEqual(state.connectionClosed(connectionToAbort.id), .none)
431+
XCTAssertEqual(state.http1ConnectionClosed(connectionToAbort.id), .none)
432432
XCTAssertEqual(connections.parked, 7)
433433
XCTAssertEqual(connections.used, 0)
434434
}
@@ -448,7 +448,7 @@ class HTTPConnectionPool_HTTP1StateMachineTests: XCTestCase {
448448
return XCTFail("Expected to have a parked connection")
449449
}
450450
XCTAssertNoThrow(try connections.closeConnection(connectionToClose))
451-
XCTAssertEqual(state.connectionClosed(connectionToClose.id), .none)
451+
XCTAssertEqual(state.http1ConnectionClosed(connectionToClose.id), .none)
452452
XCTAssertEqual(connections.parked, 7)
453453
}
454454

@@ -499,7 +499,7 @@ class HTTPConnectionPool_HTTP1StateMachineTests: XCTestCase {
499499
while let closedConnection = connections.randomLeasedConnection() {
500500
XCTAssertNoThrow(try connections.abortConnection(closedConnection.id))
501501
XCTAssertEqual(connections.parked, 0)
502-
let action = state.connectionClosed(closedConnection.id)
502+
let action = state.http1ConnectionClosed(closedConnection.id)
503503

504504
switch action.connection {
505505
case .createConnection(let newConnectionID, on: let eventLoop):
@@ -584,7 +584,7 @@ class HTTPConnectionPool_HTTP1StateMachineTests: XCTestCase {
584584

585585
// triggered by remote peer
586586
XCTAssertNoThrow(try connections.abortConnection(connection.id))
587-
XCTAssertEqual(state.connectionClosed(connection.id), .none)
587+
XCTAssertEqual(state.http1ConnectionClosed(connection.id), .none)
588588

589589
// triggered by timer
590590
XCTAssertEqual(state.connectionIdleTimeout(connection.id), .none)

0 commit comments

Comments
 (0)
Please sign in to comment.