]> err.no Git - sope/blobdiff - sope-appserver/NGObjWeb/NGHttp+WO.m
bumped Xcode projects to version 4.7. Added a new Xcode project for the STXSaxDriver.
[sope] / sope-appserver / NGObjWeb / NGHttp+WO.m
index 7eef5945304084440877ad8d65774a2ed1e9dd1d..d3bd3b08f3f2a31ef4b057c99ce529e0b841b58b 100644 (file)
@@ -1,24 +1,23 @@
 /*
-  Copyright (C) 2000-2004 SKYRIX Software AG
+  Copyright (C) 2000-2005 SKYRIX Software AG
 
-  This file is part of OpenGroupware.org.
+  This file is part of SOPE.
 
-  OGo is free software; you can redistribute it and/or modify it under
+  SOPE is free software; you can redistribute it and/or modify it under
   the terms of the GNU Lesser General Public License as published by the
   Free Software Foundation; either version 2, or (at your option) any
   later version.
 
-  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  SOPE is distributed in the hope that it will be useful, but WITHOUT ANY
   WARRANTY; without even the implied warranty of MERCHANTABILITY or
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
   License for more details.
 
   You should have received a copy of the GNU Lesser General Public
-  License along with OGo; see the file COPYING.  If not, write to the
+  License along with SOPE; see the file COPYING.  If not, write to the
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
 #include "NGHttp+WO.h"
 #include <NGHttp/NGHttp.h>
@@ -26,6 +25,7 @@
 #include <NGObjWeb/WORequest.h>
 #include <NGMime/NGMime.h>
 #include "common.h"
+#include <string.h>
 
 @interface WORequest(NGSupport)
 - (void)_setHttpRequest:(NGHttpRequest *)_request;
@@ -48,7 +48,7 @@ static Class NSArrayClass = Nil;
   
   /* transfer cookies */
   if ([[_request cookies] count] > 0)
-    NSLog(@"WARNING: cannot transfer cookies to NGHttpRequest yet !");
+    [self warnWithFormat:@"cannot transfer cookies to NGHttpRequest yet !"];
 
   /* transfer headers !!! */
   
@@ -196,34 +196,34 @@ static Class NSArrayClass = Nil;
     return;
   }
 
-    
-    cookieValue = [_cookie value];
-    if ([cookieValue isKindOfClass:[NSArray class]]) {
-      if ([cookieValue count] == 0)
-        cookieValue = @"";
-      else if ([cookieValue count] == 1)
-        cookieValue = [[cookieValue objectAtIndex:0] stringValue];
-      else {
-        [self logWithFormat:
-                @"got %i values for cookie '%@', using first only.",
-                [cookieValue count],
-                [_cookie cookieName]];
-        cookieValue = [[cookieValue objectAtIndex:0] stringValue];
-      }
+  cookieValue = [(NGHttpCookie *)_cookie value];
+  if ([cookieValue isKindOfClass:[NSArray class]]) {
+    if ([cookieValue count] == 0)
+      cookieValue = @"";
+    else if ([cookieValue count] == 1)
+      cookieValue = [[cookieValue objectAtIndex:0] stringValue];
+    else {
+      [self logWithFormat:
+             @"got %d values for cookie '%@', using first only: %@",
+             [cookieValue count],
+             [_cookie cookieName], 
+             [cookieValue componentsJoinedByString:@","]];
+      cookieValue = [[cookieValue objectAtIndex:0] stringValue];
     }
-    else
-      cookieValue = [cookieValue stringValue];
+  }
+  else
+    cookieValue = [cookieValue stringValue];
     
-    cookie = [WOCookieClass cookieWithName:[_cookie cookieName]
-                            value:cookieValue
-                            path:[_cookie path]
-                            domain:[_cookie domainName]
-                            expires:[_cookie expireDate]
-                            isSecure:[_cookie needsSecureChannel]];
-  
-    /* WOMessage */
-    if (cookie)
-      [_a addObject:cookie];
+  cookie = [WOCookieClass cookieWithName:[_cookie cookieName]
+                         value:cookieValue
+                         path:[_cookie path]
+                         domain:[_cookie domainName]
+                         expires:[_cookie expireDate]
+                         isSecure:[_cookie needsSecureChannel]];
+  
+  /* WOMessage */
+  if (cookie != nil)
+    [_a addObject:cookie];
 }
 
 - (NSArray *)woCookies {
@@ -295,8 +295,8 @@ static Class      DispClass = Nil;
   
   ebody = [self body];
   if (![ebody isKindOfClass:[NGMimeMultipartBody class]]) {
-    [self logWithFormat:
-           @"ERROR: form-data parser expected MultipartBody, got %@", ebody];
+    [self errorWithFormat:
+            @"form-data parser expected MultipartBody, got %@", ebody];
     return [[NGHashMap alloc] init];
   }
   
@@ -318,9 +318,8 @@ static Class      DispClass = Nil;
       [[bodyPart valuesOfHeaderFieldWithName:@"content-disposition"]nextObject];
           
     if (disposition == nil) {
-      [self logWithFormat:
-             @"ERROR: did not find content disposition in form part %@",
-             bodyPart];
+      [self errorWithFormat:
+              @"did not find content disposition in form part %@", bodyPart];
       continue;
     }
 
@@ -363,8 +362,8 @@ static Class      DispClass = Nil;
   }
   
   p++; // skip the '?'
-  map = NGDecodeUrlFormParameters(p, strlen(p));
-  if (uribuf) free(uribuf); uribuf = NULL; p = NULL;
+  map = NGDecodeUrlFormParameters((unsigned char *)p, strlen((char *)p));
+  if (uribuf != NULL) free(uribuf); uribuf = NULL; p = NULL;
   
   if (map == nil) 
     return formContent;
@@ -423,7 +422,9 @@ static Class      DispClass = Nil;
   if ([[self methodName] isEqualToString:@"POST"]) {
     NGMimeType *contentType = [self contentType];
     
-    //NSLog(@"%s: process POST, ctype %@", __PRETTY_FUNCTION__, contentType);
+#if 0
+    NSLog(@"%s: process POST, ctype %@", __PRETTY_FUNCTION__, contentType);
+#endif
     
     formContent = [contentType hasSameType:multipartFormData]
       ? [self _decodeMultiPartFormDataContent]