Reviewed by me, code change by Darin.
authorvicki <vicki@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 16 Feb 2005 19:55:51 +0000 (19:55 +0000)
committervicki <vicki@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 16 Feb 2005 19:55:51 +0000 (19:55 +0000)
        - fixed the build on Panther

        * WebView.subproj/WebFormDataStream.m: (webSetHTTPBody):
        Added a Panther-specific code path that just loads all the data into one big
        NSData object. This means that bug 3686434 won't be fixed on SUPanWheat; we'll
        still load the file into memory before sending it to the server on Panther.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8599 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/ChangeLog
WebKit/WebView.subproj/WebFormDataStream.m

index 37e9a1570542805e6f3eb703a49a02806c0a1b93..36175cbf9ae84e35c5db2b0654dce20a704426ed 100644 (file)
@@ -1,3 +1,14 @@
+2005-02-16  Vicki Murley  <vicki@apple.com>
+
+        Reviewed by me, code change by Darin.
+
+        - fixed the build on Panther
+
+        * WebView.subproj/WebFormDataStream.m: (webSetHTTPBody):
+        Added a Panther-specific code path that just loads all the data into one big
+        NSData object. This means that bug 3686434 won't be fixed on SUPanWheat; we'll
+        still load the file into memory before sending it to the server on Panther.
+
 2005-02-15  Richard Williamson   <rjw@apple.com>
 
        Fixed <rdar://problem/3998368> Tiger8A376: WebTextRenderer assertion failure in Safari while browsing news.bbc.co.uk
index acecea3f27a2fc3078fcbc38228a6fdf0fc26d80..72c3e426b80798c276968607466f6ba590ce184f 100644 (file)
@@ -14,6 +14,8 @@
 #import "WebAssertions.h"
 #import "WebNSObjectExtras.h"
 
+#if !BUILDING_ON_PANTHER
+
 static void formEventCallback(CFReadStreamRef stream, CFStreamEventType type, void *context);
 
 typedef struct {
@@ -259,6 +261,8 @@ static void formEventCallback(CFReadStreamRef stream, CFStreamEventType type, vo
     }
 }
 
+#endif // !BUILDING_ON_PANTHER
+
 void webSetHTTPBody(NSMutableURLRequest *request, NSArray *formData)
 {
     unsigned count = [formData count];
@@ -272,6 +276,8 @@ void webSetHTTPBody(NSMutableURLRequest *request, NSArray *formData)
         }
     }
 
+#if !BUILDING_ON_PANTHER
+
     // Precompute the content length so NSURLConnection doesn't use chunked mode.
     long long length = 0;
     unsigned i;
@@ -304,4 +310,33 @@ void webSetHTTPBody(NSMutableURLRequest *request, NSArray *formData)
     CFReadStreamRef stream = CFReadStreamCreate(NULL, &callBacks, formData);
     [request setHTTPBodyStream:(NSInputStream *)stream];
     CFRelease(stream);
+
+#else
+
+    NSMutableData *allData = [[NSMutableData alloc] init];
+
+    unsigned i;
+    for (i = 0; i < count; ++i) {
+        id data = [formData objectAtIndex:i];
+        if ([data isKindOfClass:[NSData class]]) {
+            NSData *d = data;
+            [allData appendData:d];
+        } else if ([data isKindOfClass:[NSString class]]) {
+            NSString *s = data;
+            NSData *d = [[NSData alloc] initWithContentsOfFile:s];
+            if (d != nil) {
+                [allData appendData:d];
+                [d release];
+            }
+        } else {
+            ERROR("item in form data array is neither NSData nor NSString");
+            return;
+        }
+    }
+
+    [request setHTTPBody:allData];
+    
+    [allData release];
+
+#endif
 }