private void initiateHandshake(NextFilter nextFilter, IoSession session) throws SSLException { LOGGER.debug("{} : Starting the first handshake", getSessionInfo(session)); SslHandler sslHandler = getSslSessionHandler(session); try { synchronized (sslHandler) { sslHandler.handshake(nextFilter); } sslHandler.flushScheduledEvents(); } catch (SSLException se) { sslHandler.release(); throw se; } }
private void initiateHandshake(NextFilter nextFilter, IoSession session) throws SSLException { LOGGER.debug("{} : Starting the first handshake", getSessionInfo(session)); SslHandler sslHandler = getSslSessionHandler(session); try { synchronized (sslHandler) { sslHandler.handshake(nextFilter); } sslHandler.flushScheduledEvents(); } catch (SSLException se) { sslHandler.release(); throw se; } }
/** * Stops the SSL session by sending TLS <tt>close_notify</tt> message to * initiate TLS closure. * * @param session the {@link IoSession} to initiate TLS closure * @return The Future for the initiated closure * @throws SSLException if failed to initiate TLS closure */ public WriteFuture stopSsl(IoSession session) throws SSLException { SslHandler sslHandler = getSslSessionHandler(session); NextFilter nextFilter = (NextFilter) session.getAttribute(NEXT_FILTER); WriteFuture future; try { synchronized (sslHandler) { future = initiateClosure(nextFilter, session); } sslHandler.flushScheduledEvents(); } catch (SSLException se) { sslHandler.release(); throw se; } return future; }
/** * Stops the SSL session by sending TLS <tt>close_notify</tt> message to * initiate TLS closure. * * @param session the {@link IoSession} to initiate TLS closure * @return The Future for the initiated closure * @throws SSLException if failed to initiate TLS closure */ public WriteFuture stopSsl(IoSession session) throws SSLException { SslHandler sslHandler = getSslSessionHandler(session); NextFilter nextFilter = (NextFilter) session.getAttribute(NEXT_FILTER); WriteFuture future; try { synchronized (sslHandler) { future = initiateClosure(nextFilter, session); } sslHandler.flushScheduledEvents(); } catch (SSLException se) { sslHandler.release(); throw se; } return future; }
sslHandler.release(); throw se;
private WriteFuture initiateClosure(NextFilter nextFilter, IoSession session) throws SSLException { SslHandler sslHandler = getSslSessionHandler(session); WriteFuture future = null; // if already shut down try { synchronized(sslHandler) { if (!sslHandler.closeOutbound()) { return DefaultWriteFuture.newNotWrittenFuture(session, new IllegalStateException( "SSL session is shut down already.")); } // there might be data to write out here? future = sslHandler.writeNetBuffer(nextFilter); if (future == null) { future = DefaultWriteFuture.newWrittenFuture(session); } if (sslHandler.isInboundDone()) { sslHandler.destroy(); } } // Inform that the session is not any more secured session.getFilterChain().fireEvent(SslEvent.UNSECURED); } catch (SSLException se) { sslHandler.release(); throw se; } return future; }
sslHandler.release(); throw se; } finally {
sslHandler.release(); throw se;
sslHandler.release(); throw se;
sslHandler.release(); throw se; } finally {
} else { sslHandler.release();
} else { sslHandler.release();
sslHandler.release(); throw se;
sslHandler.release(); throw se;