public final class HttpServerConnection extends AbstractServerConnection
Note that the lifecycle of the server connection is tied to the underlying TCP connection. Even if the channel is upgraded the connection is not considered closed until the upgraded channel is closed.
AbstractServerConnection.ConduitState
ServerConnection.CloseListener
bufferPool, channel, closeListeners, closeSetter, current, extraBytes, originalSinkConduit, originalSourceConduit, rootHandler, undertowOptions
EMPTY
Constructor and Description |
---|
HttpServerConnection(StreamConnection channel,
ByteBufferPool bufferPool,
HttpHandler rootHandler,
OptionMap undertowOptions,
int bufferSize,
ConnectorStatisticsImpl connectorStatistics) |
Modifier and Type | Method and Description |
---|---|
protected void |
exchangeComplete(HttpServerExchange exchange)
Invoked when the exchange is complete.
|
PipeliningBufferingStreamSinkConduit |
getPipelineBuffer() |
io.undertow.server.protocol.http.HttpResponseConduit |
getResponseConduit() |
protected StreamSinkConduit |
getSinkConduit(HttpServerExchange exchange,
StreamSinkConduit conduit)
Gets the sink conduit that should be used for this request.
|
SSLSession |
getSslSession()
Gets the SSLSession of the underlying connection, or null if SSL is not in use.
|
SSLSessionInfo |
getSslSessionInfo()
Gets SSL information about the connection.
|
String |
getTransportProtocol()
Returns a string representation describing the protocol used to transmit messages
on this connection.
|
protected HttpUpgradeListener |
getUpgradeListener() |
protected boolean |
isConnectSupported() |
boolean |
isContinueResponseSupported() |
boolean |
isRequestTrailerFieldsSupported() |
protected boolean |
isUpgradeSupported() |
HttpServerExchange |
sendOutOfBandResponse(HttpServerExchange exchange)
Sends an out of band response, such as a HTTP 100-continue response.
|
protected void |
setConnectListener(HttpUpgradeListener connectListener) |
void |
setPipelineBuffer(PipeliningBufferingStreamSinkConduit pipelineBuffer) |
void |
setSslSessionInfo(SSLSessionInfo sessionInfo)
Sets the current SSL information.
|
protected void |
setUpgradeListener(HttpUpgradeListener upgradeListener) |
void |
terminateRequestChannel(HttpServerExchange exchange)
Invoked when the exchange is complete, and there is still data in the request channel.
|
void |
ungetRequestBytes(PooledByteBuffer unget)
Pushes back the given data.
|
protected StreamConnection |
upgradeChannel()
Upgrade the connection, if allowed
|
addCloseListener, clearChannel, close, getBufferPool, getBufferSize, getByteBufferPool, getChannel, getCloseSetter, getExtraBytes, getIoThread, getLocalAddress, getLocalAddress, getOption, getOriginalSinkConduit, getOriginalSourceConduit, getPeerAddress, getPeerAddress, getRootHandler, getSinkChannel, getSourceChannel, getUndertowOptions, getWorker, isOpen, maxEntitySizeUpdated, resetChannel, restoreChannel, setExtraBytes, setOption, sink, source, supportsOption
isPushSupported, pushResource, pushResource
addToAttachmentList, createAttachmentMap, getAttachment, getAttachmentList, putAttachment, removeAttachment
public HttpServerConnection(StreamConnection channel, ByteBufferPool bufferPool, HttpHandler rootHandler, OptionMap undertowOptions, int bufferSize, ConnectorStatisticsImpl connectorStatistics)
public HttpServerExchange sendOutOfBandResponse(HttpServerExchange exchange)
ServerConnection
sendOutOfBandResponse
in class ServerConnection
exchange
- The current exchangepublic boolean isContinueResponseSupported()
isContinueResponseSupported
in class ServerConnection
true
if this connection supports sending a 100-continue responsepublic void terminateRequestChannel(HttpServerExchange exchange)
ServerConnection
terminateRequestChannel
in class ServerConnection
exchange
- The current exchange.public void ungetRequestBytes(PooledByteBuffer unget)
unget
- The buffer to push backpublic SSLSessionInfo getSslSessionInfo()
ServerConnection
getSslSessionInfo
in class ServerConnection
public void setSslSessionInfo(SSLSessionInfo sessionInfo)
ServerConnection
setSslSessionInfo
in class ServerConnection
sessionInfo
- The ssl session informationpublic SSLSession getSslSession()
ServerConnection
ServerConnection.getSslSessionInfo()
should be used instead, as it
takes into account other information potentially provided by load balancers that terminate SSLgetSslSession
in class ServerConnection
protected StreamConnection upgradeChannel()
ServerConnection
upgradeChannel
in class ServerConnection
protected StreamSinkConduit getSinkConduit(HttpServerExchange exchange, StreamSinkConduit conduit)
ServerConnection
getSinkConduit
in class ServerConnection
protected boolean isUpgradeSupported()
isUpgradeSupported
in class ServerConnection
protected boolean isConnectSupported()
isConnectSupported
in class ServerConnection
true
if this connection supports the HTTP CONNECT verbprotected void exchangeComplete(HttpServerExchange exchange)
ServerConnection
exchangeComplete
in class ServerConnection
public PipeliningBufferingStreamSinkConduit getPipelineBuffer()
public io.undertow.server.protocol.http.HttpResponseConduit getResponseConduit()
protected HttpUpgradeListener getUpgradeListener()
protected void setUpgradeListener(HttpUpgradeListener upgradeListener)
setUpgradeListener
in class AbstractServerConnection
protected void setConnectListener(HttpUpgradeListener connectListener)
setConnectListener
in class ServerConnection
public void setPipelineBuffer(PipeliningBufferingStreamSinkConduit pipelineBuffer)
public String getTransportProtocol()
ServerConnection
getTransportProtocol
in class ServerConnection
public boolean isRequestTrailerFieldsSupported()
isRequestTrailerFieldsSupported
in class ServerConnection
Copyright © 2021 JBoss by Red Hat. All rights reserved.