org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState Java Examples

The following examples show how to use org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: TestUpgradeInternalHandler.java    From Tomcat8-Source-Read with MIT License 6 votes vote down vote up
@Override
public SocketState upgradeDispatch(SocketEvent status) {
    System.out.println("Processing: " + status);
    switch (status) {
    case OPEN_READ:
        // Note: there's always an initial read event at the moment (reading should be skipped since it ends up in the internal buffer)
        break;
    case OPEN_WRITE:
        break;
    case STOP:
    case DISCONNECT:
    case ERROR:
    case TIMEOUT:
    case CONNECT_FAIL:
        return SocketState.CLOSED;
    }
    return SocketState.UPGRADED;
}
 
Example #2
Source File: AprEndpoint.java    From Tomcat8-Source-Read with MIT License 6 votes vote down vote up
@Override
protected void doRun() {
    try {
        // Process the request from this socket
        SocketState state = getHandler().process(socketWrapper, event);
        if (state == Handler.SocketState.CLOSED) {
            // Close socket and pool
            closeSocket(socketWrapper.getSocket().longValue());
        }
    } finally {
        socketWrapper = null;
        event = null;
        //return to cache
        if (running && !paused) {
            processorCache.push(this);
        }
    }
}
 
Example #3
Source File: AprEndpoint.java    From tomcatsrc with Apache License 2.0 6 votes vote down vote up
private void doRun() {
    // Process the request from this socket
    if (socket.getSocket() == null) {
        // Closed in another thread
        return;
    }
    SocketState state = handler.process(socket, status);
    if (state == Handler.SocketState.CLOSED) {
        // Close socket and pool
        closeSocket(socket.getSocket().longValue());
        socket.socket = null;
    } else if (state == Handler.SocketState.LONG) {
        socket.access();
        if (socket.async) {
            waitingRequests.add(socket);
        }
    } else if (state == Handler.SocketState.ASYNC_END) {
        socket.access();
        SocketProcessor proc = new SocketProcessor(socket,
                SocketStatus.OPEN_READ);
        getExecutor().execute(proc);
    }
}
 
Example #4
Source File: AprEndpoint.java    From Tomcat7.0.67 with Apache License 2.0 6 votes vote down vote up
private void doRun() {
    // Process the request from this socket
    if (socket.getSocket() == null) {
        // Closed in another thread
        return;
    }
    SocketState state = handler.process(socket, status);
    if (state == Handler.SocketState.CLOSED) {
        // Close socket and pool
        closeSocket(socket.getSocket().longValue());
        socket.socket = null;
    } else if (state == Handler.SocketState.LONG) {
        socket.access();
        if (socket.async) {
            waitingRequests.add(socket);
        }
    } else if (state == Handler.SocketState.ASYNC_END) {
        socket.access();
        SocketProcessor proc = new SocketProcessor(socket,
                SocketStatus.OPEN_READ);
        getExecutor().execute(proc);
    }
}
 
Example #5
Source File: WsFrameServer.java    From Tomcat8-Source-Read with MIT License 6 votes vote down vote up
SocketState notifyDataAvailable() throws IOException {
    while (isOpen()) {
        switch (getReadState()) {
        case WAITING:
            if (!changeReadState(ReadState.WAITING, ReadState.PROCESSING)) {
                continue;
            }
            try {
                return doOnDataAvailable();
            } catch (IOException e) {
                changeReadState(ReadState.CLOSING);
                throw e;
            }
        case SUSPENDING_WAIT:
            if (!changeReadState(ReadState.SUSPENDING_WAIT, ReadState.SUSPENDED)) {
                continue;
            }
            return SocketState.SUSPENDED;
        default:
            throw new IllegalStateException(
                    sm.getString("wsFrameServer.illegalReadState", getReadState()));
        }
    }

    return SocketState.CLOSED;
}
 
Example #6
Source File: AjpProcessor.java    From Tomcat8-Source-Read with MIT License 5 votes vote down vote up
@Override
protected SocketState dispatchEndRequest() {
    // Set keep alive timeout for next request if enabled
    if (keepAliveTimeout > 0) {
        socketWrapper.setReadTimeout(keepAliveTimeout);
    }
    recycle();
    return SocketState.OPEN;
}
 
Example #7
Source File: Http11Processor.java    From Tomcat8-Source-Read with MIT License 5 votes vote down vote up
@Override
protected SocketState dispatchEndRequest() {
    if (!keepAlive) {
        return SocketState.CLOSED;
    } else {
        endRequest();
        inputBuffer.nextRequest();
        outputBuffer.nextRequest();
        if (socketWrapper.isReadPending()) {
            return SocketState.LONG;
        } else {
            return SocketState.OPEN;
        }
    }
}
 
Example #8
Source File: AsyncStateMachine.java    From tomcatsrc with Apache License 2.0 5 votes vote down vote up
public synchronized SocketState asyncPostProcess() {
    if (state == AsyncState.COMPLETE_PENDING) {
        doComplete();
        return SocketState.ASYNC_END;
    } else if (state == AsyncState.DISPATCH_PENDING) {
        doDispatch();
        return SocketState.ASYNC_END;
    } else  if (state == AsyncState.STARTING) {
        state = AsyncState.STARTED;
        return SocketState.LONG;
    } else if (state == AsyncState.MUST_COMPLETE) {
        asyncCtxt.fireOnComplete();
        state = AsyncState.DISPATCHED;
        return SocketState.ASYNC_END;
    } else if (state == AsyncState.COMPLETING) {
        asyncCtxt.fireOnComplete();
        state = AsyncState.DISPATCHED;
        return SocketState.ASYNC_END;
    } else if (state == AsyncState.MUST_DISPATCH) {
        state = AsyncState.DISPATCHING;
        return SocketState.ASYNC_END;
    } else if (state == AsyncState.DISPATCHING) {
        state = AsyncState.DISPATCHED;
        return SocketState.ASYNC_END;
    } else if (state == AsyncState.STARTED) {
        // This can occur if an async listener does a dispatch to an async
        // servlet during onTimeout
        return SocketState.LONG;
    } else {
        throw new IllegalStateException(
                sm.getString("asyncStateMachine.invalidAsyncState",
                        "asyncPostProcess()", state));
    }
}
 
Example #9
Source File: AbstractProcessorLight.java    From Tomcat8-Source-Read with MIT License 5 votes vote down vote up
private SocketState checkForPipelinedData(SocketState inState, SocketWrapperBase<?> socketWrapper)
        throws IOException {
    if (inState == SocketState.OPEN) {
        // There may be pipe-lined data to read. If the data isn't
        // processed now, execution will exit this loop and call
        // release() which will recycle the processor (and input
        // buffer) deleting any pipe-lined data. To avoid this,
        // process it now.
        return service(socketWrapper);
    } else {
        return inState;
    }
}
 
Example #10
Source File: StreamProcessor.java    From Tomcat8-Source-Read with MIT License 5 votes vote down vote up
@Override
public SocketState service(SocketWrapperBase<?> socket) throws IOException {
    try {
        adapter.service(request, response);
    } catch (Exception e) {
        if (log.isDebugEnabled()) {
            log.debug(sm.getString("streamProcessor.service.error"), e);
        }
        response.setStatus(500);
        setErrorState(ErrorState.CLOSE_NOW, e);
    }

    if (!isAsync()) {
        // If this is an async request then the request ends when it has
        // been completed. The AsyncContext is responsible for calling
        // endRequest() in that case.
        endRequest();
    }

    if (getErrorState().isError()) {
        action(ActionCode.CLOSE, null);
        request.updateCounters();
        return SocketState.CLOSED;
    } else if (isAsync()) {
        return SocketState.LONG;
    } else {
        action(ActionCode.CLOSE, null);
        request.updateCounters();
        return SocketState.CLOSED;
    }
}
 
Example #11
Source File: AsyncStateMachine.java    From Tomcat8-Source-Read with MIT License 5 votes vote down vote up
public synchronized SocketState asyncPostProcess() {
    if (state == AsyncState.COMPLETE_PENDING) {
        clearNonBlockingListeners();
        state = AsyncState.COMPLETING;
        return SocketState.ASYNC_END;
    } else if (state == AsyncState.DISPATCH_PENDING) {
        clearNonBlockingListeners();
        state = AsyncState.DISPATCHING;
        return SocketState.ASYNC_END;
    } else  if (state == AsyncState.STARTING || state == AsyncState.READ_WRITE_OP) {
        state = AsyncState.STARTED;
        return SocketState.LONG;
    } else if (state == AsyncState.MUST_COMPLETE || state == AsyncState.COMPLETING) {
        asyncCtxt.fireOnComplete();
        state = AsyncState.DISPATCHED;
        return SocketState.ASYNC_END;
    } else if (state == AsyncState.MUST_DISPATCH) {
        state = AsyncState.DISPATCHING;
        return SocketState.ASYNC_END;
    } else if (state == AsyncState.DISPATCHING) {
        state = AsyncState.DISPATCHED;
        return SocketState.ASYNC_END;
    } else if (state == AsyncState.STARTED) {
        // This can occur if an async listener does a dispatch to an async
        // servlet during onTimeout
        return SocketState.LONG;
    } else {
        throw new IllegalStateException(
                sm.getString("asyncStateMachine.invalidAsyncState",
                        "asyncPostProcess()", state));
    }
}
 
Example #12
Source File: AprEndpoint.java    From Tomcat8-Source-Read with MIT License 5 votes vote down vote up
@Override
public void run() {

    synchronized (socket) {
        if (!deferAccept) {
            if (setSocketOptions(socket)) {
                getPoller().add(socket.getSocket().longValue(),
                        getConnectionTimeout(), Poll.APR_POLLIN);
            } else {
                // Close socket and pool
                getHandler().process(socket, SocketEvent.CONNECT_FAIL);
                closeSocket(socket.getSocket().longValue());
                socket = null;
            }
        } else {
            // Process the request from this socket
            if (!setSocketOptions(socket)) {
                // Close socket and pool
                getHandler().process(socket, SocketEvent.CONNECT_FAIL);
                closeSocket(socket.getSocket().longValue());
                socket = null;
                return;
            }
            // Process the request from this socket
            Handler.SocketState state = getHandler().process(socket,
                    SocketEvent.OPEN_READ);
            if (state == Handler.SocketState.CLOSED) {
                // Close socket and pool
                closeSocket(socket.getSocket().longValue());
                socket = null;
            }
        }
    }
}
 
Example #13
Source File: AprEndpoint.java    From Tomcat7.0.67 with Apache License 2.0 5 votes vote down vote up
@Override
public void run() {

    synchronized (socket) {
        if (!deferAccept) {
            if (setSocketOptions(socket.getSocket().longValue())) {
                getPoller().add(socket.getSocket().longValue(),
                        getSoTimeout(), true, false);
            } else {
                // Close socket and pool
                closeSocket(socket.getSocket().longValue());
                socket = null;
            }
        } else {
            // Process the request from this socket
            if (!setSocketOptions(socket.getSocket().longValue())) {
                // Close socket and pool
                closeSocket(socket.getSocket().longValue());
                socket = null;
                return;
            }
            // Process the request from this socket
            Handler.SocketState state = handler.process(socket,
                    SocketStatus.OPEN_READ);
            if (state == Handler.SocketState.CLOSED) {
                // Close socket and pool
                closeSocket(socket.getSocket().longValue());
                socket = null;
            } else if (state == Handler.SocketState.LONG) {
                socket.access();
                if (socket.async) {
                    waitingRequests.add(socket);
                }
            }
        }
    }
}
 
Example #14
Source File: AsyncStateMachine.java    From Tomcat7.0.67 with Apache License 2.0 5 votes vote down vote up
public synchronized SocketState asyncPostProcess() {

        // Unpause any non-container threads that may be waiting for this
        // container thread to complete this method. Note because of the syncs
        // those non-container threads won't start back up until until this
        // method exits.
        notifyAll();

        if (state == AsyncState.STARTING) {
            state = AsyncState.STARTED;
            return SocketState.LONG;
        } else if (state == AsyncState.MUST_COMPLETE) {
            asyncCtxt.fireOnComplete();
            state = AsyncState.DISPATCHED;
            return SocketState.ASYNC_END;
        } else if (state == AsyncState.COMPLETING) {
            asyncCtxt.fireOnComplete();
            state = AsyncState.DISPATCHED;
            return SocketState.ASYNC_END;
        } else if (state == AsyncState.MUST_DISPATCH) {
            state = AsyncState.DISPATCHING;
            return SocketState.ASYNC_END;
        } else if (state == AsyncState.DISPATCHING) {
            state = AsyncState.DISPATCHED;
            return SocketState.ASYNC_END;
        } else if (state == AsyncState.STARTED) {
            // This can occur if an async listener does a dispatch to an async
            // servlet during onTimeout
            return SocketState.LONG;
        } else {
            throw new IllegalStateException(
                    sm.getString("asyncStateMachine.invalidAsyncState",
                            "asyncPostProcess()", state));
        }
    }
 
Example #15
Source File: AprEndpoint.java    From tomcatsrc with Apache License 2.0 5 votes vote down vote up
@Override
public void run() {

    synchronized (socket) {
        if (!deferAccept) {
            if (setSocketOptions(socket.getSocket().longValue())) {
                getPoller().add(socket.getSocket().longValue(),
                        getSoTimeout(), true, false);
            } else {
                // Close socket and pool
                closeSocket(socket.getSocket().longValue());
                socket = null;
            }
        } else {
            // Process the request from this socket
            if (!setSocketOptions(socket.getSocket().longValue())) {
                // Close socket and pool
                closeSocket(socket.getSocket().longValue());
                socket = null;
                return;
            }
            // Process the request from this socket
            Handler.SocketState state = handler.process(socket,
                    SocketStatus.OPEN_READ);
            if (state == Handler.SocketState.CLOSED) {
                // Close socket and pool
                closeSocket(socket.getSocket().longValue());
                socket = null;
            } else if (state == Handler.SocketState.LONG) {
                socket.access();
                if (socket.async) {
                    waitingRequests.add(socket);
                }
            }
        }
    }
}
 
Example #16
Source File: Http11AprProcessor.java    From tomcatsrc with Apache License 2.0 5 votes vote down vote up
/**
 * Process pipelined HTTP requests using the specified input and output
 * streams.
 *
 * @throws IOException error during an I/O operation
 */
@Override
public SocketState event(SocketStatus status)
    throws IOException {

    RequestInfo rp = request.getRequestProcessor();

    try {
        rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);
        if (!getAdapter().event(request, response, status)) {
            setErrorState(ErrorState.CLOSE_NOW, null);
        }
    } catch (InterruptedIOException e) {
        setErrorState(ErrorState.CLOSE_NOW, e);
    } catch (Throwable t) {
        ExceptionUtils.handleThrowable(t);
        // 500 - Internal Server Error
        response.setStatus(500);
        setErrorState(ErrorState.CLOSE_NOW, t);
        getAdapter().log(request, response, 0);
        log.error(sm.getString("http11processor.request.process"), t);
    }

    rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);

    if (getErrorState().isError() || status==SocketStatus.STOP) {
        return SocketState.CLOSED;
    } else if (!comet) {
        inputBuffer.nextRequest();
        outputBuffer.nextRequest();
        return SocketState.OPEN;
    } else {
        return SocketState.LONG;
    }
}
 
Example #17
Source File: Http11AprProcessor.java    From Tomcat7.0.67 with Apache License 2.0 5 votes vote down vote up
/**
 * Process pipelined HTTP requests using the specified input and output
 * streams.
 *
 * @throws IOException error during an I/O operation
 */
@Override
public SocketState event(SocketStatus status)
    throws IOException {

    RequestInfo rp = request.getRequestProcessor();

    try {
        rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);
        if (!getAdapter().event(request, response, status)) {
            setErrorState(ErrorState.CLOSE_NOW, null);
        }
    } catch (InterruptedIOException e) {
        setErrorState(ErrorState.CLOSE_NOW, e);
    } catch (Throwable t) {
        ExceptionUtils.handleThrowable(t);
        // 500 - Internal Server Error
        response.setStatus(500);
        setErrorState(ErrorState.CLOSE_NOW, t);
        getAdapter().log(request, response, 0);
        log.error(sm.getString("http11processor.request.process"), t);
    }

    rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);

    if (getErrorState().isError() || status==SocketStatus.STOP) {
        return SocketState.CLOSED;
    } else if (!comet) {
        inputBuffer.nextRequest();
        outputBuffer.nextRequest();
        return SocketState.OPEN;
    } else {
        return SocketState.LONG;
    }
}
 
Example #18
Source File: NioEndpoint.java    From tomcatsrc with Apache License 2.0 4 votes vote down vote up
private void doRun(SelectionKey key, KeyAttachment ka) {
    try {
        int handshake = -1;

        try {
            if (key != null) {
                // For STOP there is no point trying to handshake as the
                // Poller has been stopped.
                if (socket.isHandshakeComplete() ||
                        status == SocketStatus.STOP) {
                    handshake = 0;
                } else {
                    handshake = socket.handshake(
                            key.isReadable(), key.isWritable());
                    // The handshake process reads/writes from/to the
                    // socket. status may therefore be OPEN_WRITE once
                    // the handshake completes. However, the handshake
                    // happens when the socket is opened so the status
                    // must always be OPEN_READ after it completes. It
                    // is OK to always set this as it is only used if
                    // the handshake completes.
                    status = SocketStatus.OPEN_READ;
                }
            }
        }catch ( IOException x ) {
            handshake = -1;
            if ( log.isDebugEnabled() ) log.debug("Error during SSL handshake",x);
        }catch ( CancelledKeyException ckx ) {
            handshake = -1;
        }
        if ( handshake == 0 ) {
            SocketState state = SocketState.OPEN;
            // Process the request from this socket
            if (status == null) {

                // 最关键的代码,这里将KeyAttachment(实际就是socket)交给Handler处理请求
                state = handler.process(ka, SocketStatus.OPEN_READ);
            } else {
                state = handler.process(ka, status);
            }
            if (state == SocketState.CLOSED) {
                // Close socket and pool
                close(ka, socket, key, SocketStatus.ERROR);
            }
        } else if (handshake == -1 ) {
            close(ka, socket, key, SocketStatus.DISCONNECT);
        } else {
            ka.getPoller().add(socket, handshake);
        }
    } catch (CancelledKeyException cx) {
        socket.getPoller().cancelledKey(key, null, false);
    } catch (OutOfMemoryError oom) {
        try {
            oomParachuteData = null;
            log.error("", oom);
            if (socket != null) {
                socket.getPoller().cancelledKey(key,SocketStatus.ERROR, false);
            }
            releaseCaches();
        }catch ( Throwable oomt ) {
            try {
                System.err.println(oomParachuteMsg);
                oomt.printStackTrace();
            }catch (Throwable letsHopeWeDontGetHere){
                ExceptionUtils.handleThrowable(letsHopeWeDontGetHere);
            }
        }
    } catch (VirtualMachineError vme) {
        ExceptionUtils.handleThrowable(vme);
    }catch ( Throwable t ) {
        log.error("",t);
        if (socket != null) {
            socket.getPoller().cancelledKey(key,SocketStatus.ERROR,false);
        }
    } finally {
        socket = null;
        status = null;
        //return to cache
        if (running && !paused) {
            processorCache.offer(this);
        }
    }
}
 
Example #19
Source File: JIoEndpoint.java    From tomcatsrc with Apache License 2.0 4 votes vote down vote up
@Override
public void run() {
    boolean launch = false;
    synchronized (socket) {
        try {
            SocketState state = SocketState.OPEN;

            try {
                // SSL handshake
                serverSocketFactory.handshake(socket.getSocket());
            } catch (Throwable t) {
                ExceptionUtils.handleThrowable(t);
                if (log.isDebugEnabled()) {
                    log.debug(sm.getString("endpoint.err.handshake"), t);
                }
                // Tell to close the socket
                state = SocketState.CLOSED;
            }

            if ((state != SocketState.CLOSED)) {// 非关闭状态
                if (status == null) {
                    // 调用handler对象的process方法,
                    // 这里handler对象实际上是Http11ConnectionHandler类的实例,
                    // 该对象的初始化过程是在org.apache.coyote.http11.Http11Protocol对象的构造方法中:
                    state = handler.process(socket, SocketStatus.OPEN_READ);
                } else {
                    state = handler.process(socket,status);
                }
            }
            if (state == SocketState.CLOSED) {
                // Close socket
                if (log.isTraceEnabled()) {
                    log.trace("Closing socket:"+socket);
                }
                countDownConnection();
                try {
                    socket.getSocket().close();
                } catch (IOException e) {
                    // Ignore
                }
            } else if (state == SocketState.OPEN ||
                    state == SocketState.UPGRADING ||
                    state == SocketState.UPGRADING_TOMCAT  ||
                    state == SocketState.UPGRADED){
                socket.setKeptAlive(true);
                socket.access();
                launch = true;
            } else if (state == SocketState.LONG) {
                socket.access();
                waitingRequests.add(socket);
            }
        } finally {
            if (launch) {
                try {
                    getExecutor().execute(new SocketProcessor(socket, SocketStatus.OPEN_READ));
                } catch (RejectedExecutionException x) {
                    log.warn("Socket reprocessing request was rejected for:"+socket,x);
                    try {
                        //unable to handle connection at this time
                        handler.process(socket, SocketStatus.DISCONNECT);
                    } finally {
                        countDownConnection();
                    }


                } catch (NullPointerException npe) {
                    if (running) {
                        log.error(sm.getString("endpoint.launch.fail"),
                                npe);
                    }
                }
            }
        }
    }
    socket = null;
    // Finish up this request
}
 
Example #20
Source File: UpgradeProcessor.java    From tomcatsrc with Apache License 2.0 4 votes vote down vote up
@Override
public SocketState upgradeDispatch(SocketStatus status) throws IOException {
    return null;
}
 
Example #21
Source File: AbstractProcessor.java    From Tomcat7.0.67 with Apache License 2.0 4 votes vote down vote up
@Override
public SocketState asyncPostProcess() {
    return asyncStateMachine.asyncPostProcess();
}
 
Example #22
Source File: AbstractProcessor.java    From tomcatsrc with Apache License 2.0 4 votes vote down vote up
@Override
public SocketState asyncPostProcess() {
    return asyncStateMachine.asyncPostProcess();
}
 
Example #23
Source File: UpgradeProcessor.java    From tomcatsrc with Apache License 2.0 4 votes vote down vote up
@Override
public final SocketState asyncDispatch(SocketStatus status) {
    return null;
}
 
Example #24
Source File: Http11NioProcessor.java    From Tomcat7.0.67 with Apache License 2.0 4 votes vote down vote up
/**
 * Process pipelined HTTP requests using the specified input and output
 * streams.
 *
 * @throws IOException error during an I/O operation
 */
@Override
public SocketState event(SocketStatus status) throws IOException {

    long soTimeout = endpoint.getSoTimeout();

    RequestInfo rp = request.getRequestProcessor();
    final NioEndpoint.KeyAttachment attach = (NioEndpoint.KeyAttachment)socketWrapper.getSocket().getAttachment();
    try {
        rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);
        if (!getAdapter().event(request, response, status)) {
            setErrorState(ErrorState.CLOSE_NOW, null);
        }
        if (!getErrorState().isError()) {
            if (attach != null) {
                attach.setComet(comet);
                if (comet) {
                    Integer comettimeout = (Integer) request.getAttribute(
                            org.apache.coyote.Constants.COMET_TIMEOUT_ATTR);
                    if (comettimeout != null) {
                        attach.setTimeout(comettimeout.longValue());
                    }
                } else {
                    //reset the timeout
                    if (keepAlive) {
                        attach.setTimeout(keepAliveTimeout);
                    } else {
                        attach.setTimeout(soTimeout);
                    }
                }

            }
        }
    } catch (InterruptedIOException e) {
        setErrorState(ErrorState.CLOSE_NOW, e);
    } catch (Throwable t) {
        ExceptionUtils.handleThrowable(t);
        // 500 - Internal Server Error
        response.setStatus(500);
        setErrorState(ErrorState.CLOSE_NOW, t);
        log.error(sm.getString("http11processor.request.process"), t);
        getAdapter().log(request, response, 0);
    }

    rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);

    if (getErrorState().isError() || status==SocketStatus.STOP) {
        return SocketState.CLOSED;
    } else if (!comet) {
        if (keepAlive) {
            inputBuffer.nextRequest();
            outputBuffer.nextRequest();
            return SocketState.OPEN;
        } else {
            return SocketState.CLOSED;
        }
    } else {
        return SocketState.LONG;
    }
}
 
Example #25
Source File: AbstractProcessor.java    From tomcatsrc with Apache License 2.0 4 votes vote down vote up
@Override
public final SocketState event(SocketStatus status) throws IOException {
    return null;
}
 
Example #26
Source File: AbstractProcessor.java    From Tomcat7.0.67 with Apache License 2.0 4 votes vote down vote up
@Override
public final SocketState asyncPostProcess() {
    return null;
}
 
Example #27
Source File: AbstractProcessor.java    From Tomcat7.0.67 with Apache License 2.0 4 votes vote down vote up
@Override
public final SocketState asyncDispatch(SocketStatus status) {
    return null;
}
 
Example #28
Source File: AbstractProcessor.java    From Tomcat7.0.67 with Apache License 2.0 4 votes vote down vote up
@Override
public final SocketState event(SocketStatus status) throws IOException {
    return null;
}
 
Example #29
Source File: AbstractProcessor.java    From Tomcat7.0.67 with Apache License 2.0 4 votes vote down vote up
@Override
public final SocketState process(SocketWrapper<S> socketWrapper)
        throws IOException {
    return null;
}
 
Example #30
Source File: AprEndpoint.java    From tomcatsrc with Apache License 2.0 4 votes vote down vote up
public SocketState process(SocketWrapper<Long> socket,
SocketStatus status);