]> err.no Git - sope/commitdiff
fixed a bug in cookie init, use utf8
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Fri, 15 Feb 2008 16:25:08 +0000 (16:25 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Fri, 15 Feb 2008 16:25:08 +0000 (16:25 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@1605 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-appserver/NGObjWeb/ChangeLog
sope-appserver/NGObjWeb/WOCookie.m
sope-appserver/NGObjWeb/WOCoreApplication.m

index b0aaf02767efa0f2c55ac3f598b330f191ab8738..d64ee177ef67a8636c2f9858193bcdf8d93bbaec 100644 (file)
@@ -1,3 +1,8 @@
+2008-02-15  Helge Hess  <helge.hess@opengroupware.org>
+
+       * WOCookie.m: fixed bug pointed out by Stephane, use -UTF8String to
+         decode the cookie (was -cString) (v4.7.21)
+
 2008-02-05  Helge Hess  <helge.hess@opengroupware.org>
 
        * DynamicElements/_WOComplexHyperlink.m: use NO, not 'false', as
index 131cc296b8ba509134c6a9d7b1bf1e38aa83ac0d..492394ebc9a8aa9a2451e4a614efe8d122bb227f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2000-2005 SKYRIX Software AG
+  Copyright (C) 2000-2008 SKYRIX Software AG
 
   This file is part of SOPE.
 
@@ -40,7 +40,9 @@ static NSString *cookieDateFormat =  @"%a, %d-%b-%Y %H:%M:%S %Z";
 
 + (id)cookieWithString:(NSString *)_string {
   /* private method ! */
-  return _parseCookie([_string cString], [_string cStringLength]);
+  const char *utf8 = [_string UTF8String];
+  if (utf8 == NULL) return nil;
+  return _parseCookie(utf8, strlen(utf8));
 }
 
 + (id)cookieWithName:(NSString *)_name value:(NSString *)_value {
@@ -66,13 +68,13 @@ static NSString *cookieDateFormat =  @"%a, %d-%b-%Y %H:%M:%S %Z";
   expires:(NSDate *)_date
   isSecure:(BOOL)_secure
 {
-  if ((self = [super init])) {
+  if ((self = [super init]) != nil) {
     NSZone *z = [self zone];
     self->name         = [_name   copyWithZone:z];
     self->value        = [_value  copyWithZone:z];
     self->path         = [_path   copyWithZone:z];
     self->domainName   = [_domain copyWithZone:z];
-    self->expireDate   = [expireDate retain];
+    self->expireDate   = [_date   retain]; // TBD: should be copy?
     self->onlyIfSecure = _secure;
   }
   return self;
index 20ec7c5dd056cd7c42c5b5edf65bb9f943676c22..c66d0d4906e103b38ecf724bb9f677d9d08d60c3 100644 (file)
@@ -338,7 +338,6 @@ static NSMutableArray *activeApps = nil; // THREAD
   else {
     [self logWithFormat:@"%@: caught:\n  %@\nin context:\n  %@.",
             self, _exc, _ctx];
-    
   }
   
   if ((r = [WOResponse responseWithRequest:rq]) == nil)