cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http SocketInputStream.java

2001-08-08 Thread remm

remm01/08/08 13:02:17

  Modified:catalina/src/share/org/apache/catalina/connector/http
SocketInputStream.java
  Log:
  - A HT (tab) is also considered a leading white space. It was a bit hidden in the
HTTP spec, so I had missed it.
  
  Revision  ChangesPath
  1.9   +15 -6 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java
  
  Index: SocketInputStream.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SocketInputStream.java2001/07/22 20:25:07 1.8
  +++ SocketInputStream.java2001/08/08 20:02:17 1.9
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
 1.8 2001/07/22 20:25:07 pier Exp $
  - * $Revision: 1.8 $
  - * $Date: 2001/07/22 20:25:07 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
 1.9 2001/08/08 20:02:17 remm Exp $
  + * $Revision: 1.9 $
  + * $Date: 2001/08/08 20:02:17 $
*
* 
*
  @@ -100,6 +100,12 @@
   
   
   /**
  + * HT.
  + */
  +private static final byte HT = (byte) '\t';
  +
  +
  +/**
* COLON.
*/
   private static final byte COLON = (byte) ':';
  @@ -440,7 +446,7 @@
   pos = 0;
   readStart = 0;
   }
  -if (buf[pos] == SP) {
  +if ((buf[pos] == SP) || (buf[pos] == HT)) {
   pos++;
   } else {
   space = false;
  @@ -483,8 +489,10 @@
   }
   pos++;
   }
  +
  +int nextChr = read();
   
  -if (read() != SP) {
  +if ((nextChr != SP)  (nextChr != HT)) {
   pos--;
   validLine = false;
   } else {
  @@ -583,8 +591,9 @@
   pos = 0;
   count = 0;
   int nRead = is.read(buf, 0, buf.length);
  -if (nRead  0)
  +if (nRead  0) {
   count = nRead;
  +}
   }
   
   
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http SocketInputStream.java

2001-06-17 Thread remm

remm01/06/17 17:21:58

  Modified:catalina/src/share/org/apache/catalina/connector/http
SocketInputStream.java
  Log:
  - Handle HTTP/0.9 requests.
  
  Revision  ChangesPath
  1.7   +8 -4  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java
  
  Index: SocketInputStream.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SocketInputStream.java2001/01/23 03:53:00 1.6
  +++ SocketInputStream.java2001/06/18 00:21:58 1.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
 1.6 2001/01/23 03:53:00 remm Exp $
  - * $Revision: 1.6 $
  - * $Date: 2001/01/23 03:53:00 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
 1.7 2001/06/18 00:21:58 remm Exp $
  + * $Revision: 1.7 $
  + * $Date: 2001/06/18 00:21:58 $
*
* 
* 
  @@ -250,6 +250,8 @@
   
   space = false;
   
  +boolean eol = false;
  +
   while (!space) {
   // if the buffer is full, extend it
   if (readCount = maxRead) {
  @@ -275,6 +277,10 @@
   }
   if (buf[pos] == SP) {
   space = true;
  +} else if ((buf[pos] == CR) || (buf[pos] == LF)) {
  +// HTTP/0.9 style request
  +eol = true;
  +space = true;
   }
   requestLine.uri[readCount] = (char) buf[pos];
   readCount++;
  @@ -288,8 +294,6 @@
   maxRead = requestLine.protocol.length;
   readStart = pos;
   readCount = 0;
  -
  -boolean eol = false;
   
   while (!eol) {
   // if the buffer is full, extend it
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http SocketInputStream.java

2000-12-01 Thread remm

remm00/12/01 19:51:31

  Modified:catalina/src/share/org/apache/catalina/connector/http
SocketInputStream.java
  Log:
  - The IS is now more tolerant when parsing the HTTP header. It now doesn't
require that CRLF to end a line (LF is enough), as is recommended in the
HTTP spec for improved robustness. Note that a client which would do that
is actually not compliant with the spec, and needs to be fixed.
  - Removed some old test code.
  
  Revision  ChangesPath
  1.4   +18 -200   
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java
  
  Index: SocketInputStream.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SocketInputStream.java2000/11/22 02:28:19 1.3
  +++ SocketInputStream.java2000/12/02 03:51:31 1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
 1.3 2000/11/22 02:28:19 remm Exp $
  - * $Revision: 1.3 $
  - * $Date: 2000/11/22 02:28:19 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
 1.4 2000/12/02 03:51:31 remm Exp $
  + * $Revision: 1.4 $
  + * $Date: 2000/12/02 03:51:31 $
*
* 
* 
  @@ -164,13 +164,13 @@
   
   // Checking for a blank line
   int chr = 0;
  -while ((chr = read()) == CR) { // Skipping CR
  -read(); // Skipping LF
  -}
  +do { // Skipping CR or LF
  +chr = read();
  +} while ((chr == CR) || (chr == LF));
   if (chr == -1)
   throw new EOFException
   (sm.getString("requestStream.readline.error"));
  -if (chr != CR) {
  +if ((chr != CR) || (chr != LF)) {
   pos--;
   }
   
  @@ -263,8 +263,6 @@
   readStart = pos;
   readCount = 0;
   
  -int crPos = -2;
  -
   boolean eol = false;
   
   while (!eol) {
  @@ -285,12 +283,6 @@
   if (pos = count) {
   // Copying part (or all) of the internal buffer to the line
   // buffer
  -if (pos != readStart) {
  -// Hack to reintialize the internal buffer. We pretend the 
  -// first character was never read and we'll reread it from
  -// the buffer.
  -crPos = crPos - count;
  -}
   int val = read();
   if (val == -1)
   throw new IOException
  @@ -299,17 +291,17 @@
   readStart = 0;
   }
   if (buf[pos] == CR) {
  -// We found a CR. Next character has to be a LF.
  -crPos = pos;
  -} else if ((buf[pos] == LF)  (crPos == (pos - 1))) {
  +// Skip CR.
  +} else if (buf[pos] == LF) {
   eol = true;
  +} else {
  +requestLine.protocol[readCount] = (char) buf[pos];
  +readCount++;
   }
  -requestLine.protocol[readCount] = (char) buf[pos];
  -readCount++;
   pos++;
   }
   
  -requestLine.protocolEnd = readCount - 2;
  +requestLine.protocolEnd = readCount;
   
   }
   
  @@ -332,8 +324,10 @@
   header.recycle();
   
   // Checking for a blank line
  -if (read() == CR) { // Skipping CR
  -read(); // Skipping LF
  +int chr = read();
  +if ((chr == CR) || (chr == LF)) { // Skipping CR
  +if (chr == CR)
  +read(); // Skipping LF
   header.nameEnd = 0;
   header.valueEnd = 0;
   return;
  @@ -441,12 +435,6 @@
   if (pos = count) {
   // Copying part (or all) of the internal buffer to the line
   // buffer
  -if (pos != readStart) {
  -// Hack to reintialize the internal buffer. 
  -// We pretend the first character was never read and 
  -// we'll reread it from the buffer.
  -crPos = crPos - count;
  -}
   int val = read();
   if (val == -1)
   throw new IOException
  @@ -455,9 +443,7 @@
   readStart = 0;
   }
   if (buf[pos] == CR) {
  -// We 

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http SocketInputStream.java

2000-11-21 Thread remm

remm00/11/21 18:28:20

  Modified:catalina/src/share/org/apache/catalina/connector/http
SocketInputStream.java
  Log:
  - Avoid throwing an ArrayOutOfBoundException when the client disconnects
before starting a new request.
  
  Revision  ChangesPath
  1.3   +9 -4  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java
  
  Index: SocketInputStream.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SocketInputStream.java2000/11/17 07:25:36 1.2
  +++ SocketInputStream.java2000/11/22 02:28:19 1.3
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
 1.2 2000/11/17 07:25:36 remm Exp $
  - * $Revision: 1.2 $
  - * $Date: 2000/11/17 07:25:36 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
 1.3 2000/11/22 02:28:19 remm Exp $
  + * $Revision: 1.3 $
  + * $Date: 2000/11/22 02:28:19 $
*
* 
* 
  @@ -67,6 +67,7 @@
   import java.io.IOException;
   import java.io.BufferedInputStream;
   import java.io.InputStream;
  +import java.io.EOFException;
   import org.apache.catalina.util.StringManager;
   
   /**
  @@ -166,6 +167,9 @@
   while ((chr = read()) == CR) { // Skipping CR
   read(); // Skipping LF
   }
  +if (chr == -1)
  +throw new EOFException
  +(sm.getString("requestStream.readline.error"));
   if (chr != CR) {
   pos--;
   }
  @@ -457,7 +461,8 @@
   eol = true;
   } else {
   // FIXME : Check if binary conversion is working fine
  -header.value[readCount] = (char) (buf[pos]  0xff);
  +int ch = buf[pos]  0xff;
  +header.value[readCount] = (char) ch;
   readCount++;
   }
   pos++;
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http SocketInputStream.java

2000-11-16 Thread remm

remm00/11/16 23:25:36

  Modified:catalina/src/share/org/apache/catalina/connector/http
SocketInputStream.java
  Log:
  - Skip extra CRLF before starting reading the request line, as is heavily
recommended to do that in the HTTP spec.
  
  Revision  ChangesPath
  1.2   +12 -3 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java
  
  Index: SocketInputStream.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SocketInputStream.java2000/11/17 03:30:43 1.1
  +++ SocketInputStream.java2000/11/17 07:25:36 1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
 1.1 2000/11/17 03:30:43 remm Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/11/17 03:30:43 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/SocketInputStream.java,v
 1.2 2000/11/17 07:25:36 remm Exp $
  + * $Revision: 1.2 $
  + * $Date: 2000/11/17 07:25:36 $
*
* 
* 
  @@ -161,6 +161,15 @@
   if (requestLine.methodEnd != 0)
   requestLine.recycle();
   
  +// Checking for a blank line
  +int chr = 0;
  +while ((chr = read()) == CR) { // Skipping CR
  +read(); // Skipping LF
  +}
  +if (chr != CR) {
  +pos--;
  +}
  +
   // Reading the method name
   
   int maxRead = requestLine.method.length;