You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2011/12/20 11:05:17 UTC
svn commit: r1221179 - in
/james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty:
AbstractChannelPipelineFactory.java NettyServer.java
Author: norman
Date: Tue Dec 20 10:05:17 2011
New Revision: 1221179
URL: http://svn.apache.org/viewvc?rev=1221179&view=rev
Log:
Allow to set maximal current connections in NettyServer. See PROTOCOLS-57
Modified:
james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/AbstractChannelPipelineFactory.java
james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/NettyServer.java
Modified: james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/AbstractChannelPipelineFactory.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/AbstractChannelPipelineFactory.java?rev=1221179&r1=1221178&r2=1221179&view=diff
==============================================================================
--- james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/AbstractChannelPipelineFactory.java (original)
+++ james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/AbstractChannelPipelineFactory.java Tue Dec 20 10:05:17 2011
@@ -39,8 +39,8 @@ import org.jboss.netty.util.HashedWheelT
public abstract class AbstractChannelPipelineFactory implements ChannelPipelineFactory, ExternalResourceReleasable{
public final static int MAX_LINE_LENGTH = 8192;
- private final ConnectionLimitUpstreamHandler connectionLimitHandler;
- private final ConnectionPerIpLimitUpstreamHandler connectionPerIpLimitHandler;
+ protected final ConnectionLimitUpstreamHandler connectionLimitHandler;
+ protected final ConnectionPerIpLimitUpstreamHandler connectionPerIpLimitHandler;
private final HashedWheelTimer timer = new HashedWheelTimer();
private final ChannelGroupHandler groupHandler;
private final int timeout;
Modified: james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/NettyServer.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/NettyServer.java?rev=1221179&r1=1221178&r2=1221179&view=diff
==============================================================================
--- james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/NettyServer.java (original)
+++ james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/NettyServer.java Tue Dec 20 10:05:17 2011
@@ -24,7 +24,6 @@ import javax.net.ssl.SSLContext;
import org.apache.james.protocols.api.Protocol;
import org.apache.james.protocols.api.Encryption;
import org.apache.james.protocols.api.handler.ProtocolHandler;
-import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.channel.ChannelUpstreamHandler;
import org.jboss.netty.channel.group.ChannelGroup;
@@ -48,10 +47,9 @@ public class NettyServer extends Abstrac
protected final Encryption secure;
- private final ConnectionLimitUpstreamHandler connLimit = new ConnectionLimitUpstreamHandler(-1);
+ private int maxCurConnections;
-
- private final ConnectionPerIpLimitUpstreamHandler connPerIPLimit = new ConnectionPerIpLimitUpstreamHandler(-1);
+ private int maxCurConnectionsPerIP;
public NettyServer(Protocol protocol) {
this(protocol, null);
@@ -88,11 +86,13 @@ public class NettyServer extends Abstrac
}
public void setMaxConcurrentConnections(int maxCurConnections) {
- connLimit.setMaxConnections(maxCurConnections);
+ if (isBound()) throw new IllegalStateException("Server running already");
+ this.maxCurConnections = maxCurConnections;
}
public void setMaxConcurrentConnectionsPerIP(int maxCurConnectionsPerIP) {
- connPerIPLimit.setMaxConnectionsPerIp(maxCurConnectionsPerIP);
+ if (isBound()) throw new IllegalStateException("Server running already");
+ this.maxCurConnectionsPerIP = maxCurConnectionsPerIP;
}
protected ChannelUpstreamHandler createCoreHandler() {
return new BasicChannelUpstreamHandler(protocol, logger, secure);
@@ -108,16 +108,7 @@ public class NettyServer extends Abstrac
@Override
protected ChannelPipelineFactory createPipelineFactory(ChannelGroup group) {
- return new AbstractSSLAwareChannelPipelineFactory(getTimeout(), 0, getBacklog(), group, eHandler) {
-
- @Override
- public ChannelPipeline getPipeline() throws Exception {
- ChannelPipeline cp = super.getPipeline();
- cp.addFirst(HandlerConstants.CONNECTION_PER_IP_LIMIT_HANDLER, connPerIPLimit);
- cp.addFirst(HandlerConstants.CONNECTION_LIMIT_HANDLER, connLimit);
-
- return cp;
- }
+ return new AbstractSSLAwareChannelPipelineFactory(getTimeout(), maxCurConnections, maxCurConnectionsPerIP, group, eHandler) {
@Override
protected ChannelUpstreamHandler createHandler() {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org