]> err.no Git - sope/commitdiff
code cleanups
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Thu, 31 Aug 2006 21:16:48 +0000 (21:16 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Thu, 31 Aug 2006 21:16:48 +0000 (21:16 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@1357 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-appserver/NGObjWeb/ChangeLog
sope-appserver/NGObjWeb/SoObjects/SoObject.m
sope-appserver/NGObjWeb/Version
sope-appserver/NGObjWeb/WebDAV/SoObjectWebDAVDispatcher.m
sope-appserver/NGObjWeb/WebDAV/SoWebDAVRenderer.m

index 77426bb215f709c21546045bd6f3f45359eacb85..0ab37e2c5b4f5a1aef870396094579cffba1a788 100644 (file)
@@ -1,3 +1,8 @@
+2006-08-31  Helge Hess  <helge.hess@opengroupware.org>
+
+       * WebDAV/SoObjectWebDAVDispatcher.m: code cleanups, use -isNotEmpty
+         (v4.5.246)
+
 2006-08-31  Wolfgang Sourdeau  <WSourdeau@Inverse.CA>
 
        * DynamicElements/WOCheckBoxList.m: embed 'suffix' label binding in
index c9ca1aa745aeb029085494bd05e84e1da523c576..6d75938802a5594816d07169d6b928a9125e6944 100644 (file)
@@ -285,11 +285,16 @@ static void _initialize(void) {
   return baseURL;
 }
 
-NSString *SoObjectRootURLInContext(WOContext *_ctx, id self /* logger */, BOOL withAppPart) {
+NSString *SoObjectRootURLInContext
+  (WOContext *_ctx, id self /* logger */, BOOL withAppPart)
+{
+  // TODO: it would be best if we would return relative URLs here, but
+  //       _some_ places (like the ZideStore subscription page) actually
+  //       need absolute URLs.
   /*
     Note: Evolution doesn't correctly transfer the "Host:" header, it
     misses the port argument :-(
-
+    
     Note: this is called by SoObjectWebDAVDispatcher.m.
   */
   // TODO: this should be a WOContext method?
@@ -306,16 +311,15 @@ NSString *SoObjectRootURLInContext(WOContext *_ctx, id self /* logger */, BOOL w
   rq   = [_ctx request];
   port = [[rq headerForKey:@"x-webobjects-server-port"] intValue];
   
-  /* TODO: how to handle Evolution bug which sends invalid port ? */
+  /* this is actually a bug in Apache */
   if (port == 0) {
     static BOOL didWarn = NO;
     if (!didWarn) {
-      [self warnWithFormat:@"(%s:%i): got an empty port, probably buggy "
-              @"SOAP host header!",
+      [self warnWithFormat:@"(%s:%i): got an empty port from Apache!",
               __PRETTY_FUNCTION__, __LINE__];
       didWarn = YES;
     }
-    port = 23000;
+    port = 80;
   }
 
   ms = [[NSMutableString alloc] initWithCapacity:128];
@@ -334,13 +338,13 @@ NSString *SoObjectRootURLInContext(WOContext *_ctx, id self /* logger */, BOOL w
   else if ((tmp = [rq headerForKey:@"x-webobjects-server-url"]) != nil) {
     /* sometimes the URL is just wrong! (suggests port 80) */
     if ([tmp hasSuffix:@":0"] && [tmp length] > 2) { // TODO: bad bad bad
-      [self logWithFormat:@"WARNING(%s): got incorrect URL from Apache: '%@'",
+      [self warnWithFormat:@"%s: got incorrect URL from Apache: '%@'",
              __PRETTY_FUNCTION__, tmp];
       tmp = [tmp substringToIndex:([tmp length] - 2)];
     }
     else if ([tmp hasSuffix:@":443"] && [tmp hasPrefix:@"http://"]) {
       /* see OGo bug #1435, Debian Apache hack */
-      [self logWithFormat:@"WARNING(%s): got 'http' protocol but 443 port, "
+      [self warnWithFormat:@"%s: got 'http' protocol but 443 port, "
              @"assuming Debian/Apache bug (OGo #1435): '%@'",
              __PRETTY_FUNCTION__, tmp];
       tmp = [tmp substringWithRange:NSMakeRange(4, [tmp length] - 4 - 4)];
index ce37dc3a0bb6d9e548dabfd2760b26ad6945c848..1eb938133ce9bf89c62bef06ef84e67975487705 100644 (file)
@@ -1,6 +1,6 @@
 # version file
 
-SUBMINOR_VERSION:=245
+SUBMINOR_VERSION:=246
 
 # v4.5.234 requires libDOM          v4.5.21
 # v4.5.214 requires libNGExtensions v4.5.179
index 6568d9da68a9995c3ffc32d948e552be49fd74ff..aa3f3103a4a537074aabc1ac58a1d152a89a62eb 100644 (file)
@@ -113,7 +113,8 @@ static NSTimeZone                *gmt      = nil;
 }
 
 - (NSString *)baseURLForContext:(WOContext *)_ctx {
-  extern NSString *SoObjectRootURLInContext(WOContext *_ctx, id logobj, BOOL withAppPart);
+  extern NSString *SoObjectRootURLInContext
+    (WOContext *_ctx, id logobj, BOOL withAppPart);
   NSString *rootURL;
   
   rootURL = SoObjectRootURLInContext(_ctx, self, NO);
@@ -203,7 +204,7 @@ static NSTimeZone                *gmt      = nil;
   
   sm = [_ctx soSecurityManager];
   e  = [sm validatePermission:
-            ([pathInfo length] > 0)
+            [pathInfo isNotEmpty]
             ? SoPerm_AddDocumentsImagesAndFiles
             : SoPerm_ChangeImagesAndFiles
           onObject:self->object
@@ -215,7 +216,7 @@ static NSTimeZone                *gmt      = nil;
   
   /* perform */
   
-  if ([pathInfo length] > 0) {
+  if ([pathInfo isNotEmpty]) {
     /* check whether all the parent collections are available */
     // TODO: we might also want to check for a 'create' permission
     if ([pathInfo rangeOfString:@"/"].length > 0) {
@@ -304,7 +305,7 @@ static NSTimeZone                *gmt      = nil;
   NSString          *pathInfo;
   
   pathInfo = [_ctx pathInfo];
-  if ([pathInfo length] == 0) {
+  if (![pathInfo isNotEmpty]) {
     /* MKCOL target already exists ... */
     WOResponse *r;
 
@@ -436,9 +437,9 @@ static NSTimeZone                *gmt      = nil;
   depth = [rq headerForKey:@"depth"];
   uri   = [rq uri];
   
-  if ([depth length] == 0) depth = @"infinity";
+  if (![depth isNotEmpty]) depth = @"infinity";
   
-  if ([[rq content] length] > 0) {
+  if ([[rq content] isNotEmpty]) {
     [self lockParser:davsax];
     {
       [xmlParser parseFromSource:[rq content]];
@@ -455,7 +456,7 @@ static NSTimeZone                *gmt      = nil;
       "A client may choose not to submit a request body.  An empty PROPFIND 
        request body MUST be treated as a request for the names and values of
        all properties."
-      TODO: means, an empty request is to be treated as allprop?
+      TODO: means, an empty request is to be handled as <allprop/>?
     */
     propNames = nil;
     findAll   = YES;
@@ -482,9 +483,9 @@ static NSTimeZone                *gmt      = nil;
     if ([s hasSuffix:@"/"]) s = [s substringToIndex:([s length] - 1)];
     if ([s hasPrefix:@"_"]) s = [s substringFromIndex:1];
     
-    ids = ([s length] == 0)
-      ? (NSArray *)[NSArray array]
-      : [s componentsSeparatedByString:@"_"];
+    ids = [s isNotEmpty]
+      ? [s componentsSeparatedByString:@"_"]
+      : (NSArray *)[NSArray array];
     
     // TODO: should use -stringByUnescapingURL on IDs (not required for ints)
     
@@ -577,7 +578,7 @@ static NSTimeZone                *gmt      = nil;
   /* check permissions */
   
   sm = [_ctx soSecurityManager];
-  e  = [sm validatePermission:([pathInfo length] > 0)
+  e  = [sm validatePermission:[pathInfo isNotEmpty]
             ? SoPerm_AddDocumentsImagesAndFiles
             : SoPerm_ChangeImagesAndFiles
           onObject:self->object
@@ -586,7 +587,7 @@ static NSTimeZone                *gmt      = nil;
   
   /* check for conflicts */
 
-  if ([pathInfo length] > 0) {
+  if ([pathInfo isNotEmpty]) {
     /* check whether all the parent collections are available */
     if ([pathInfo rangeOfString:@"/"].length > 0) {
       return [self httpException:409 /* Conflict */
@@ -598,7 +599,7 @@ static NSTimeZone                *gmt      = nil;
   
   /* check whether the object supports patching */
 
-  if ([pathInfo length] > 0) {
+  if ([pathInfo isNotEmpty]) {
     if (![self->object respondsToSelector:
                @selector(davCreateObject:properties:inContext:)]) {
       [self debugWithFormat:@"cannot create new object via DAV on %@",
@@ -636,9 +637,9 @@ static NSTimeZone                *gmt      = nil;
                 reason:@"got no properties in PROPPATCH !"];
   }
   
-  if ([pathInfo length] > 0) {
+  if ([pathInfo isNotEmpty]) {
     /* a create object cannot delete props ... */
-    if ([delProps count] > 0) {
+    if ([delProps isNotEmpty]) {
       if (![self allowDeletePropertiesOnNewObjectInContext:_ctx]) {
         [self logWithFormat:@"shall delete props in new object '%@': %@",
                pathInfo, delProps];
@@ -840,7 +841,7 @@ static NSTimeZone                *gmt      = nil;
   /* TODO: check proper permission prior attempting a move */
   
   absDestURL = [[_ctx request] headerForKey:@"destination"];
-  if ([absDestURL length] == 0) {
+  if (![absDestURL isNotEmpty]) {
     return [self httpException:400 /* Bad Request */
                 reason:
                   @"the destination WebDAV header was missing "
@@ -972,7 +973,7 @@ static NSTimeZone                *gmt      = nil;
     return error;
   }
   
-  return ([newName length] > 0)
+  return [newName isNotEmpty]
     ? [NSNumber numberWithBool:201 /* Created */]
     : [NSNumber numberWithBool:204 /* No Content */];
 }
@@ -1007,7 +1008,7 @@ static NSTimeZone                *gmt      = nil;
     return error;
   }
   
-  return ([newName length] > 0)
+  return [newName isNotEmpty]
     ? [NSNumber numberWithBool:201 /* Created */]
     : [NSNumber numberWithBool:204 /* No Content */];
 }
@@ -1040,6 +1041,7 @@ static NSTimeZone                *gmt      = nil;
     return [_ctx response];
   }
   
+  // TODO: whats that? VERY bad, maybe use -baseURLForContext:?
   baseURL = [NSString stringWithFormat:@"http://%@%@",
                        [[_ctx request] headerForKey:@"host"],
                        [[_ctx request] uri]];
@@ -1125,7 +1127,7 @@ static NSTimeZone                *gmt      = nil;
   }
   
   subscriptionID = [rq headerForKey:@"subscription-id"];
-  if ([subscriptionID length] == 0) {
+  if (![subscriptionID isNotEmpty]) {
     return [self httpException:400 /* Bad Request */
                  reason:@"did not find subscription-id header in POLL"];
   }
@@ -1160,7 +1162,7 @@ static NSTimeZone                *gmt      = nil;
   
   /* first check, whether it's an existing subscription to be renewed */
   
-  if ([subscriptionID length] > 0) {
+  if ([subscriptionID isNotEmpty]) {
     NSString *newId;
     
     if ((newId = [sm renewSubscription:subscriptionID onURL:url]) == nil) {
@@ -1215,7 +1217,7 @@ static NSTimeZone                *gmt      = nil;
   }
   
   subscriptionID = [rq headerForKey:@"subscription-id"];
-  if ([subscriptionID length] == 0) {
+  if (![subscriptionID isNotEmpty]) {
     return [self httpException:400 /* Bad Request */
                 reason:@"missing subscription id !"];
   }
@@ -1224,10 +1226,9 @@ static NSTimeZone                *gmt      = nil;
     [r setStatus:200];
     return r;
   }
-  else {
-    return [self httpException:400 /* Bad Request */
-                reason:@"unsubscribe failed (invalid or old id ?)"];
-  }
+
+  return [self httpException:400 /* Bad Request */
+              reason:@"unsubscribe failed (invalid or old id ?)"];
 }
 
 /* Exchange bulk methods */
@@ -1335,7 +1336,7 @@ static NSTimeZone                *gmt      = nil;
   
   rq = [_ctx request];
   depth = [rq headerForKey:@"depth"];
-  if ([depth length] == 0) depth = @"infinity";
+  if (![depth isNotEmpty]) depth = @"infinity";
   
   [self lockParser:davsax];
   {
@@ -1349,7 +1350,7 @@ static NSTimeZone                *gmt      = nil;
   propNames = [propNames autorelease];
   targets   = [targets   autorelease];
   
-  if ([targets count] == 0)
+  if (![targets isNotEmpty])
     return [NSArray array];
   
   /* check query all properties */
index 7c739aa13c5dd851601ffc7a9e01cd087bf021fe..b50ff5ccc019e1741d13a3a29f93bf207d162234 100644 (file)
@@ -208,7 +208,7 @@ static BOOL         formatOutput = NO;
     [_object appendToResponse:r inContext:_ctx];
     
     data = [r content];
-    if ([[r headerForKey:@"content-type"] length] == 0) {
+    if (![[r headerForKey:@"content-type"] isNotEmpty]) {
       [r setHeader:[self mimeTypeForData:data inContext:_ctx]
          forKey:@"content-type"];
     }