- From: Chris Knight <Christopher.D.Knight@nasa.gov>
- Date: Fri, 11 Jul 2003 14:24:54 -0700
- To: Julian Reschke <julian.reschke@gmx.de>
- CC: "'w3c-dist-auth@w3.org'" <w3c-dist-auth@w3.org>
Reading this discussion has brought up another point of confusion that may need clarification in the spec. If you have a binding loop and you are doing a Depth: infinity PROPFIND, you either (correct me if I'm wrong, 'course): a) return a 506 Loop Detected error b) return a 207 Multistatus containing responses and when you come across loops, identify them as such with a 506 Loop Detected What's unclear to me (perhaps due to the example given in the spec) is that, in the second case, do you continue traversing the tree when a 506 is encountered or do you terminate traversal? For example, if you had the following example: --C- v | 1-A->2-B->3 -D->4 Sorry for the poor ASCII graphics and it's probably unreadable. The numbers represent unique resources (think of them as resource id's.) The textual description is that the root collection "/" contains two members "/A" and "/D". "/A" contains one member "/A/B" and "/A/B" contains one member "/A/B/C" which is bound to "/A" (resource id 2). Now, presuming we do a depth-first search and we go down "/A/B" first, we would report a 200 for "/A", a 200 for "/A/B", a 506 for the loop "/A/B/C", and a 200 for "/A/D". Correct? Or do I report a 200 for "/A/B/C" and then a 506 for the fact that "/A/B/C" created a loop? How would I tell where the loop connected to? (i.e. how do I tell the loop goes back to resource id 2 and not 1?) Would I do a followup PROPFIND on "/A/B/C" to determine the resource id? What if I got back 10 506 responses? Would it be possible (correct) to either report a 200 for "/A/B/C" (containing the resource-id property) and then a 506? Or perhaps a "Resource-ID" HTTP header in the 506 response? This is important if we want clients to be able to replicate loops across servers.
Received on Friday, 11 July 2003 17:40:29 UTC