From ec842078a2fba249f2921ce3ece60dae6e77449c Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 24 Aug 2021 16:18:34 -0500 Subject: [PATCH 1/2] Issue #6661 - Make ServerConnector socket options setting optional --- .../eclipse/jetty/server/ServerConnector.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/ServerConnector.java b/jetty-server/src/main/java/org/eclipse/jetty/server/ServerConnector.java index 25592a2260d0..8375c898f5d9 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/ServerConnector.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/ServerConnector.java @@ -19,6 +19,7 @@ import java.net.ServerSocket; import java.net.Socket; import java.net.SocketException; +import java.net.SocketOption; import java.net.StandardSocketOptions; import java.nio.channels.Channel; import java.nio.channels.SelectableChannel; @@ -332,10 +333,10 @@ protected ServerSocketChannel openAcceptChannel() throws IOException { InetSocketAddress bindAddress = getHost() == null ? new InetSocketAddress(getPort()) : new InetSocketAddress(getHost(), getPort()); serverChannel = ServerSocketChannel.open(); + setSocketOption(serverChannel, StandardSocketOptions.SO_REUSEADDR, getReuseAddress()); + setSocketOption(serverChannel, StandardSocketOptions.SO_REUSEPORT, isReusePort()); try { - serverChannel.setOption(StandardSocketOptions.SO_REUSEADDR, getReuseAddress()); - serverChannel.setOption(StandardSocketOptions.SO_REUSEPORT, isReusePort()); serverChannel.bind(bindAddress, getAcceptQueueSize()); } catch (Throwable e) @@ -348,6 +349,18 @@ protected ServerSocketChannel openAcceptChannel() throws IOException return serverChannel; } + private void setSocketOption(ServerSocketChannel channel, SocketOption name, T value) + { + try + { + channel.setOption(name, value); + } + catch (Throwable t) + { + LOG.warn("Unable to set socket option {} to {}", name, value, t); + } + } + @Override public void close() { From 54edcefd66b334cc0d3725d7295567407dedb1fc Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 24 Aug 2021 16:45:06 -0500 Subject: [PATCH 2/2] Issue #6661 - Make ServerConnector socket options setting optional --- .../main/java/org/eclipse/jetty/io/ClientConnector.java | 2 +- .../java/org/eclipse/jetty/server/ServerConnector.java | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/ClientConnector.java b/jetty-io/src/main/java/org/eclipse/jetty/io/ClientConnector.java index 414db0623366..c62310d84a81 100644 --- a/jetty-io/src/main/java/org/eclipse/jetty/io/ClientConnector.java +++ b/jetty-io/src/main/java/org/eclipse/jetty/io/ClientConnector.java @@ -486,7 +486,7 @@ private void setSocketOption(SocketChannel channel, SocketOption option, catch (Throwable x) { if (LOG.isDebugEnabled()) - LOG.debug("Could not configure {} to {} on {}", option, value, channel); + LOG.debug("Could not configure {} to {} on {}", option, value, channel, x); } } diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/ServerConnector.java b/jetty-server/src/main/java/org/eclipse/jetty/server/ServerConnector.java index 8375c898f5d9..4468c21fe02d 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/ServerConnector.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/ServerConnector.java @@ -349,15 +349,16 @@ protected ServerSocketChannel openAcceptChannel() throws IOException return serverChannel; } - private void setSocketOption(ServerSocketChannel channel, SocketOption name, T value) + private void setSocketOption(ServerSocketChannel channel, SocketOption option, T value) { try { - channel.setOption(name, value); + channel.setOption(option, value); } - catch (Throwable t) + catch (Throwable x) { - LOG.warn("Unable to set socket option {} to {}", name, value, t); + if (LOG.isDebugEnabled()) + LOG.debug("Could not configure {} to {} on {}", option, value, channel, x); } }