2003/06/12 18:06:59
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:01:04 +0000 (07:01 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:01:04 +0000 (07:01 +0000)
darcs-hash:20040130070104-2ba56-14a05cd9ca14488b0bfcffe117f1b1ea919b6c91.gz

src/org/xwt/HTTP.java

index e401f86..94ad19a 100644 (file)
@@ -484,6 +484,20 @@ public class HTTP {
             this.length = length == -1 ? 0 : length;
         }
 
+       public void markSupported() { return false; }
+       public int read(byte[] b) throws IOException { return read(b, 0, b.length); }
+       public long skip(long n) { return read(null, -1, (int)n); }
+       public int available() {
+           if (contentLength == -1) return Math.min(super.available(), length);
+           return super.available();
+       }
+
+       public int read() throws IOException {
+           byte[] b = new byte[1];
+           int ret = read(b, 0, 1);
+           return ret == -1 ? -1 : b[0] & 0xff;
+       }
+
         private void readChunk() throws IOException {
             if (chunkedDone) return;
             if (!firstChunk) super.skip(2); // CRLF
@@ -515,7 +529,7 @@ public class HTTP {
                    if (length == 0) { good = true; return -1; }
                }
                 if (len > length) len = length;
-                int ret = super.read(b, off, len);
+                int ret = b == null ? super.skip(len) : super.read(b, off, len);
                if (ret >= 0) {
                    length -= ret;
                    good = true;