From 661f047523aef453e6146f4426cbab414114a8c3 Mon Sep 17 00:00:00 2001 From: carbotaniuman <41451839+carbotaniuman@users.noreply.github.com> Date: Thu, 27 May 2021 15:37:00 -0500 Subject: [PATCH] Update SNI changes --- src/main/kotlin/mdnet/netty/ApplicationNetty.kt | 11 ++++++++--- src/main/kotlin/mdnet/server/ImageHandler.kt | 2 +- src/main/kotlin/mdnet/server/ImageServer.kt | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/mdnet/netty/ApplicationNetty.kt b/src/main/kotlin/mdnet/netty/ApplicationNetty.kt index 081d1e3..016084e 100644 --- a/src/main/kotlin/mdnet/netty/ApplicationNetty.kt +++ b/src/main/kotlin/mdnet/netty/ApplicationNetty.kt @@ -52,8 +52,8 @@ import mdnet.logging.info import mdnet.logging.trace import mdnet.logging.warn import mdnet.settings.DevSettings +import mdnet.settings.RemoteSettings import mdnet.settings.ServerSettings -import mdnet.settings.TlsCert import org.http4k.core.HttpHandler import org.http4k.server.Http4kChannelHandler import org.http4k.server.Http4kServer @@ -140,7 +140,7 @@ sealed class NettyTransport(threads: Int) { } class Netty( - private val tls: TlsCert, + private val remoteSettings: RemoteSettings, private val serverSettings: ServerSettings, private val devSettings: DevSettings, private val statistics: Statistics @@ -160,6 +160,7 @@ class Netty( override fun start(): Http4kServer = apply { LOGGER.info { "Starting Netty!" } + val tls = remoteSettings.tls!! val certs = getX509Certs(tls.certificate) val sslContext = SslContextBuilder @@ -180,10 +181,14 @@ class Netty( ch.pipeline().addLast( "dropHostname", object : ChannelInboundHandlerAdapter() { + private val hostToTest = remoteSettings.url.authority.let { + it.substring(0, it.lastIndexOf(":")) + } + override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) { if (evt is SniCompletionEvent) { if (!devSettings.disableSniCheck) { - if (!evt.hostname().endsWith("mangadex.network") && + if (!evt.hostname().endsWith(hostToTest) && !evt.hostname().endsWith("localhost") ) { ctx.close() diff --git a/src/main/kotlin/mdnet/server/ImageHandler.kt b/src/main/kotlin/mdnet/server/ImageHandler.kt index ec45fa1..de6a785 100644 --- a/src/main/kotlin/mdnet/server/ImageHandler.kt +++ b/src/main/kotlin/mdnet/server/ImageHandler.kt @@ -147,7 +147,7 @@ class ImageServer( } respondWithImage(tee, contentLength, contentType, lastModified, false) } else { - LOGGER.info { "Request for $sanitizedUri is being served due to write errors" } + LOGGER.info { "Request for $sanitizedUri is being served as the cache is full" } respondWithImage(mdResponse.body.stream, contentLength, contentType, lastModified, false) } } diff --git a/src/main/kotlin/mdnet/server/ImageServer.kt b/src/main/kotlin/mdnet/server/ImageServer.kt index 6671b2f..586405f 100644 --- a/src/main/kotlin/mdnet/server/ImageServer.kt +++ b/src/main/kotlin/mdnet/server/ImageServer.kt @@ -144,7 +144,7 @@ fun getServer( GeoIpMetricsFilterBuilder(metricsSettings.enableGeoip, metricsSettings.geoipLicenseKey, registry).build() ) ) - .asServer(Netty(remoteSettings.tls!!, serverSettings, devSettings, statistics)) + .asServer(Netty(remoteSettings, serverSettings, devSettings, statistics)) } private val LOGGER = LoggerFactory.getLogger(ImageServer::class.java)