diff --git a/rbcs-common/src/test/kotlin/net/woggioni/rbcs/common/CidrTest.kt b/rbcs-common/src/test/kotlin/net/woggioni/rbcs/common/CidrTest.kt new file mode 100644 index 0000000..5ab6d87 --- /dev/null +++ b/rbcs-common/src/test/kotlin/net/woggioni/rbcs/common/CidrTest.kt @@ -0,0 +1,17 @@ +package net.woggioni.rbcs.common + +import java.net.InetAddress +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.Test + +class CidrTest { + class CidrTest { + @Test + fun test() { + val cidr = Cidr.from("2a02:4780:12:368b::1/128") + Assertions.assertTrue { + cidr.contains(InetAddress.ofLiteral("2a02:4780:12:368b::1")) + } + } + } +} \ No newline at end of file diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/ProxyProtocolHandler.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/ProxyProtocolHandler.kt index 63b9f4c..69029a3 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/ProxyProtocolHandler.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/ProxyProtocolHandler.kt @@ -24,7 +24,14 @@ class ProxyProtocolHandler(private val trustedProxyIPs : List) : SimpleCha val sourceAddress = ctx.channel().remoteAddress() if (sourceAddress is InetSocketAddress && trustedProxyIPs.isEmpty() || - trustedProxyIPs.any { it.contains((sourceAddress as InetSocketAddress).address) }) { + trustedProxyIPs.any { it.contains((sourceAddress as InetSocketAddress).address) }.also { + if(log.isTraceEnabled) { + log.trace { + "Received proxied request from $sourceAddress which is not a trusted proxy address, " + + "the proxy server address will be used instead" + } + } + }) { val proxiedClientAddress = InetSocketAddress( InetAddress.ofLiteral(msg.sourceAddress()), msg.sourcePort()