+2006-06-11 Helge Hess <helge.hess@opengroupware.org>
+
+ * v4.5.235
+
+ * WebDAV/SoWebDAVRenderer.m: added a hack for Cadaver so that it
+ doesn't show errors on missing properties (enabled 'brief' mode),
+ log missing properties if debug is enabled
+
+ * fixed some gcc 4.1 warnings
+
2006-06-04 Helge Hess <helge.hess@opengroupware.org>
* WebDAV/SoWebDAVDispatcher.m: added some basic REPORT support, allows
children = [_element hasChildNodes]
? [_b buildNodes:[_element childNodes] templateBuilder:_b]
- : nil;
+ : (NSArray *)nil;
if ((count = [children count]) == 0)
return nil;
children = [_element hasChildNodes]
? [_b buildNodes:[_element childNodes] templateBuilder:_b]
- : nil;
+ : (NSArray *)nil;
/* build associations */
children = [_element hasChildNodes]
? [_b buildNodes:[_element childNodes] templateBuilder:_b]
- : nil;
+ : (NSArray *)nil;
if (compName == nil)
compName = [_element tagName];
children = [_tag hasChildNodes]
? [_b buildNodes:[_tag childNodes] templateBuilder:_b]
- : nil;
+ : (NSArray *)nil;
return [self wrapElements:children inElementOfClass:_class];
}
# version file
-SUBMINOR_VERSION:=234
+SUBMINOR_VERSION:=235
# v4.5.234 requires libDOM v4.5.21
# v4.5.214 requires libNGExtensions v4.5.179
#endif
value = [_sn isTerminating]
- ? (id)@"nil"
+ ? (NSString *)@"nil"
: [_sn sessionID];
cookie = [WOCookie cookieWithName:[app name]
#include <NGObjWeb/WOResponse.h>
#include <NGObjWeb/WORequest.h>
#include <NGObjWeb/WOElement.h>
+#include <NGObjWeb/WEClientCapabilities.h>
#include <SaxObjC/XMLNamespaces.h>
#include <NGExtensions/NSString+Ext.h>
#include "common.h"
r = [_ctx response];
isBrief = [[[_ctx request] headerForKey:@"brief"] hasPrefix:@"t"] ? YES : NO;
+
+ /*
+ Hack for Cadaver which shows errors when requested properties are missing.
+ TODO: Might not apply to all properties, find out the minimum Cadaver set.
+ */
+ if (!isBrief) {
+ isBrief = [[[[_ctx request] clientCapabilities] userAgentType]
+ isEqualToString:@"Cadaver"];
+ }
if (debugOn) {
[self debugWithFormat:@" render entry: 0x%08X<%@>%s%s",
value = [key isEqualToString:@"{DAV:}href"]
? href
: [entry valueForKey:okey];
-
- if (![value isNotNull]) {
+
+ /* always render resourcetype, otherwise Cadaver is confused */
+ if (![value isNotNull] && ![key isEqualToString:@"{DAV:}resourcetype"]) {
if (missingProps == nil)
missingProps = [[NSMutableArray alloc] initWithCapacity:8];
[missingProps addObject:key];
/* close previous propstat and open a new one */
[r appendContentString:@"</D:prop></D:propstat>"];
if (formatOutput) [r appendContentCharacter:'\n'];
+
+ if (debugOn) {
+ [self debugWithFormat:@" missing: %@",
+ [missingProps componentsJoinedByString:@","]];
+ }
[r appendContentString:@"<D:propstat>"];
[r appendContentString:
--- /dev/null
+.TH WOCopyValue 3 "June 2006" "SOPE" "SOPE Dynamic Element Reference"
+.\" DO NOT EDIT: this file got autogenerated using woapi2man from:
+.\" ../DynamicElements/WOCopyValue.api
+.\"
+.\" Copyright (C) 2006 SKYRIX Software AG. All rights reserved.
+.\" ====================================================================
+.\"
+.\" Copyright (C) 2006 SKYRIX Software AG. All rights reserved.
+.\"
+.\" Check the COPYING file for further information.
+.\"
+.\" Created with the help of:
+.\" http://www.schweikhardt.net/man_page_howto.html
+.\"
+
+.SH NAME
+WOCopyValue
+
+.SH SYNOPSIS
+.B WOCopyValue
+{ copyValues; finishValues; resetValues; }
+
+.SH BINDINGS
+.IP copyValues
+.IP finishValues
+.IP resetValues
+The value of 'resetValues' will be evaluated in a boolean context.
+
+.SH BUGS
+SOPE related bugs are collected in the OpenGroupware.org Bugzilla:
+ http://bugzilla.opengroupware.org/
+
+.SH AUTHOR
+The SOPE community <developer at opengroupware.org>.
+
+.SH SEE ALSO
+.BR sope-ngobjweb-defaults
+
--- /dev/null
+.TH WOSetHeader 3 "June 2006" "SOPE" "SOPE Dynamic Element Reference"
+.\" DO NOT EDIT: this file got autogenerated using woapi2man from:
+.\" ../DynamicElements/WOSetHeader.api
+.\"
+.\" Copyright (C) 2006 SKYRIX Software AG. All rights reserved.
+.\" ====================================================================
+.\"
+.\" Copyright (C) 2006 SKYRIX Software AG. All rights reserved.
+.\"
+.\" Check the COPYING file for further information.
+.\"
+.\" Created with the help of:
+.\" http://www.schweikhardt.net/man_page_howto.html
+.\"
+
+.SH NAME
+WOSetHeader
+
+.SH SYNOPSIS
+.B WOSetHeader
+{ header; value; addToExisting; object; }
+
+.SH BINDINGS
+.IP header
+.IP value
+.IP addToExisting
+The value of 'addToExisting' will be evaluated in a boolean context.
+.IP object
+
+.SH BUGS
+SOPE related bugs are collected in the OpenGroupware.org Bugzilla:
+ http://bugzilla.opengroupware.org/
+
+.SH AUTHOR
+The SOPE community <developer at opengroupware.org>.
+
+.SH SEE ALSO
+.BR sope-ngobjweb-defaults
+