2005-11-21 Helge Hess <helge.hess@skyrix.com>
+ * WebDAV/SoObjectWebDAVDispatcher.m: set 'public' header in case the
+ WebDAV client is WebFolders (v4.5.216)
+
* WEClientCapabilities.m: added WebFolders WinXP SP2 as a known user
agent (v4.5.215)
if (![methodObject isNotNull])
return nil;
if ([methodObject isKindOfClass:[NSException class]]) {
- if ([(NSException *)methodObject httpStatus] == 404) {
+ if ([(NSException *)methodObject httpStatus] == 404 /* Not Found */) {
/* not found */
return nil;
}
- return methodObject;
+ return methodObject; /* the exception */
}
if ((e = [self->object validateName:_method inContext:_ctx]) != nil)
return e;
NSArray *tmp;
id result;
+ /* this checks whether the object provides a specific OPTIONS method */
if ((result = [self _callObjectMethod:@"OPTIONS" inContext:_ctx]) != nil)
return result;
if ((tmp = [self->object davAllowedMethodsInContext:_ctx]) != nil)
[response setHeader:[tmp componentsJoinedByString:@", "] forKey:@"allow"];
+ if ([[[_ctx request] clientCapabilities] isWebFolder]) {
+ /*
+ As described over here:
+ http://teyc.editthispage.com/2005/06/02
+
+ This page also says that: "MS-Auth-Via header is not required to work
+ with Web Folders".
+ */
+ [response setHeader:[tmp componentsJoinedByString:@", "] forKey:@"public"];
+ }
+
if ((tmp = [self->object davComplianceClassesInContext:_ctx]) != nil)
[response setHeader:[tmp componentsJoinedByString:@", "] forKey:@"dav"];