String servletURI = parseURILine(headers, req, rsp);
req.setAttribute(TEMPORARY_URL_STASH, servletURI);
// If content-length present and non-zero, download the other
// packets
WinstoneInputStream inData = null;
int contentLength = req.getContentLength();
if (contentLength > 0) {
byte bodyContent[] = new byte[contentLength];
int position = 0;
while (position < contentLength) {
outSocket.write(getBodyRequestPacket(Math.min(contentLength
- position, 8184)));
position = getBodyResponsePacket(inSocket, bodyContent,
position);
Logger.log(Logger.FULL_DEBUG, AJP_RESOURCES,
"Ajp13Listener.ReadBodyProgress", new String[] {
"" + position, "" + contentLength });
}
inData = new WinstoneInputStream(bodyContent);
inData.setContentLength(contentLength);
} else
inData = new WinstoneInputStream(new byte[0]);
req.setInputStream(inData);
// Build input/output streams, plus request/response
WinstoneOutputStream outData = new Ajp13OutputStream(socket
.getOutputStream(), "8859_1");