Processes HTTP requests.
adapter
protected Adapter adapter
Associated adapter.
compressableMimeTypes
protected String[] compressableMimeTypes
List of MIMES which could be gzipped
compressionLevel
protected int compressionLevel
Allowed compression level.
compressionMinSize
protected int compressionMinSize
Minimum contentsize to make compression.
contentDelimitation
protected boolean contentDelimitation
Content delimitator for the request (if false, the connection will
be closed at the end of the request).
disableUploadTimeout
protected boolean disableUploadTimeout
Flag to disable setting a different time-out on uploads.
error
protected boolean error
Error flag.
expectation
protected boolean expectation
Is there an expectation ?
hostNameC
protected char[] hostNameC
Host name (used to avoid useless B2C conversion on the host name).
http09
protected boolean http09
HTTP/0.9 flag.
http11
protected boolean http11
HTTP/1.1 flag.
keepAlive
protected boolean keepAlive
Keep-alive.
localAddr
protected String localAddr
The local Host address.
localName
protected String localName
Local Host associated with the current connection.
localPort
protected int localPort
Local port to which the socket is connected
log
protected static org.apache.commons.logging.Log log
Logger.
maxKeepAliveRequests
protected int maxKeepAliveRequests
Maximum number of Keep-Alive requests to honor.
maxPostSize
protected int maxPostSize
Max post size.
noCompressionUserAgents
protected RE[] noCompressionUserAgents
List of user agents to not use gzip with
remoteAddr
protected String remoteAddr
Remote Address associated with the current connection.
remoteHost
protected String remoteHost
Remote Host associated with the current connection.
remotePort
protected int remotePort
Remote port to which the socket is connected
request
protected Request request
Request object.
response
protected Response response
Response object.
restrictedUserAgents
protected RE[] restrictedUserAgents
List of restricted user agents.
socket
protected Socket socket
Socket associated with the current connection.
socketBuffer
protected int socketBuffer
Socket buffering.
sslSupport
protected SSLSupport sslSupport
SSL information.
started
protected boolean started
State flag.
threadPool
protected ThreadPool threadPool
Associated thread pool.
timeout
protected int timeout
Maximum timeout on uploads. 5 minutes as in Apache HTTPD server.
action
public void action(ActionCode actionCode,
Object param)
Send an action to the connector.
- action in interface ActionHook
actionCode
- Type of the actionparam
- Action parameter
addCompressableMimeType
public void addCompressableMimeType(String mimeType)
Add a mime-type which will be compressable
The mime-type String will be exactly matched
in the response mime-type header .
addFilter
protected void addFilter(String className)
Add input or output filter.
className
- class name of the filter
addInputFilter
protected boolean addInputFilter(InputFilter inputFilters,
String encodingName)
Add an input filter to the current request.
- false if the encoding was not found (which would mean it is
unsupported)
addNoCompressionUserAgent
public void addNoCompressionUserAgent(String userAgent)
Add user-agent for which gzip compression didn't works
The user agent String given will be exactly matched
to the user-agent header submitted by the client.
userAgent
- user-agent string
addRestrictedUserAgent
public void addRestrictedUserAgent(String userAgent)
Add restricted user-agent (which will downgrade the connector
to HTTP/1.0 mode). The user agent String given will be matched
via regexp to the user-agent header submitted by the client.
userAgent
- user-agent string
findBytes
protected int findBytes(ByteChunk bc,
byte[] b)
Specialized utility method: find a sequence of lower case bytes inside
a ByteChunk.
findCompressableMimeTypes
public String[] findCompressableMimeTypes()
Return the list of restricted user agents.
findRestrictedUserAgents
public String[] findRestrictedUserAgents()
Return the list of restricted user agents.
getCompression
public String getCompression()
Return compression level.
getDisableUploadTimeout
public boolean getDisableUploadTimeout()
Get the flag that controls upload time-outs.
getMaxKeepAliveRequests
public int getMaxKeepAliveRequests()
Return the number of Keep-Alive requests that we will honor.
getMaxPostSize
public int getMaxPostSize()
Return the maximum size of a POST which will be buffered in SSL mode.
getRequest
public Request getRequest()
Get the request associated with this processor.
getSocketBuffer
public int getSocketBuffer()
Get the socket buffer flag.
getTimeout
public int getTimeout()
Get the upload timeout.
initializeFilters
protected void initializeFilters()
Initialize standard input and output filters.
parseHost
public void parseHost(MessageBytes valueMB)
Parse host.
prepareRequest
protected void prepareRequest()
After reading the request headers, we have to setup the request filters.
prepareResponse
protected void prepareResponse()
When committing the response, we have to validate the set of headers, as
well as setup the response filters.
process
public void process(InputStream input,
OutputStream output)
throws IOException
Process pipelined HTTP requests using the specified input and output
streams.
- process in interface Processor
input
- stream from which the HTTP requests will be readoutput
- stream which will be used to output the HTTP
responses
setAdapter
public void setAdapter(Adapter adapter)
Set the associated adapter.
- setAdapter in interface Processor
adapter
- the new adapter
setCompressableMimeTypes
public void setCompressableMimeTypes(String compressableMimeTypes)
Set compressable mime-type list
List contains users agents separated by ',' :
ie: "text/html,text/xml,text/plain"
setCompressableMimeTypes
public void setCompressableMimeTypes(String[] compressableMimeTypes)
Set compressable mime-type list (this method is best when used with
a large number of connectors, where it would be better to have all of
them referenced a single array).
setCompression
public void setCompression(String compression)
Set compression level.
setCompressionMinSize
public void setCompressionMinSize(int compressionMinSize)
Set Minimum size to trigger compression.
setDisableUploadTimeout
public void setDisableUploadTimeout(boolean isDisabled)
Set the flag to control upload time-outs.
setMaxKeepAliveRequests
public void setMaxKeepAliveRequests(int mkar)
Set the maximum number of Keep-Alive requests to honor.
This is to safeguard from DoS attacks. Setting to a negative
value disables the check.
setMaxPostSize
public void setMaxPostSize(int mps)
Set the maximum size of a POST which will be buffered in SSL mode.
setNoCompressionUserAgents
public void setNoCompressionUserAgents(RE[] noCompressionUserAgents)
Set no compression user agent list (this method is best when used with
a large number of connectors, where it would be better to have all of
them referenced a single array).
setNoCompressionUserAgents
public void setNoCompressionUserAgents(String noCompressionUserAgents)
Set no compression user agent list.
List contains users agents separated by ',' :
ie: "gorilla,desesplorer,tigrus"
setRestrictedUserAgents
public void setRestrictedUserAgents(RE[] restrictedUserAgents)
Set restricted user agent list (this method is best when used with
a large number of connectors, where it would be better to have all of
them referenced a single array).
setRestrictedUserAgents
public void setRestrictedUserAgents(String restrictedUserAgents)
Set restricted user agent list (which will downgrade the connector
to HTTP/1.0 mode). List contains users agents separated by ',' :
ie: "gorilla,desesplorer,tigrus"
setSSLSupport
public void setSSLSupport(SSLSupport sslSupport)
Set the SSL information for this HTTP connection.
setSocket
public void setSocket(Socket socket)
throws IOException
Set the socket associated with this HTTP connection.
setSocketBuffer
public void setSocketBuffer(int socketBuffer)
Set the socket buffer flag.
setThreadPool
public void setThreadPool(ThreadPool threadPool)
setTimeout
public void setTimeout(int timeouts)
Set the upload timeout.
statusDropsConnection
protected boolean statusDropsConnection(int status)
Determine if we must drop the connection because of the HTTP status
code. Use the same list of codes as Apache/httpd.