Re: The use of status code 506 (Loop Detected)

Werner Donné <[email protected]>
Newsgroups gmane.ietf.webdav
Organization Re
Message-ID <[email protected]>
Say we have the path /A/B/C/D/ where D/ is in fact a second
binding to /A/E/F/. If you move /A/B/ to /A/E/F/ you get
/A/E/F/B/C/D/. Because of the binding this is the same as
/A/E/F/B/C/F/, which is a loop. Note that we did a move of B/,
which is not involved in any binding itself.

It is also possible to introduce a second binding to a resource
without actually supporting the BIND method. Let's take a versioning
server, for example, with auto-version set to manual for /A/B/
and /A/C/. Say we want to move /A/B/D to /A/C/D. We have to
check out /A/B/ and /A/C/, provided we support versioning of
collections. After the move we check in /A/C/, but we undo the
check-out of /A/B/. We are then left with /A/B/D and /A/C/D,
both referring to the same resource.

So loops could occur without the binding spec being supported.

Regards,

Werner.

Julian Reschke wrote:
> Julian Reschke wrote:
>> ...
>> I think it would be better to return a 409 with 
>> DAV:error/DAV:cycle-allowed here.
>> ...
> 
> ...that being said, I wouldn't be opposed to adding an appendix that 
> both illustrates how MOVE requests can theoretically generate a bind 
> cycle, and how to handle that case.
> 
> BR, Julian
> 

-- 
Werner Donné  --  Re                                     http://www.pincette.biz
Engelbeekstraat 8                                               http://www.re.be
BE-3300 Tienen
tel: (+32) 486 425803	e-mail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.