浏览代码

[core] [Network] Handle non ipaddress converting caused by some unknown

Karlatemp 2 年之前
父节点
当前提交
ddfd22e541
共有 1 个文件被更改,包括 10 次插入2 次删除
  1. 10 2
      mirai-core/src/commonMain/kotlin/network/protocol/packet/login/StatSvc.kt

+ 10 - 2
mirai-core/src/commonMain/kotlin/network/protocol/packet/login/StatSvc.kt

@@ -168,8 +168,16 @@ internal class StatSvc {
         ) = impl("online", client, 1L or 2 or 4, client.onlineStatus, regPushReason) {
             if (client.bot.configuration.protocol == BotConfiguration.MiraiProtocol.ANDROID_PHONE) {
                 client.bot.components[ServerList].run {
-                    uOldSSOIp = lastDisconnectedIP.toIpV4Long()
-                    uNewSSOIp = lastConnectedIP.toIpV4Long()
+                    kotlin.runCatching {
+                        uOldSSOIp = lastDisconnectedIP.toIpV4Long()
+                        uNewSSOIp = lastConnectedIP.toIpV4Long()
+                    }.onFailure { err ->
+                        client.bot.network.logger.warning({
+                            "Exception when converting ipaddress to long: ld=${lastDisconnectedIP}, lc=${lastConnectedIP}"
+                        }, err)
+                        uNewSSOIp = 0
+                        uOldSSOIp = 0
+                    }
                 }
             } else {
                 uOldSSOIp = 0