@@ -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
4276private 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