Giter Club home page Giter Club logo

dav's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dav's Issues

deleting .php files deletes everything

Original author: [email protected] (March 28, 2011 20:07:51)

http://code.google.com/p/sabredav/wiki/GettingStarted:
"If your server is not on your webroot, make sure the following line has the correct information"

My webroot is "/", so I did NOT call $server->setBaseUri().
When I ran "DELETE /a/b/c/test.php" every single file on my dav server was deleted!

Sabre_DAV_Server::guessBaseUri() returns "/a/b/c/test.php/"
Sabre_DAV_Server::calculateUri("/a/b/c/test.php") returns ""
Sabre_DAV_Server::getRequestUri() returns ""
Sabre_DAV_Server::exec() calls:
Sabre_DAV_Server::invokeMethod("DELETE", "") calls:
Sabre_DAV_Server::httpDelete("") calls:
Sabre_DAV_Tree::delete("")
Sabre_DAV_ObjectTree::getNodeForPath("") returns root node
-> deletes everything recursively

Conclusion:
guessBaseUri() is dangerous and should not be used at all.
httpDelete() should never try to delete the root node.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=119

Locale setting affects basename() for UTF-8 characters. Consider removing basename

Original author: [email protected] (March 30, 2010 03:54:27)

See this post for details:

http://www.rooftopsolutions.nl/article/271

We either need to rely on a Locale to be set for all methods, or remove
references to basename().

I would opt for the latter, because I don't think SabreDAV should dictate
any global settings, since it is used as a library, included in
applications that might already make assumptions about certain locale settings.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=39

Gvfs has issues with filenames containing ( and )

Original author: [email protected] (March 11, 2010 06:55:30)

This is likely due to broken escaping of these characters. We need to find
out exactly:

  • which characters are supposed be escaped in the href element in a
    multistatus response.
  • which characters are supposed to be unescaped from the request uri.

Broken request/response:

PROPFIND /public/CrossDomain_PolicyFile_Specification(2).pdf HTTP/1.1
Depth: 0
Content-Type: application/xml
Apply-To-Redirect-Ref: T
User-Agent: gvfs/1.4.1
Authorization: Digest username="testuser", realm="SabreDAV",
nonce="4b9890c96f04c",
uri="/public/CrossDomain_PolicyFile_Specification(2).pdf", algorithm="MD5",
response="4fbfdbba4ec84ca1a751a4dda0748d83",
opaque="df58bdff8cf60599c939187d0b5c54de",
cnonce="MHg5OTM5MDQ4OjEzMjI6MTI2ODI4OTc0Mg==", nc="00000070", qop="auth"
Content-Length: 235
Host: demo.sabredav.org:80

<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
<D:prop>
<D:creationdate/>
<D:displayname/>
<D:getcontentlength/>
<D:getcontenttype/>
<D:getetag/>
<D:getlastmodified/>
<D:resourcetype/>
</D:prop>
</D:propfind>

<d:multistatus xmlns:d="DAV:"
xmlns:s="http://www.rooftopsolutions.nl/NS/sabredav">
<d:response>
<d:href>/public/CrossDomain_PolicyFile_Specification%282%29.pdf</d:href>
<d:propstat>
<d:prop>
<d:getcontentlength>0</d:getcontentlength>
<d:getlastmodified
xmlns:b="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/"
b:dt="dateTime.rfc1123">Thu, 11 Mar 2010 06:01:54 +0000</d:getlastmodified>
<d:resourcetype />
</d:prop>
<d:status>HTTP/1.1 200 Ok</d:status>
</d:propstat>
<d:propstat>
<d:prop>
<d:creationdate />
<d:displayname />
<d:getcontenttype />
<d:getetag />
</d:prop>
<d:status>HTTP/1.1 404 Not Found</d:status>
</d:propstat>
</d:response>
</d:multistatus>

Original issue: http://code.google.com/p/sabredav/issues/detail?id=26

AtMail support

Original author: [email protected] (May 30, 2010 05:35:24)

Atmail currently does not support SabreDAV out of the box.

The first reason is that AtMail assumes it can concatenate an email address
to a base principal url to determine the principal url.

This is incorrect for SabreDAV, because it uses simple usernames to
determine the principal url.

There are likely other issues, so we'll have to dig into this.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=52

Sabre_DAV_Locks_Plugin#validateLock() doesn't validate ETags correctly when no lock tokens are supplied

Original author: [email protected] (June 02, 2010 17:53:16)

The problem is in line 551
(http://code.google.com/p/sabredav/source/browse/lib/Sabre/DAV/Locks/Plugin.php#551)
in the current trunk, the for-loops are only skipped when lock tokens are
supplied. So a client sending an ETag in the If: header without locktokens
will always get a 412 Precondition Failed response. The only client I've
seen so far with this behaviour is the "Lightning" extension for Mozilla
Thunderbird, and also presumably the stand-alone "Calendar" application.

As a quick workaround I've wrapped the throw line in an if-block checking
if either of $etagValid and $lockValid is false. But I think the whole ETag
checking should be moved out of the LocksPlugin because it doesn't actually
depend on a locking backend.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=53

time-range REPORT requests throw strange exception

Original author: [email protected] (December 30, 2010 13:37:35)

Using SabreDAV 1.4.0 (latest on repository at 29/12/2010)

A CalDAV client (iCal4OL) sends this request:

<C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:prop>
<D:getetag />
<C:calendar-data />
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR">
<C:comp-filter name="VEVENT">
<C:time-range start="20101129T230000Z" end="20131229T230000Z" />
</C:comp-filter>
</C:comp-filter>
</C:filter>
</C:calendar-query>

Note the start date is "20101129". SabreDAV gives the following exception:

<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre_DAV_Exception_BadRequest</s:exception>
<s:message>The supplied iCalendar date value is incorrect: 20101211T160000Z</s:message>
<s:sabredav-version>1.4.0</s:sabredav-version>
</d:error>

Note the changed data value: "20101211".

Original issue: http://code.google.com/p/sabredav/issues/detail?id=113

TemporaryFileFilter may fail

Original author: [email protected] (June 03, 2009 15:06:27)

This can be triggered using the FS_File/FS_Directory objects, the
TemporaryFileFilter and OS/X finder.

When OS/X tries to put a resourcefork and immediately requests the file it
fails. This is not consistently reproducable.

I have the entire output from a charles session, but this is not attached
because it contains private information.

Identified using 0.7

Original issue: http://code.google.com/p/sabredav/issues/detail?id=7

Error on missing XmlWriter extension

Original author: [email protected] (June 30, 2008 16:59:22)

What steps will reproduce the problem?

  1. disable XmlWriter extension
  2. call SabreDav

What is the expected output? What do you see instead?
expected: working webdav
actual: XmlWriter error

What version of the product are you using? On what operating system?
0.3

Please provide any additional information below.
Maybe just check for the extension, and/or provide an alternative...

Original issue: http://code.google.com/p/sabredav/issues/detail?id=2

iCal has issues with events with "&" in the summary.

Original author: [email protected] (March 13, 2010 14:43:08)

What steps will reproduce the problem?
If you create a blank calendar database and add an event via iCal called "Pizza and Beer", you can
delete the caldav account from ical, then re-add it and the event will show back up. I delete the
account to clear iCal's cache. However, if you repeat the same process with an event called
"Pizza & Beer", it is successfully created, but will not show up when you delete and re-add the
account.

Checking the traffic shows the event being downloaded to iCal correctly. So, I'm not sure if this
is an encoding problem or what.

On another (but kind of related) note, I notice that when an event is passed to the client, the
carriage returns are remove from the calendarobject data. I thought, according to the spec,
every line had to be delimited with CRLF? When I remove the line in CalendarObject.php to keep
the \r in, I noticed \r gets passed as "&#13;". So, I'm assuming the "&" in "Pizza & Beer" is
triggering ical to think it's the beginning a UTF-8 encoded character?

I can post a traffic report of any of the above findings if needed.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=27

COPY a collection to a collection destination that contains a locked member should fail

Original author: [email protected] (October 19, 2010 15:26:35)

What steps will reproduce the problem?

  1. COPY a collection containing a file resource to a valid (empty) destination
  2. LOCK the copy of the file resource (in the destination collection)
  3. Attempt to repeat the COPY.

What is the expected output?
The second COPY should fail; I think with a 207 Multi-Status, containing a 424 Failed Dependency on the destination, and a 423 Locked on the locked file resource.

What do you see instead?
It succeeds.

What version of the product are you using?
1.3.0

What client software are you using?
Custom Java test-rig

Please provide any additional information below.
Probably related to issue 92.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=99

guessBaseUri() and PATH_INFO

Original author: [email protected] (August 18, 2010 17:34:25)

I try to test the code from http://code.google.com/p/sabredav/wiki/GettingStarted and got an error message:

<br />
<b>Fatal error</b>: Uncaught exception 'Sabre_DAV_Exception' with message 'The REQUEST_URI (/public/webdav/test/index.php) did not end with the contents of PATH_INFO (). This server might be misconfigured.' in /public/webdav/test/lib/Sabre/DAV/Server.php:283
Stack trace:
#0 /public/webdav/test/lib/Sabre/DAV/Server.php(166): Sabre_DAV_Server-&gt;guessBaseUri()
#1 /public/webdav/test/index.php(11): Sabre_DAV_Server-&gt;__construct(Object(Sabre_DAV_FS_Directory))
#2 {main}

thrown in <b>/webdav/test/lib/Sabre/DAV/Server.php</b> on line <b>283</b><br />

I use version 1.2.4 on Apache 2 + PHP 5.2 (FastCGI). This is a really simple error. Just replace the line 264 of DAV/Server.php

if (!is_null($pathInfo)) {

with

if (!empty($pathInfo)) {

Original issue: http://code.google.com/p/sabredav/issues/detail?id=73

Undefined variable notice in FS backened for Locks plugin

Original author: [email protected] (August 07, 2009 13:52:29)

Message:
Undefined variable: locks
Occurred in file /so/sites/shot/pear/lib/Sabre/DAV/Locks/Backend/FS.php on
line 81.

Stack Trace:

  1. In file /so/sites/shot/pear/lib/Sabre/DAV/Locks/Plugin.php line 236.
    Method: Sabre_DAV_Locks_Backend_FS->getLocks('.DS_Store')
  2. In file /so/sites/shot/pear/lib/Sabre/DAV/Locks/Plugin.php line 470.
    Method: Sabre_DAV_Locks_Plugin->getLocks('.DS_Store')
  3. In file /so/sites/shot/pear/lib/Sabre/DAV/Locks/Plugin.php line 143.
    Method: Sabre_DAV_Locks_Plugin->validateLock(<null>, <null>)
  4. In file unknown line unknown.
    Method: Sabre_DAV_Locks_Plugin->beforeMethod('DELETE')
  5. In file /so/sites/shot/pear/lib/Sabre/DAV/Server.php line 226.
    Method: call_user_func_array(array(<Sabre_DAV_Locks_Plugin object>,
    'beforeMethod'), array('DELETE'))
  6. In file /so/sites/shot/pear/lib/Sabre/DAV/Server.php line 630.
    Method: Sabre_DAV_Server->broadcastEvent('beforeMethod', array('DELETE'))
    3.
    In file /so/sites/shot/pear/lib/Sabre/DAV/Server.php line 112.
    Method: Sabre_DAV_Server->invoke()

Original issue: http://code.google.com/p/sabredav/issues/detail?id=13

Inconsitent logic

Original author: [email protected] (March 08, 2012 06:57:07)

$summary = null;

This one works:
$compoent->add(new Sabre_VObject_Property('DESCRIPTION', $summary));

This one not:
$compoent->add('DESCRIPTION', $summary);

Because Sabre_VObject_Component::add checks if $itemValue is a scalar. Unfortunately null is no scalar. But the Sabre_VObject_Property which is created on demand accepts null as value.

I would propose two things.

If null is allowed as value the check should be extended to test the value to be either null or scalar.
Move the check if $itemvalue is valid to the Sabre_VObject_Property. This class should know best which values it can accept.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=197

comma and semicolon must be escaped in values

Original author: [email protected] (September 10, 2011 08:32:44)

According to RFC 2426 (see: http://www.rfc-ref.org/RFC-TEXTS/2426/chapter2.html#sub5 ) comma and semicolon must be escaped in values. And it seems like colons also have to get escaped.

I think the correct place to do this should be Sabre_VObject_Property::serialize(). Sabre_VObject_Parameter::serialize() is escaping them.

Is it missing in Sabre_VObject_Property::serialize() by intent?

Original issue: http://code.google.com/p/sabredav/issues/detail?id=145

Problem with MOVE requests and Sabre_DAV_Locks_Plugin#validateLock()

Original author: [email protected] (March 15, 2011 16:25:59)

Using the Windows Mini Redirector often results in errors when trying to save Office files ("permission denied").

I traced the cause back to the Sabre_DAV_Locks_Plugin#validateLock(). In a MOVE request this method checks both the source and destination URI and will always throw a Sabre_DAV_Exception_PreconditionFailed if no locks are found for the destination, since the $lockValid variable is set to false for each condition/token and then reset to true if the locks match.

So if there are no locks, $lockValid will stay false and trigger the exception. If I add a check that sets $lockValid to true if $locks is empty, Office can complete the MOVE and thus save the file without errors.

I'm not sure if this is an actual bug in SabreDAV or just wrong behaviour by the WebDAV client...

Original issue: http://code.google.com/p/sabredav/issues/detail?id=118

Deadly segmentation fault using OS/X as a server

Original author: [email protected] (June 28, 2008 22:33:36)

Got a report of segmentation faults on OS/X

No testing on OS/X has been done yet, so this should happen to find out if
the issue was local to the reporters machine, or an OS/X issue in general.

Apache 1 with PHP 5.2.5 was used.

If the bug is in SabreDAV, a segmentation fault could indicate that there's
a recursive loop going on.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=1

Spurious DOMExceptions / "Namespace Error"

Original author: [email protected] (July 14, 2009 15:46:49)

Hi Evert,

On our website MyDrive.ch we sometimes have DOMException errors on PROPFIND
requests in our logs. I don't know yet which clients are causing this
because none of our users have complained about it so far...

Here's a partial backtrace for a PROPFIND request to
"/Foto-Gallerie/Mika%5fHolger%5fMeuselwitz/14-07-2009-2/Gasthof%20Waltersdorf.JPG"
(only the SabreDAV part):

DOMException: Namespace Error
in /var/www/mydrive/vendor/sabredav/lib/Sabre/DAV/Server.php at line 1358
#0 /var/www/mydrive/vendor/sabredav/lib/Sabre/DAV/Server.php(1358):
DOMDocument->createElementNS('', 'x1:')
#1 /var/www/mydrive/vendor/sabredav/lib/Sabre/DAV/Server.php(1239):
Sabre_DAV_Server->writeProperties(Object(DOMElement), '/Foto-Gallerie/...',
Array, Array)
#2 /var/www/mydrive/vendor/sabredav/lib/Sabre/DAV/Server.php(418):
Sabre_DAV_Server->generatePropfindResponse(Array, Array)
#3 [internal function]: Sabre_DAV_Server->httpPropfind()
#4 /var/www/mydrive/vendor/sabredav/lib/Sabre/DAV/Server.php(758):
call_user_func(Array)

The problem seems to be that the namespace passed to createElementNS() is
empty? Any idea what could be causing this, or how to work around it?

We were using 0.7 until now, I just saw that 0.8 was available and after
some quick tests upgraded to it. The relevant section in DAV/Server.php
doesn't seem to have changed, so the problem is probably still there.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=8

ETag handling wrong

Original author: [email protected] (October 12, 2010 00:49:16)

In the Sabre_DAV_Server->checkPreconditions() method the ETag from If-Match and If-None-Match headers are stripped of their surrounding quotes.
RFC 4818 states ETags are according to RFC 2616. There, RFC 2616 section 3.11, an ETag is defined as the whole thing not just the content of the quoted-string. Also an ETag might be prefixed with a "W/" to indicate a weak ETag. Not sure how that has to be handled though...

What happens now is, if an ETag has been calculated (by FSExt) it is sent out in headers without quotes.
Which is not a valid HTTP 1.1 ETag. The WebDAV DAV:getetag property also has the quotes within the element (See example at RFC 4818 section 9.1.5).

I suggest the following to fix the problem:
The getETag() methods in IFile instances should return the whole ETag with quotes (and possible prefixes).
The checkPreconditions() method in Server.php should not strip off the quotes for comparison.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=85

Locked files in Office 2010

Original author: [email protected] (March 22, 2010 12:02:11)

I have installed Office 2010 on Windows XP 32 bits and Windows 7 64 bits,
created the webfolders access correctly (https) and activated the locks
plugin.

When Word 2010 tries to open a file, it is downloaded and shown
successfully, but when trying to save it: "Upload failed. Other user locked
file for edition. Notify me when it becomes available."
Of course nobody else except me was editing the file.

I know it is Sabre's fault because I tried the Swissdisk service on the
same conditions and with it Office has no problem.

I've attached a Charles session opening a http (no https) connection.

SabreDAV is running with Digest Auth and Locks plugin.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=34

Add stronger error messages for Finder Chunked problem.

Original author: [email protected] (March 01, 2010 16:33:13)

What steps will reproduce the problem?

  1. Connect to a SabreDAV server using Mac OS X's Finder (snow leopard)
  2. Try to copy a file to the SabreDAV server (drag and drop)
  3. The file wil be uploaded, the filesize will increment but when the upload is complete the file
    will be zero kb

What is the expected output? What do you see instead?
Expected the file to be properly created, but instead a zero-sized file is created

What version of the product are you using? What client software are you
using?
SabreDAV 1.0.7
Mac OS X Snow Leopard
server is on a Dreamhost account

Original issue: http://code.google.com/p/sabredav/issues/detail?id=25

Windows XP Webfolder - Not Login

Original author: [email protected] (October 03, 2009 21:16:57)

I have configure SABREDAV correct and works
correctly on connect by netdrive...

But, do not work when connect by windows xp webfolder... windows login
reappears strongly at type login and password, same at the correct login...

Open the webfolder by Microsoft WORD (Open File) works correctly, but not
by windows xp webfolder...

Whats the problem ???

Original issue: http://code.google.com/p/sabredav/issues/detail?id=14

ANSI C time interpreted incorrectly - post issue 88 fix

Original author: [email protected] (October 14, 2010 00:37:23)

Follow up on issue 88:
Did you leave out the appended " GMT" on ANSI C dates on purpose (in my fix to the fix to the fix ;-) )?
My thoughts were that if you have your server set to some other locale than GMT this date gets interpreted as a local time by strtotime() and not as GMT as RFC 2616 dictates.
I have tested this by setting date_default_timezone_set('UTC') and date_default_timezone_set('CET'). They produce different timestamps.

Glad I could help though.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=89

Sabre_DAV_Tree_Filesystem "Warning: scandir(): Directory name cannot be empty in lib/Sabre/DAV/FS/Directory.php on line 94"

Original author: [email protected] (June 03, 2012 21:08:45)

I'm looking at using Sabre_DAV_Tree_Filesystem instead of Sabre_DAV_ObjectTree and I am running into an issue:

$tree = new Sabre_DAV_Tree_Filesystem('/Users/me/davroot');
$server = new Sabre_DAV_Server($tree);
$server->setBaseUri('/');
$server->exec();

When I do a PROPFIND on / I get:

"Warning: scandir(): Directory name cannot be empty in lib/Sabre/DAV/FS/Directory.php on line 94"

Original issue: http://code.google.com/p/sabredav/issues/detail?id=217

Sabre/CalDAV/CalendarObject.php:70 Undefined $this->calendarBackend

Original author: [email protected] (July 01, 2011 13:29:34)

When running a caldav server with custom backends, the above error occurs when trying to access it. (It probably hits other setups, too)

Looks like a forgotten replace when renaming variables.

The constructor looks like this:
public function __construct(Sabre_CalDAV_Backend_Abstract $caldavBackend,$calendarInfo,$objectData) {
$this->caldavBackend = $caldavBackend;
/* snip */
}

The offending line is

$this->objectData = $this->calendarBackend->getCalendarObject($this->objectData['calendarid'], $this->objectData['uri']);

calendarBackend is not mentioned anywhere else in this class or any classes extended by it.
Changing $this->calendarBackend to $this->caldavBackend seems to fix the problem.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=131

TRIGGER:PT0S throws exception

Original author: [email protected] (April 12, 2012 12:49:15)

The following event breaks the SabreDAV server and raises an exception on all queries that have to parse the event:

BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
UID:20120330T155305CEST-6585fBUVgV
DTSTAMP:20120330T135305Z
DTSTART;TZID=Europe/Berlin:20120326T155200
DTEND;TZID=Europe/Berlin:20120326T165200
SUMMARY:original summary
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:AUDIO
ATTACH;VALUE=URI:Basso
TRIGGER:PT0S
END:VALARM
END:VEVENT
END:VCALENDAR

The problem is the TRIGGER, I'm getting this response:

?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Exception</s:exception>
<s:message>DateInterval::__construct(): Unknown or bad format (P)</s:message>
<s:sabredav-version>1.6.2</s:sabredav-version>
</d:error>

I created a unit test and will send you a pull request with this failing test. Should be a quick fix, I think the problem is in Sabre_VObject_DateTimeParser::parseDuration(), because all values are 0 and the $duration variable contains "P" at the end, and DateTime cannot handle that.

Maybe you can have a quick look?

Original issue: http://code.google.com/p/sabredav/issues/detail?id=205

The href in a multistatus for a non-collection resource has a trailing slash

Original author: [email protected] (January 03, 2011 16:14:02)

What steps will reproduce the problem?

  1. PROPFIND on a noncollection resource

What is the expected output?
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns&quot;&gt;&lt;d:response&gt;&lt;d:href&gt;/sabre/dav/README.txt&lt;/d:href&gt;&lt;d:propstat&gt;&lt;d:prop&gt;&lt;d:resourcetype/&gt;&lt;/d:prop&gt;&lt;d:status&gt;HTTP/1.1 200 Ok</d:status></d:propstat></d:response></d:multistatus>

Results:
What do you see instead?
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns&quot;&gt;&lt;d:response&gt;&lt;d:href&gt;/sabre/dav/README.txt/&lt;/d:href&gt;&lt;d:propstat&gt;&lt;d:prop&gt;&lt;d:resourcetype/&gt;&lt;/d:prop&gt;&lt;d:status&gt;HTTP/1.1 200 Ok</d:status></d:propstat></d:response></d:multistatus>

What version of the product are you using? What client software are you
using?
1.4.0 (doesn't happen in 1.3)

Please provide any additional information below.
The problem is at line 1327 in Sabre_DAV_Server:
if ($myPath!='' && isset($newProperties[200]['{DAV:}resourcetype']) && $newProperties[200]['{DAV:}resourcetype']->getValue()!==null) $newProperties['href'] .='/';

It happens because the node returns an array of resourcetype values, which might be empty for a non-collection resource, but which is never null.

So that could be fixed as follows:
if ($myPath!='' && isset($newProperties[200]['{DAV:}resourcetype']) && in_array("{DAV:}collection", $newProperties[200]['{DAV:}resourcetype']) $newProperties['href'] .='/';

Tested here, seems to work.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=114

[Bug] Mac OS X Finder client

Original author: [email protected] (July 22, 2009 06:23:15)

What steps will reproduce the problem?

  1. Install the lastest version (SabreDAV-0.9.471.tar.gz)
  2. Test with browser or with Cyberduck, Transmit all is ok
  3. Test with Mac OS X Finder Client, I can't write/modify/delete anything

What is the expected output? What do you see instead?
No error msg, Volume appear on read-only mode

What version of the product are you using? On what operating system?
Last, Mac Os X 10.5.7

Please provide any additional information below.
Maybe you should add to Sabre_HTTP_Request a new method for activate or not
HTTP Trace (server side)

In general way, you should add to your server a verbose level

Original issue: http://code.google.com/p/sabredav/issues/detail?id=9

Outlook calendar 2010 doesn't ask for username and password to access CalDAV server SabreDAV

Original author: [email protected] (March 29, 2012 15:40:05)

Hi,

To reproduce here are the 2 steps:

  1. install SabreDAV with CalDAV configuration as mentionned in the wiki
  2. In Outlook click New Agenda (calendar) and put: http://127.0.0.1/sabre/calendarserver.php/calendars/admin/default/Admin.ics

The problem is:
The calendar is added without giving username and password (admin/admin)
NOTE: inside web browser authentication works fine.

My environment is:

  • SabreDAV-1.6.1 on PostgreSQL 9.1.0, compiled by Visual C++ build 1500, 64-bit
  • Windows 7 pro
  • Easyphp 5.3.8.1

Thank you.

NOTE2: Doesn't seem to work with Thunderbird/lightning...

Original issue: http://code.google.com/p/sabredav/issues/detail?id=202

Apparent encoding issue with international characters.

Original author: [email protected] (March 21, 2010 11:55:31)

Report from the blog:
i did some tests with xp/sp3 and had the following problems (i used folder
skte):

  • German umlauts (äöü ...) in filenames were translated in %xx characters
  • German umlauts in folder names make folder unreachable

This was tested in OS/X, but the error could not be reproduced there.
Testcases should be gathered to figure out what encoding each client sends
the characters; Perhaps it doesn't matter and they should be treated as
binary instead, but in any case something is going wrong with windows.

Original issue: http://code.google.com/p/sabredav/issues/detail?id=33

calendar-query REPORT with a time-range filter matching a single occurrence inside the specified range fails to match

Original author: [email protected] (October 19, 2010 12:32:16)

What steps will reproduce the problem?

  1. Create a "birthday" VEVENT with DTSTART:19560108T000000, and DTEND:19560108T235959, and RRULE:FREQ=YEARLY;INTERVAL=1;COUNT=70
  2. Submit a calendar-query REPORT request with a filter that encloses a recurrence other than the initial recurrence; such as the following:

REPORT /calendars/jackc/ HTTP/1.1
X-Daydream-Test: CQREPORT, 10-year range, for a VEVENT whose first ocurrence is inside the range.
Host: calendars
Depth: 1
Authorization: Basic amFja2M6YmVydGhh
Content-Length: 708

<CD:calendar-query
xmlns:CD="urn:ietf:params:xml:ns:caldav"
xmlns:XC="urn:ietf:params:xml:ns:xcal"
xmlns:D="DAV:">
<D:prop>
<D:resourcetype/>
<CD:calendar-data>
<CD:comp name="VCALENDAR">
<CD:prop name="PRODID"/>
<CD:comp name="VEVENT">
<CD:prop name="SUMMARY"/>
<CD:prop name="UID"/>
</CD:comp>
</CD:comp>
</CD:calendar-data>
</D:prop>
<CD:filter>
<CD:comp-filter name="VCALENDAR">
<CD:comp-filter name="VEVENT">
<CD:time-range start="19500101T000000Z" end="19600101T000000Z">
</CD:time-range>
</CD:comp-filter>
</CD:comp-filter>
</CD:filter>
</CD:calendar-query>

What is the expected output?
The "birthday" event resource should match the filter, and be returned in a multistatus reponse.

What do you see instead?
An empty mutistatus.

What version of the product are you using?
1.3.0

What client software are you using?
Custom Java test-rig

Please provide any additional information below.
http://tools.ietf.org/html/rfc4791#section-7.4
"When such time range filtering is used, special consideration must be
given to recurring calendar components, such as VEVENT and VTODO.
The server MUST expand recurring components to determine whether any
recurrence instances overlap the specified time range. If one or
more recurrence instances overlap the time range, then the calendar
object resource matches the filter element."

Original issue: http://code.google.com/p/sabredav/issues/detail?id=97

beforeUnlock fired twice 1.5.6

Original author: [email protected] (February 09, 2012 10:23:22)

What steps will reproduce the problem?

  1. Create a listener for the beforeUnlock event
  2. Let a client unlock a file

What is the expected output? What do you see instead?
The listener is invoked twice.

Please use labels and text to provide additional information.

In class Sabre_DAV_Locks_Plugin in function httpUnlock on line 373:
$this->server->broadcastEvent('beforeUnlock',array($uri, $lock));
$this->unlockNode($uri,$lock);

In function unlockNode on line 424:
if (!$this->server->broadcastEvent('beforeUnlock',array($uri,$lockInfo))) return;

Original issue: http://code.google.com/p/sabredav/issues/detail?id=191

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.