diff --git a/src/main/java/com/corundumstudio/socketio/SocketIORouter.java b/src/main/java/com/corundumstudio/socketio/SocketIORouter.java index 382f0f4..0114ffb 100644 --- a/src/main/java/com/corundumstudio/socketio/SocketIORouter.java +++ b/src/main/java/com/corundumstudio/socketio/SocketIORouter.java @@ -39,8 +39,6 @@ public class SocketIORouter { private final Logger log = LoggerFactory.getLogger(getClass()); - private int destroyBufferSize; - private int closeTimeoutSecs = 25; private int heartbeatThreadPoolSize; private int heartbeatTimeout; @@ -70,18 +68,8 @@ public class SocketIORouter { heartbeatHandler = new HeartbeatHandler(heartbeatThreadPoolSize, heartbeatTimeout, heartbeatInterval); PacketListener packetListener = new PacketListener(socketIOHandler, this, heartbeatHandler); xhrPollingTransport = new XHRPollingTransport(protocol, decoder, encoder, this, packetListener); - xhrPollingTransport.setDestroyBufferSize(destroyBufferSize); } - /** - * POST request content size limit - * - * @param destroyBufferSize - limit in bytes - */ - public void setDestroyBufferSize(int destroyBufferSize) { - this.destroyBufferSize = destroyBufferSize; - } - /** * Heartbeat interval * diff --git a/src/main/java/com/corundumstudio/socketio/SocketIOServer.java b/src/main/java/com/corundumstudio/socketio/SocketIOServer.java index f22e166..640cd75 100644 --- a/src/main/java/com/corundumstudio/socketio/SocketIOServer.java +++ b/src/main/java/com/corundumstudio/socketio/SocketIOServer.java @@ -28,7 +28,6 @@ public class SocketIOServer { private final Logger log = LoggerFactory.getLogger(getClass()); - private int destroyBufferSize = 10000000; private int heartbeatThreadPoolSize = 4; private int heartbeatTimeout = 15; private int heartbeatInterval = 20; @@ -53,7 +52,6 @@ public class SocketIOServer { bootstrap = new ServerBootstrap(factory); socketIORouter = new SocketIORouter(listener, objectMapper); - socketIORouter.setDestroyBufferSize(destroyBufferSize); socketIORouter.setHeartbeatInterval(heartbeatInterval); socketIORouter.setHeartbeatTimeout(heartbeatTimeout); socketIORouter.setHeartbeatThreadPoolSize(heartbeatThreadPoolSize); @@ -76,15 +74,6 @@ public class SocketIOServer { this.bossThreadPoolSize = bossThreadPoolSize; } - /** - * POST request content size limit - * - * @param destroyBufferSize - limit in bytes - */ - public void setDestroyBufferSize(int destroyBufferSize) { - this.destroyBufferSize = destroyBufferSize; - } - /** * Heartbeat interval * diff --git a/src/main/java/com/corundumstudio/socketio/transport/XHRPollingTransport.java b/src/main/java/com/corundumstudio/socketio/transport/XHRPollingTransport.java index d9130f5..8fb5fc5 100644 --- a/src/main/java/com/corundumstudio/socketio/transport/XHRPollingTransport.java +++ b/src/main/java/com/corundumstudio/socketio/transport/XHRPollingTransport.java @@ -49,7 +49,6 @@ public class XHRPollingTransport implements SocketIOTransport { private final Map sessionId2Client = new ConcurrentHashMap(); - private int destroyBufferSize; private final SocketIORouter socketIORouter; private final PacketListener packetListener; private final Decoder decoder; @@ -65,10 +64,6 @@ public class XHRPollingTransport implements SocketIOTransport { this.packetListener = packetListener; } - public void setDestroyBufferSize(int destroyBufferSize) { - this.destroyBufferSize = destroyBufferSize; - } - public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { Object msg = e.getMessage(); if (msg instanceof HttpRequest) { @@ -85,13 +80,6 @@ public class XHRPollingTransport implements SocketIOTransport { } private void onPost(QueryStringDecoder queryDecoder, Channel channel, HttpRequest msg) { - if (msg.getContent().readableBytes() >= destroyBufferSize) { - log.warn("Too big POST request: {} bytes, from ip: {}. Channel closed!", - new Object[] {msg.getContent().readableBytes(), channel.getRemoteAddress()}); - channel.close(); - return; - } - String path = queryDecoder.getPath(); if (!path.startsWith(pollingPath)) { log.warn("Wrong POST request path: {}, from ip: {}. Channel closed!", @@ -151,6 +139,9 @@ public class XHRPollingTransport implements SocketIOTransport { client = createClient(sessionId); } client.doReconnect(channel, msg); + if (queryDecoder.getParameters().containsKey("disconnect")) { + disconnect(sessionId); + } } else { sendError(channel, msg, sessionId); } @@ -181,7 +172,6 @@ public class XHRPollingTransport implements SocketIOTransport { } private void sendHttpResponse(Channel channel, HttpRequest req, HttpResponse res) { - // Generate an error page if response status code is not OK (200). if (res.getStatus().getCode() != 200) { res.setContent( ChannelBuffers.copiedBuffer( @@ -189,7 +179,6 @@ public class XHRPollingTransport implements SocketIOTransport { HttpHeaders.setContentLength(res, res.getContent().readableBytes()); } - // Send the response and close the connection if necessary. ChannelFuture f = channel.write(res); if (!HttpHeaders.isKeepAlive(req) || res.getStatus().getCode() != 200) { f.addListener(ChannelFutureListener.CLOSE);