package io.undertow.server.protocol.proxy;

import io.undertow.connector.ByteBufferPool;
import io.undertow.protocols.ssl.UndertowXnioSsl;
import io.undertow.server.OpenListener;
import org.xnio.ChannelListener;
import org.xnio.OptionMap;
import org.xnio.StreamConnection;

Open listener for proxied connections
Author:Stuart Douglas
/** * Open listener for proxied connections * * @author Stuart Douglas */
public class ProxyProtocolOpenListener implements ChannelListener<StreamConnection> { private final OpenListener openListener; private final UndertowXnioSsl ssl; private final ByteBufferPool bufferPool; private final OptionMap sslOptionMap; public ProxyProtocolOpenListener(OpenListener openListener, UndertowXnioSsl ssl, ByteBufferPool bufferPool, OptionMap sslOptionMap) { this.openListener = openListener; this.ssl = ssl; this.bufferPool = bufferPool; this.sslOptionMap = sslOptionMap; } @Override public void handleEvent(StreamConnection streamConnection) { streamConnection.getSourceChannel().setReadListener(new ProxyProtocolReadListener(streamConnection, openListener, ssl, bufferPool, sslOptionMap)); streamConnection.getSourceChannel().wakeupReads(); } }