keith       01/02/02 08:41:53

  Modified:    src/share/org/apache/tomcat/modules/server Ajp13.java
  Log:
  It may take multiple read() calls to read an entire packet,
  especially w.r.t. uploaded files.
  
  Revision  Changes    Path
  1.11      +12 -9     
jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Ajp13.java
  
  Index: Ajp13.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Ajp13.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- Ajp13.java        2001/01/30 04:13:14     1.10
  +++ Ajp13.java        2001/02/02 16:41:52     1.11
  @@ -632,16 +632,19 @@
        int len = msg.checkIn();
        
        // XXX check if enough space - it's assert()-ed !!!
  -     // Can we have only one read ( with unblocking, it can read all at once - but 
maybe more ) ?
  -     
  -     rd = in.read( b, 4, len );
  -     if( rd != len ) {
  -         System.out.println( "Incomplete read, deal with it " + len + " " + rd);
  -         // XXX log
  -         // XXX Return an error code?
  +
  +     int total_read = 0;
  +     while (total_read < len) {
  +         rd = in.read( b, 4 + total_read, len - total_read);
  +            if (rd == -1) {
  +             System.out.println( "Incomplete read, deal with it " + len + " " + rd);
  +                break;
  +             // XXX log
  +             // XXX Return an error code?
  +         }
  +                 total_read += rd;
        }
  -     // msg.dump( "Incoming");
  -     return rd;
  +     return total_read;
       }
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to