diff --git a/gbcs-server/src/main/kotlin/net/woggioni/gbcs/server/GradleBuildCacheServer.kt b/gbcs-server/src/main/kotlin/net/woggioni/gbcs/server/GradleBuildCacheServer.kt index c69b82e..e5072a4 100644 --- a/gbcs-server/src/main/kotlin/net/woggioni/gbcs/server/GradleBuildCacheServer.kt +++ b/gbcs-server/src/main/kotlin/net/woggioni/gbcs/server/GradleBuildCacheServer.kt @@ -309,8 +309,33 @@ class GradleBuildCacheServer(private val cfg: Configuration) { } val pipeline = ch.pipeline() cfg.connection.also { conn -> - pipeline.addLast(IdleStateHandler(false, conn.readTimeout.toMillis(), conn.writeTimeout.toMillis(), 0, TimeUnit.MILLISECONDS)) - pipeline.addLast(IdleStateHandler(true, conn.readIdleTimeout.toMillis(), conn.writeIdleTimeout.toMillis(), conn.idleTimeout.toMillis(), TimeUnit.MILLISECONDS)) + val readTimeout = conn.readTimeout.toMillis() + val writeTimeout = conn.writeTimeout.toMillis() + if(readTimeout > 0 || writeTimeout > 0) { + pipeline.addLast( + IdleStateHandler( + false, + readTimeout, + writeTimeout, + 0, + TimeUnit.MILLISECONDS + ) + ) + } + val readIdleTimeout = conn.readIdleTimeout.toMillis() + val writeIdleTimeout = conn.writeIdleTimeout.toMillis() + val idleTimeout = conn.idleTimeout.toMillis() + if(readIdleTimeout > 0 || writeIdleTimeout > 0 || idleTimeout > 0) { + pipeline.addLast( + IdleStateHandler( + true, + readIdleTimeout, + writeIdleTimeout, + idleTimeout, + TimeUnit.MILLISECONDS + ) + ) + } } pipeline.addLast(object : ChannelInboundHandlerAdapter() { override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) { diff --git a/gbcs-server/src/main/kotlin/net/woggioni/gbcs/server/configuration/Parser.kt b/gbcs-server/src/main/kotlin/net/woggioni/gbcs/server/configuration/Parser.kt index f38467b..4f3b651 100644 --- a/gbcs-server/src/main/kotlin/net/woggioni/gbcs/server/configuration/Parser.kt +++ b/gbcs-server/src/main/kotlin/net/woggioni/gbcs/server/configuration/Parser.kt @@ -114,9 +114,9 @@ object Parser { "connection" -> { val writeTimeout = child.renderAttribute("write-timeout") - ?.let(Duration::parse) ?: Duration.of(10, ChronoUnit.SECONDS) + ?.let(Duration::parse) ?: 0 val readTimeout = child.renderAttribute("read-timeout") - ?.let(Duration::parse) ?: Duration.of(10, ChronoUnit.SECONDS) + ?.let(Duration::parse) ?: 0 val idleTimeout = child.renderAttribute("idle-timeout") ?.let(Duration::parse) ?: Duration.of(30, ChronoUnit.SECONDS) val readIdleTimeout = child.renderAttribute("read-idle-timeout") diff --git a/gbcs-server/src/main/resources/net/woggioni/gbcs/server/schema/gbcs.xsd b/gbcs-server/src/main/resources/net/woggioni/gbcs/server/schema/gbcs.xsd index 5809ed4..cade632 100644 --- a/gbcs-server/src/main/resources/net/woggioni/gbcs/server/schema/gbcs.xsd +++ b/gbcs-server/src/main/resources/net/woggioni/gbcs/server/schema/gbcs.xsd @@ -34,8 +34,8 @@ - - + +