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:
parent
785dc1ed7f
commit
661f047523
|
@ -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()
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue