1
0
Fork 1
mirror of https://gitlab.com/mangadex-pub/mangadex_at_home.git synced 2024-01-19 02:48:37 +00:00

Update SNI changes

This commit is contained in:
carbotaniuman 2021-05-27 15:37:00 -05:00
parent 785dc1ed7f
commit 661f047523
3 changed files with 10 additions and 5 deletions

View file

@ -52,8 +52,8 @@ import mdnet.logging.info
import mdnet.logging.trace import mdnet.logging.trace
import mdnet.logging.warn import mdnet.logging.warn
import mdnet.settings.DevSettings import mdnet.settings.DevSettings
import mdnet.settings.RemoteSettings
import mdnet.settings.ServerSettings import mdnet.settings.ServerSettings
import mdnet.settings.TlsCert
import org.http4k.core.HttpHandler import org.http4k.core.HttpHandler
import org.http4k.server.Http4kChannelHandler import org.http4k.server.Http4kChannelHandler
import org.http4k.server.Http4kServer import org.http4k.server.Http4kServer
@ -140,7 +140,7 @@ sealed class NettyTransport(threads: Int) {
} }
class Netty( class Netty(
private val tls: TlsCert, private val remoteSettings: RemoteSettings,
private val serverSettings: ServerSettings, private val serverSettings: ServerSettings,
private val devSettings: DevSettings, private val devSettings: DevSettings,
private val statistics: Statistics private val statistics: Statistics
@ -160,6 +160,7 @@ class Netty(
override fun start(): Http4kServer = apply { override fun start(): Http4kServer = apply {
LOGGER.info { "Starting Netty!" } LOGGER.info { "Starting Netty!" }
val tls = remoteSettings.tls!!
val certs = getX509Certs(tls.certificate) val certs = getX509Certs(tls.certificate)
val sslContext = SslContextBuilder val sslContext = SslContextBuilder
@ -180,10 +181,14 @@ class Netty(
ch.pipeline().addLast( ch.pipeline().addLast(
"dropHostname", "dropHostname",
object : ChannelInboundHandlerAdapter() { object : ChannelInboundHandlerAdapter() {
private val hostToTest = remoteSettings.url.authority.let {
it.substring(0, it.lastIndexOf(":"))
}
override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) { override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) {
if (evt is SniCompletionEvent) { if (evt is SniCompletionEvent) {
if (!devSettings.disableSniCheck) { if (!devSettings.disableSniCheck) {
if (!evt.hostname().endsWith("mangadex.network") && if (!evt.hostname().endsWith(hostToTest) &&
!evt.hostname().endsWith("localhost") !evt.hostname().endsWith("localhost")
) { ) {
ctx.close() ctx.close()

View file

@ -147,7 +147,7 @@ class ImageServer(
} }
respondWithImage(tee, contentLength, contentType, lastModified, false) respondWithImage(tee, contentLength, contentType, lastModified, false)
} else { } 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) respondWithImage(mdResponse.body.stream, contentLength, contentType, lastModified, false)
} }
} }

View file

@ -144,7 +144,7 @@ fun getServer(
GeoIpMetricsFilterBuilder(metricsSettings.enableGeoip, metricsSettings.geoipLicenseKey, registry).build() 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) private val LOGGER = LoggerFactory.getLogger(ImageServer::class.java)