From 177b9504007a8800f89d6fa854eab2affacfad33 Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Wed, 17 Mar 2021 18:06:38 -0300 Subject: [PATCH] code cleanup, change hs msg to a http-like format --- .../viaaas/config/VIAaaSConfig.kt | 4 ++-- .../viaaas/handler/state/HandshakeState.kt | 17 +++++++---------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/com/github/creeper123123321/viaaas/config/VIAaaSConfig.kt b/src/main/kotlin/com/github/creeper123123321/viaaas/config/VIAaaSConfig.kt index fcb145b..1c00700 100644 --- a/src/main/kotlin/com/github/creeper123123321/viaaas/config/VIAaaSConfig.kt +++ b/src/main/kotlin/com/github/creeper123123321/viaaas/config/VIAaaSConfig.kt @@ -21,7 +21,7 @@ object VIAaaSConfig : Config(File("config/viaaas.yml")) { val useStrongRandom: Boolean get() = this.getBoolean("use-strong-random", true) val blockLocalAddress: Boolean get() = this.getBoolean("block-local-address", true) val requireHostName: Boolean get() = this.getBoolean("require-host-name", true) - val defaultBackendPort: Int get() = this.getInt("default-backend-port", 25565) + val defaultBackendPort: Int? get() = this.getInt("default-backend-port", 25565).let { if (it == -1) null else it } val blockedBackAddresses: List get() = this.get( "blocked-back-addresses", @@ -40,4 +40,4 @@ object VIAaaSConfig : Config(File("config/viaaas.yml")) { val rateLimitWs: Double get() = this.getDouble("rate-limit-ws", 1.0) val rateLimitConnectionMc: Double get() = this.getDouble("rate-limit-connection-mc", 10.0) val listeningWsLimit: Int get() = this.getInt("listening-ws-limit", 16) -} \ No newline at end of file +} diff --git a/src/main/kotlin/com/github/creeper123123321/viaaas/handler/state/HandshakeState.kt b/src/main/kotlin/com/github/creeper123123321/viaaas/handler/state/HandshakeState.kt index 4b3332f..7f1f78a 100644 --- a/src/main/kotlin/com/github/creeper123123321/viaaas/handler/state/HandshakeState.kt +++ b/src/main/kotlin/com/github/creeper123123321/viaaas/handler/state/HandshakeState.kt @@ -39,17 +39,16 @@ class HandshakeState : MinecraftConnectionState { if (!RateLimit.rateLimitByIp.get((handler.remoteAddress as InetSocketAddress).address).tryAcquire()) { throw IllegalStateException("Rate-limited") } + val virtualPort = packet.port + val extraData = packet.address.substringAfter(0.toChar(), missingDelimiterValue = "") // todo + val virtualHostNoExtra = packet.address.substringBefore(0.toChar()) - val parsed = VIAaaSAddress().parse(packet.address.substringBefore(0.toChar()), VIAaaSConfig.hostName) + val parsed = VIAaaSAddress().parse(virtualHostNoExtra, VIAaaSConfig.hostName) val backProto = parsed.protocol val hadHostname = parsed.viaSuffix != null packet.address = parsed.serverAddress!! - packet.port = parsed.port ?: if (VIAaaSConfig.defaultBackendPort == -1) { - packet.port - } else { - VIAaaSConfig.defaultBackendPort - } + packet.port = parsed.port ?: VIAaaSConfig.defaultBackendPort ?: virtualPort handler.data.viaBackServerVer = backProto var frontOnline = parsed.online @@ -63,10 +62,8 @@ class HandshakeState : MinecraftConnectionState { val playerAddr = handler.data.frontHandler.remoteAddress mcLogger.info( - "HS: $playerAddr (P: ${handler.data.frontVer}, S: ${handler.data.state.state.toString().substring(0, 1)}" + - " O: ${ - frontOnline.toString().substring(0, 1) - }) -> ${packet.address}:${packet.port} (${backProto ?: "AUTO"})" + "HS: $playerAddr ${handler.data.state.state.toString().substring(0, 1)} " + + "$virtualHostNoExtra $virtualPort v${handler.data.frontVer}" ) if (!hadHostname && VIAaaSConfig.requireHostName) {