]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@40 d1b88da0-ebda-0310-925b-ed51d8...
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 16 Jun 2004 15:28:47 +0000 (15:28 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 16 Jun 2004 15:28:47 +0000 (15:28 +0000)
dbd/MainPage.m
dbd/README
dbd/dbd.m
dbd/product.plist

index 6407bf40d61d44fab3e8b600ad93bd79913e2d54..18f18a9121015ee26b47d9bdaacc4596a84d1f6c 100644 (file)
@@ -78,6 +78,7 @@
     url = [_ctx urlWithRequestHandlerKey:@"so" path:@"/" queryString:nil];
     [_response setStatus:302 /* moved */];
     [_response setHeader:url forKey:@"location"];
+    [self logWithFormat:@"URL: %@", url];
     return;
   }
   
index c82916aa23e559fff343503c9f19747273da9b7b..68d151d8a373debf4b48c9bb70df837957b1f091 100644 (file)
@@ -53,3 +53,12 @@ Tricks used
 
 - we are not really clever with DSoUserManager and DSoDatabaseManager,
   those two classes are basically identical
+
+- the "GET" method is explicitly mapped in product.plist for the application
+  object because otherwise "GET" will be treated as a hostname (because we
+  perform no check on the hostname!)
+  - need to check whether we can make SOPE smarter on this front, but I guess
+    that issue is inherent to all containers which map to arbitary, external
+    collections
+  - we could create an EOAdaptor and connect it to 'template1', but this would
+    result in one unnecessary DB connection?
index 6dfa0bb9c9642405e6209793b0d15cc0a693f796..55089e52b0c8b9063b314f45dd33f8238f582921 100644 (file)
--- a/dbd/dbd.m
+++ b/dbd/dbd.m
 
 /* name lookup */
 
+- (BOOL)isHostName:(NSString *)_key inContext:(id)_ctx {
+  NSRange r;
+  
+  r = [_key rangeOfString:@"."]; // TODO: this also catches IPs!
+  if (r.length > 0)
+    return NO;
+  
+  return YES;
+}
+
 - (id)lookupHost:(NSString *)_key inContext:(id)_ctx {
   NSRange  r;
   NSString *hostName;
@@ -59,7 +69,6 @@
 }
 
 - (id)lookupName:(NSString *)_key inContext:(id)_ctx acquire:(BOOL)_flag {
-  NSRange r;
   id obj;
   
   /* first check attributes directly bound to the application */
      
      One way to check for a valid key would be to check whether the key is a
      valid hostname, but I would like to avoid that for performance reasons.
+     
+     Addition: we also get queries for various other methods, like "GET" if
+               no method was provided in the query path.
   */
-  r = [_key rangeOfString:@"."];
-  if (r.length == 0)
+  if ([self isHostName:_key inContext:_ctx])
     return [self lookupHost:_key inContext:_ctx];
   
   return nil;
index 8a02ae0f4c04847dad378bd46d8f28baaea6eee5..4539405b487abb91480b7e3f51fbf6a1d6708221 100644 (file)
           protectedBy = "View";
           pageName    = "MainPage"; 
         };
+        "GET" = { // more or less a hack, see README
+          protectedBy = "View";
+          pageName    = "MainPage"; 
+        };
         "connect" = { 
           protectedBy = "View";
           pageName    = "MainPage";