Skip to content

Commit bfbc6bc

Browse files
committed
[core] Fix selector for CONNECTING state
1 parent eb89b63 commit bfbc6bc

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

mirai-core/src/commonMain/kotlin/network/handler/selector/AbstractKeepAliveNetworkHandlerSelector.kt

+13-13
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,7 @@ internal abstract class AbstractKeepAliveNetworkHandlerSelector<H : NetworkHandl
9696
* 只有 [NetworkException] 是期望的异常 (根据 [NetworkException.recoverable] 决定是否可挽救). 任何其他异常都是未期望的, 将会被原封不动地抛出.
9797
*/
9898
@Throws(
99-
NetworkException::class,
100-
MaxAttemptsReachedException::class,
101-
CancellationException::class,
102-
Throwable::class
99+
NetworkException::class, MaxAttemptsReachedException::class, CancellationException::class, Throwable::class
103100
)
104101
suspend fun run(): H {
105102
return try {
@@ -127,9 +124,8 @@ internal abstract class AbstractKeepAliveNetworkHandlerSelector<H : NetworkHandl
127124
// == false 表示第一次登录失败, 且此失败没必要重试
128125
logIfEnabled { "[FIRST LOGIN ERROR] current = $current" }
129126
logIfEnabled { "[FIRST LOGIN ERROR] current.state = ${current.state}" }
130-
throw current.getLastFailure()
131-
?: exceptionCollector.getLast()
132-
?: error("Failed to login with unknown reason.")
127+
throw current.getLastFailure() ?: exceptionCollector.getLast()
128+
?: error("Failed to login with unknown reason.")
133129
}
134130
}
135131

@@ -201,13 +197,18 @@ internal abstract class AbstractKeepAliveNetworkHandlerSelector<H : NetworkHandl
201197
attempted += 1
202198
runImpl() // will create new instance (see the `else` branch).
203199
}
204-
NetworkHandler.State.CONNECTING,
205-
NetworkHandler.State.INITIALIZED,
206-
-> {
200+
NetworkHandler.State.INITIALIZED -> {
207201
if (!current.resumeInstanceCatchingException()) {
208202
attempted += 1
203+
return runImpl()
209204
}
210-
return runImpl()
205+
logIfEnabled { "RETURN" }
206+
return current
207+
}
208+
NetworkHandler.State.CONNECTING -> {
209+
logIfEnabled { "RETURN" }
210+
// can send packet
211+
return current
211212
}
212213
NetworkHandler.State.LOADING -> {
213214
logIfEnabled { "RETURN" }
@@ -243,8 +244,7 @@ internal abstract class AbstractKeepAliveNetworkHandlerSelector<H : NetworkHandl
243244
companion object {
244245
var DEFAULT_MAX_ATTEMPTS by atomic(
245246
systemProp(
246-
"mirai.network.handler.selector.max.attempts",
247-
Long.MAX_VALUE
247+
"mirai.network.handler.selector.max.attempts", Long.MAX_VALUE
248248
).coerceIn(1..Int.MAX_VALUE.toLongUnsigned()).toInt()
249249
)
250250

0 commit comments

Comments
 (0)