@Override public boolean isCompressed() { return ioSession.getFilterChain().contains(COMPRESSION_FILTER_NAME); }
@Override public boolean isSecure() { return ioSession.getFilterChain().contains(TLS_FILTER_NAME); }
@Override public void startCompression() { CompressionFilter ioFilter = (CompressionFilter) ioSession.getFilterChain().get(COMPRESSION_FILTER_NAME); ioFilter.setCompressOutbound(true); }
@Override public void addCompression() { IoFilterChain chain = ioSession.getFilterChain(); String baseFilter = EXECUTOR_FILTER_NAME; if (chain.contains(TLS_FILTER_NAME)) { baseFilter = TLS_FILTER_NAME; } chain.addAfter(baseFilter, COMPRESSION_FILTER_NAME, new CompressionFilter(true, false, CompressionFilter.COMPRESSION_MAX)); }
/** {@inheritDoc} */ @Override public void exceptionCaught(IoSession session, Throwable cause) throws Exception { log.debug("Filter chain: {}", session.getFilterChain()); String sessionId = (String) session.getAttribute(RTMPConnection.RTMP_SESSION_ID); if (log.isDebugEnabled()) { log.warn("Exception caught on session: {} id: {}", session.getId(), sessionId, cause); } if (cause instanceof IOException) { // Mina states that the connection will be automatically closed when an IOException is caught log.debug("IOException caught on {}", sessionId); } else { log.debug("Non-IOException caught on {}", sessionId); if (session.containsAttribute("FORCED_CLOSE")) { log.info("Close already forced on this session: {}", session.getId()); } else { // set flag session.setAttribute("FORCED_CLOSE", Boolean.TRUE); //session.suspendRead(); cleanSession(session, true); } } }
if (log.isTraceEnabled()) { log.trace("messageReceived session: {} message: {}", session, message); log.trace("Filter chain: {}", session.getFilterChain());
if (log.isDebugEnabled()) { log.debug("Is downstream: " + isClient); session.getFilterChain().addFirst("protocol", new ProtocolCodecFilter(codecFactory)); session.getFilterChain().addFirst("proxy", new ProxyFilter(isClient ? "client" : "server")); String fileName = System.currentTimeMillis() + '_' + forward.getHostName() + '_' + forward.getPort() + '_' + (isClient ? "DOWNSTREAM" : "UPSTREAM"); File headersFile = loader.getResource(dumpTo + fileName + ".cap").getFile(); header.flip(); headers.write(header.buf()); session.getFilterChain().addFirst("dump", new NetworkDumpFilter(headers, raw)); } finally { if (headersFos != null) {
(ExecutorFilter) session.getFilterChain().get(EXECUTOR_FILTER_NAME); if (executorFilter != null) { Executor executor = executorFilter.getExecutor();
@Override public void sessionCreated(IoSession session) throws Exception { // Use our own codec to support AAAA testing session.getFilterChain().addFirst("codec", new ProtocolCodecFilter(new TestDnsProtocolUdpCodecFactory())); } @Override
log.debug("Session created RTMP"); if (!session.getFilterChain().contains("rtmpeFilter")) { session.getFilterChain().addFirst("rtmpeFilter", new RTMPEIoFilter());
public void startTLS(boolean clientMode, boolean directTLS) throws Exception { final EncryptionArtifactFactory factory = new EncryptionArtifactFactory( configuration ); final SslFilter filter; if ( clientMode ) { filter = factory.createClientModeSslFilter(); } else { filter = factory.createServerModeSslFilter(); } ioSession.getFilterChain().addBefore(EXECUTOR_FILTER_NAME, TLS_FILTER_NAME, filter); if (!directTLS) { ioSession.setAttribute( SslFilter.DISABLE_ENCRYPTION_ONCE, Boolean.TRUE ); } if ( !clientMode && !directTLS ) { // Indicate the client that the server is ready to negotiate TLS deliverRawText( "<proceed xmlns=\"urn:ietf:params:xml:ns:xmpp-tls\"/>" ); } }
IoFilterChain chain = session.getFilterChain(); session.getFilterChain().addAfter("sslFilter", "rtmpsFilter", new RTMPSIoFilter());
session.getFilterChain().addAfter("rtmpsFilter", "protocolFilter", new ProtocolCodecFilter(new RTMPMinaCodecFactory()));
session.getFilterChain().addAfter("rtmpeFilter", "protocolFilter", new ProtocolCodecFilter(new RTMPMinaCodecFactory()));
@Override public void sessionCreated(IoSession session) throws Exception { // Use our own codec to support AAAA testing session.getFilterChain().addFirst("codec", new ProtocolCodecFilter(new TestDnsProtocolUdpCodecFactory())); } @Override
/** * @see IoSession#getFilterChain() */ public IoFilterChain getFilterChain() { return wrappedSession.getFilterChain(); }
private static void notifyIdleSession0(IoSession session, long currentTime, long idleTime, IdleStatus status, long lastIoTime) { if ((idleTime > 0) && (lastIoTime != 0) && (currentTime - lastIoTime >= idleTime)) { session.getFilterChain().fireSessionIdle(status); } }
/** * Flushes the buffered data. * * @param session the session where buffer will be written */ public void flush(IoSession session) { try { internalFlush(session.getFilterChain().getNextFilter(this), session, buffersMap.get(session)); } catch (Exception e) { session.getFilterChain().fireExceptionCaught(e); } }
@Override public void activate ( final IoSession session ) { final DataMessageFilter filter = new DataMessageFilter ( new ObjectSerializationProtocol ( this.classLoader ) ); session.getFilterChain ().addLast ( "dataMessage", filter ); }
private void readHandle(DatagramChannel handle) throws Exception { IoBuffer readBuf = IoBuffer.allocate(getSessionConfig().getReadBufferSize()); SocketAddress remoteAddress = receive(handle, readBuf); if (remoteAddress != null) { IoSession session = newSessionWithoutLock(remoteAddress, localAddress(handle)); readBuf.flip(); if (!session.isReadSuspended()) { session.getFilterChain().fireMessageReceived(readBuf); } } }