You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2017/05/09 20:03:11 UTC
[20/50] httpcomponents-core git commit: Added sndBufSize / rcvBufSize
parameters to IOReactorConfig
Added sndBufSize / rcvBufSize parameters to IOReactorConfig
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpcore/branches/4.2.x@1444384 13f79535-47bb-0310-9956-ffa450edef68
Project: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/commit/5640ae9b
Tree: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/tree/5640ae9b
Diff: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/diff/5640ae9b
Branch: refs/heads/4.2.x
Commit: 5640ae9b4917bfd77eaebbb01e48e4b8fc561612
Parents: b54b88a
Author: Oleg Kalnichevski <ol...@apache.org>
Authored: Sat Feb 9 16:07:50 2013 +0000
Committer: Oleg Kalnichevski <ol...@apache.org>
Committed: Sat Feb 9 16:07:50 2013 +0000
----------------------------------------------------------------------
.../reactor/AbstractMultiworkerIOReactor.java | 11 +++-
.../nio/reactor/DefaultListeningIOReactor.java | 5 +-
.../http/impl/nio/reactor/IOReactorConfig.java | 53 +++++++++++++++++++-
3 files changed, 65 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/5640ae9b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java
----------------------------------------------------------------------
diff --git a/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java
index 38c4e08..62519c0 100644
--- a/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java
+++ b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java
@@ -523,8 +523,17 @@ public abstract class AbstractMultiworkerIOReactor implements IOReactor {
*/
protected void prepareSocket(final Socket socket) throws IOException {
socket.setTcpNoDelay(this.config.isTcpNoDelay());
- socket.setSoTimeout(this.config.getSoTimeout());
socket.setKeepAlive(this.config.isSoKeepalive());
+ socket.setReuseAddress(this.config.isSoReuseAddress());
+ if (this.config.getSoTimeout() > 0) {
+ socket.setSoTimeout(this.config.getSoTimeout());
+ }
+ if (this.config.getSndBufSize() > 0) {
+ socket.setSendBufferSize(this.config.getSndBufSize());
+ }
+ if (this.config.getRcvBufSize() > 0) {
+ socket.setReceiveBufferSize(this.config.getRcvBufSize());
+ }
int linger = this.config.getSoLinger();
if (linger >= 0) {
socket.setSoLinger(linger > 0, linger);
http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/5640ae9b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultListeningIOReactor.java
----------------------------------------------------------------------
diff --git a/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultListeningIOReactor.java b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultListeningIOReactor.java
index 2a24c98..b1a2ac6 100644
--- a/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultListeningIOReactor.java
+++ b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultListeningIOReactor.java
@@ -28,6 +28,7 @@
package org.apache.http.impl.nio.reactor;
import java.io.IOException;
+import java.net.ServerSocket;
import java.net.SocketAddress;
import java.nio.channels.CancelledKeyException;
import java.nio.channels.SelectionKey;
@@ -231,8 +232,10 @@ public class DefaultListeningIOReactor extends AbstractMultiworkerIOReactor
throw new IOReactorException("Failure opening server socket", ex);
}
try {
+ ServerSocket socket = serverChannel.socket();
+ socket.setReuseAddress(this.config.isSoReuseAddress());
serverChannel.configureBlocking(false);
- serverChannel.socket().bind(address);
+ socket.bind(address);
} catch (IOException ex) {
closeChannel(serverChannel);
request.failed(ex);
http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/5640ae9b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java
----------------------------------------------------------------------
diff --git a/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java
index 562257e..f555b39 100644
--- a/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java
+++ b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java
@@ -41,7 +41,7 @@ import org.apache.http.annotation.NotThreadSafe;
public final class IOReactorConfig implements Cloneable {
private static final int AVAIL_PROCS = Runtime.getRuntime().availableProcessors();
-
+
private long selectInterval;
private long shutdownGracePeriod;
private boolean interestOpQueued;
@@ -52,6 +52,8 @@ public final class IOReactorConfig implements Cloneable {
private boolean soKeepAlive;
private boolean tcpNoDelay;
private int connectTimeout;
+ private int sndBufSize;
+ private int rcvBufSize;
public IOReactorConfig() {
super();
@@ -285,6 +287,50 @@ public final class IOReactorConfig implements Cloneable {
this.connectTimeout = connectTimeout;
}
+ /**
+ * Determines the default value of the {@link SocketOptions#SO_SNDBUF} parameter
+ * for newly created sockets.
+ * <p/>
+ * Default: <code>0</code> (system default)
+ *
+ * @see SocketOptions#SO_SNDBUF
+ */
+ public int getSndBufSize() {
+ return sndBufSize;
+ }
+
+ /**
+ * Defines the default value of the {@link SocketOptions#SO_SNDBUF} parameter
+ * for newly created sockets.
+ *
+ * @see SocketOptions#SO_SNDBUF
+ */
+ public void setSndBufSize(int sndBufSize) {
+ this.sndBufSize = sndBufSize;
+ }
+
+ /**
+ * Determines the default value of the {@link SocketOptions#SO_RCVBUF} parameter
+ * for newly created sockets.
+ * <p/>
+ * Default: <code>0</code> (system default)
+ *
+ * @see SocketOptions#SO_RCVBUF
+ */
+ public int getRcvBufSize() {
+ return rcvBufSize;
+ }
+
+ /**
+ * Defines the default value of the {@link SocketOptions#SO_RCVBUF} parameter
+ * for newly created sockets.
+ *
+ * @see SocketOptions#SO_RCVBUF
+ */
+ public void setRcvBufSize(int rcvBufSize) {
+ this.rcvBufSize = rcvBufSize;
+ }
+
@Override
protected IOReactorConfig clone() throws CloneNotSupportedException {
return (IOReactorConfig) super.clone();
@@ -302,7 +348,10 @@ public final class IOReactorConfig implements Cloneable {
.append(", soLinger=").append(this.soLinger)
.append(", soKeepAlive=").append(this.soKeepAlive)
.append(", tcpNoDelay=").append(this.tcpNoDelay)
- .append(", connectTimeout=").append(this.connectTimeout).append("]");
+ .append(", connectTimeout=").append(this.connectTimeout)
+ .append(", sndBufSize=").append(this.sndBufSize)
+ .append(", rcvBufSize=").append(this.rcvBufSize)
+ .append("]");
return builder.toString();
}