Skip to content

Commit 826d24f

Browse files
committed
_isRecoverableConnectionError cleanup
1 parent 279f8f3 commit 826d24f

File tree

1 file changed

+39
-23
lines changed

1 file changed

+39
-23
lines changed

Sources/SwiftOCA/OCP.1/Ocp1Connection+Connect.swift

Lines changed: 39 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -37,38 +37,54 @@ private extension Ocp1Error {
3737
nil
3838
}
3939
}
40+
41+
var _isRecoverableConnectionError: Bool {
42+
switch self {
43+
case .missingKeepalive:
44+
fallthrough
45+
case .connectionTimeout:
46+
fallthrough
47+
case .notConnected:
48+
return true
49+
default:
50+
return false
51+
}
52+
}
53+
}
54+
55+
private extension Errno {
56+
var _isRecoverableConnectionError: Bool {
57+
switch self {
58+
case .badFileDescriptor:
59+
fallthrough
60+
case .brokenPipe:
61+
fallthrough
62+
case .socketShutdown:
63+
fallthrough
64+
case .connectionAbort:
65+
fallthrough
66+
case .connectionReset:
67+
fallthrough
68+
case .connectionRefused:
69+
return true
70+
default:
71+
return false
72+
}
73+
}
4074
}
4175

4276
private extension Error {
4377
var ocp1ConnectionState: Ocp1ConnectionState {
4478
(self as? Ocp1Error)?.connectionState ?? .connectionFailed
4579
}
4680

47-
var isRecoverableConnectionError: Bool {
81+
var _isRecoverableConnectionError: Bool {
4882
if let error = self as? Ocp1Error {
49-
switch error {
50-
case .missingKeepalive:
51-
fallthrough
52-
case .connectionTimeout:
53-
fallthrough
54-
case .notConnected:
55-
return true
56-
default:
57-
return false
58-
}
83+
error._isRecoverableConnectionError
5984
} else if let error = self as? Errno {
60-
switch error {
61-
case .connectionAbort:
62-
fallthrough
63-
case .connectionReset:
64-
fallthrough
65-
case .connectionRefused:
66-
return true
67-
default:
68-
return false
69-
}
85+
error._isRecoverableConnectionError
7086
} else {
71-
return false
87+
false
7288
}
7389
}
7490
}
@@ -348,7 +364,7 @@ extension Ocp1Connection {
348364
}
349365

350366
func onMonitorError(_ error: Error) async throws {
351-
guard error.isRecoverableConnectionError else { return }
367+
guard error._isRecoverableConnectionError else { return }
352368

353369
logger.trace("expiring connection with policy \(_reconnectionPolicy), error \(error)")
354370

0 commit comments

Comments
 (0)