- From: Julian Reschke <julian.reschke@gmx.de>
- Date: Sun, 13 Dec 2009 16:30:45 +0100
- To: WebDAV <w3c-dist-auth@w3.org>
- CC: Alexey Melnikov <alexey.melnikov@isode.com>, Cullen Jennings <fluffy@cisco.com>, Lisa Dusseault <lisa.dusseault@gmail.com>
Julian Reschke wrote:
> ...
> 1) copying-complex-loops
> (<http://greenbytes.de/tech/webdav/draft-ietf-webdav-bind-issues.html#issue.copying-complex-loops>)
> ...
This issue was raised by Robert Sparks during IESG review
(<https://datatracker.ietf.org/idtracker/ballot/1025/>):
-- snip --
The document provides some discussion of the ramifications of simple
loops, but its not immediately obvious that the recommendations for
handling them are sufficient for dealing with more complex loops. Are
there additional issues introduced when each added level of depth adds
an exponentially growing number of elements?
(view in fixed width)
+---------+
| root |
| |
| start |
+---------+
|
v
+---------+ +---------+
+---->| C1 | | C2 |<---+
| +->| | | |<-+ |
| | | a b | | a b | | |
| | +---------+ +---------+ | |
| | | | | | | |
| | | | +----+ | | |
| | | | | | | |
| | | +----------c---+ | | |
| | | | | | | |
| | | +----------+ | | | |
| | v v v v | |
| | +---------+ +---------+ | |
| | | C3 | | C4 | | |
| | | | | | | |
| | | a b | | a b | | |
| | +---------+ +---------+ | |
| | | | | | | |
| +----+ | +----+ +-----+ |
| | | |
| +----------c-----------------+
| |
+-----------------------+
-- snip --
We (the authors) have discussed this, and note that copying complex
loops works exactly like copying simple loops, and thus adding another
example isn't necessary.
That being said, we have added an additional explanation, and a short
statement about complex loops:
-- snip --
2.3.1. Example: COPY with 'Depth: infinity' in Presence of Bind Loops
As an example of how COPY with Depth infinity would work in the
presence of bindings, consider the following collection:
+------------------+
| Root Collection |
| bindings: |
| CollX |
+------------------+
|
|
+-------------------------------+
| Collection C1 |<-------+
| bindings: | |
| x.gif CollY | |
+-------------------------------+ |
| \ (creates loop) |
| \ |
+-------------+ +------------------+ |
| Resource R1 | | Collection C2 | |
+-------------+ | bindings: | |
| y.gif CollZ | |
+------------------+ |
| | |
| +--------+
|
+-------------+
| Resource R2 |
+-------------+
If a COPY with Depth infinity is submitted to /CollX, with
destination of /CollA, the outcome of the copy operation is that a
*
copy of the tree is replicated to the target /CollA:
***************************************************
+------------------+
| Root Collection |
| bindings: |
| CollX CollA |
+------------------+
| |
| +---------------------------+
| |
+-------------------+ |
| Collection C1 |<------------------+ |
| bindings: | | |
| x.gif CollY | | |
+-------------------+ | |
| \ (creates loop) | |
| \ | |
+-------------+ +-----------------+ | |
| Resource R1 | | Collection C2 | | |
+-------------+ | bindings: | | |
| y.gif CollZ | | |
+-----------------+ | |
| | | |
| +-------+ |
| |
+-------------+ |
| Resource R2 | |
+-------------+ |
|
+-------------------------------+
|
+-------------------+
| Collection C3 |<------------------+
| bindings: | |
| x.gif CollY | |
+-------------------+ |
| \ (creates loop) |
| \ |
+-------------+ +-----------------+ |
| Resource R3 | | Collection C4 | |
+-------------+ | bindings: | |
| y.gif CollZ | |
+-----------------+ |
| | |
| +-------+
|
+-------------+
| Resource R4 |
+-------------+
Note that the same would apply for more complex loops.
******************************************************
-- snip --
(new bits marked with "*" characters).
We hope that this addresses this comment.
Note a new draft has not yet been submitted, for now the changes can be
seen in context at
<http://greenbytes.de/tech/webdav/draft-ietf-webdav-bind-latest.html#rfc.issue.copying-complex-loops>
and
<http://greenbytes.de/tech/webdav/draft-ietf-webdav-bind-latest-from-previous.diff.html>.
Best regards, Julian
Received on Sunday, 13 December 2009 15:31:31 UTC