]> err.no Git - sope/commitdiff
fixed method handler for WOResponse client objects
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Wed, 13 Oct 2004 16:46:01 +0000 (16:46 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Wed, 13 Oct 2004 16:46:01 +0000 (16:46 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@251 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-appserver/NGObjWeb/ChangeLog
sope-appserver/NGObjWeb/SoObjects/SoObjectMethodDispatcher.m
sope-appserver/NGObjWeb/Version

index d85374f3dfc18a06b6b5375142e7f79e1f76dcd7..5c0ca0681c3c8afc2b291379ac40c879ba0ea3e2 100644 (file)
@@ -1,5 +1,9 @@
 2004-10-13  Helge Hess  <helge.hess@opengroupware.org>
 
+       * SoObjects/SoObjectMethodDispatcher.m: fixed an issue when the
+         clientObject is a WOResponse object. In this case, just return the
+         response instead of starting method processing (v4.3.66)
+
        * DynamicElements/WOInput.m: minor code cleanups, be tolerant on
          missing value binding (previously printed a warning) (v4.3.65)
 
index 3315f51f7dae66352e263e5ff33548e7baa5d11d..a87293fd957381fb1448cd1bf72dcaec13258f90 100644 (file)
@@ -71,15 +71,25 @@ static BOOL useRedirectsForDefaultMethods = NO;
   
   /* find client object */
   
-  if ((clientObject = [_ctx clientObject])) {
+  if ((clientObject = [_ctx clientObject]) != nil) {
     if (debugOn)
       [self debugWithFormat:@"client object set in ctx: %@", clientObject];
   }
-  else if ((clientObject = [self->object clientObject])) {
+  else if ((clientObject = [self->object clientObject]) != nil) {
     if (debugOn)
       [self debugWithFormat:@"setting client object: %@", clientObject];
     [_ctx setClientObject:clientObject];
   }
+
+  /* check whether client object is a response ... */
+  
+  if ([clientObject isKindOfClass:[WOResponse class]]) {
+    [self debugWithFormat:@"clientObject is a WOResponse, returning that: %@",
+           clientObject];
+    resultObject = [clientObject retain];
+    [pool release];
+    return [resultObject autorelease];
+  }
   
   // TODO: should check XML-RPC !!! 
   //       (hm, why ? XML-RPC is handled by other dispatcher ?)
@@ -114,6 +124,9 @@ static BOOL useRedirectsForDefaultMethods = NO;
        if (![url hasSuffix:@"/"]) url = [url stringByAppendingString:@"/"];
        url = [url stringByAppendingString:defaultName];
        
+       [self debugWithFormat:@"redirect to default method %@ of %@: %@", 
+               defaultName, self->object, url];
+       
        r = [[_ctx response] retain];
        [r setStatus:302 /* moved */];
        [r setHeader:url forKey:@"location"];
index 57118e1ba3490e9c82cc38aa7db6a344511e2084..169c13e0eaa2d91415fca0d8285e0959683fa5bf 100644 (file)
@@ -1,6 +1,6 @@
 # version file
 
-SUBMINOR_VERSION:=65
+SUBMINOR_VERSION:=66
 
 # v4.3.42  requires libNGExtensions v4.3.116
 # v4.3.40  requires libNGExtensions v4.3.115