[Winstone-devel] winstone/src/java/winstone/ajp13 Ajp13OutputStream.java,1.4,1.5
Status: Beta
Brought to you by:
rickknowles
From: Rick K. <ric...@us...> - 2006-01-11 01:39:53
|
Update of /cvsroot/winstone/winstone/src/java/winstone/ajp13 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16758/src/java/winstone/ajp13 Modified Files: Ajp13OutputStream.java Log Message: Converted output headers to use CR_LF instead of platform dependent println(). NOTE: I'm concerned about potential problems with double-byte character encodings in headers here. The spec kind of implies (by using the word OCTET), that it's in 8859-1, but until now it was using platform encoding. Please let me know of any breakages, or even explicit points in the spec where it says what the header encoding should be Index: Ajp13OutputStream.java =================================================================== RCS file: /cvsroot/winstone/winstone/src/java/winstone/ajp13/Ajp13OutputStream.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Ajp13OutputStream.java 27 Dec 2005 14:35:53 -0000 1.4 --- Ajp13OutputStream.java 11 Jan 2006 01:39:45 -0000 1.5 *************** *** 94,100 **** byte headerCode[] = (byte[]) headerCodes.get(headerName .toLowerCase()); ! headerArrayStream ! .write(headerCode == null ? getStringBlock(headerName) ! : headerCode); headerArrayStream.write(getStringBlock(headerValue)); } --- 94,102 ---- byte headerCode[] = (byte[]) headerCodes.get(headerName .toLowerCase()); ! if (headerCode == null) { ! headerArrayStream.write(getStringBlock(headerName)); ! } else { ! headerArrayStream.write(headerCode); ! } headerArrayStream.write(getStringBlock(headerValue)); } *************** *** 109,117 **** String headerName = cookieText.substring(0, colonPos).trim(); String headerValue = cookieText.substring(colonPos + 1).trim(); ! byte headerCode[] = (byte[]) headerCodes.get(headerName ! .toLowerCase()); ! headerArrayStream ! .write(headerCode == null ? getStringBlock(headerName) ! : headerCode); headerArrayStream.write(getStringBlock(headerValue)); } --- 111,120 ---- String headerName = cookieText.substring(0, colonPos).trim(); String headerValue = cookieText.substring(colonPos + 1).trim(); ! byte headerCode[] = (byte[]) headerCodes.get(headerName.toLowerCase()); ! if (headerCode == null) { ! headerArrayStream.write(getStringBlock(headerName)); ! } else { ! headerArrayStream.write(headerCode); ! } headerArrayStream.write(getStringBlock(headerValue)); } *************** *** 149,154 **** responsePacket[4] = CONTAINER_SEND_BODY_CHUNK; setIntBlock(packetLength, responsePacket, 5); ! System.arraycopy(bufferContents, position, responsePacket, 7, ! packetLength); responsePacket[packetLength + 7] = 0x00; position += packetLength; --- 152,156 ---- responsePacket[4] = CONTAINER_SEND_BODY_CHUNK; setIntBlock(packetLength, responsePacket, 5); ! System.arraycopy(bufferContents, position, responsePacket, 7, packetLength); responsePacket[packetLength + 7] = 0x00; position += packetLength; |