- From: Julian Reschke <julian.reschke@gmx.de>
- Date: Thu, 02 Dec 2004 23:27:14 +0100
- To: ejw@cs.ucsc.edu
- CC: "'WebDAV (WebDAV WG)'" <w3c-dist-auth@w3.org>
Jim Whitehead wrote:
>
>
>>REBIND /CollW HTTP/1.1
>>If: <http://example.com/CollW/CollY/CollZ> (<L3>)
>><http://example.com/CollW/CollX> (<L2>)
>>Overwrite: T
>>
>><rebind xmlns="DAV:">
>> <segment>CollX</segment>
>> <href>/CollW/CollY/CollZ</href>
>></rebind>
>>
>>Reason: we need to supply both lock tokens as we're removing
>>a binding
>>to C3 that is protected by the lock L3, and we're removing the target
>>binding /CollW/CollY which is protected by the lock L2.
>
>
> This doesn't sound right to me. I'd say that we're removing the binding
> C3:(CollZ->C1), and hence we need the lock token L3. We're then creating the
> binding C3:(CollZ->C2), which requires the lock tokens L3 and L2, since C3's
> state is being modified (hence L3), and C2 is the destination (hence L2).
> I'm pretty confident of all except the final statement.
I missed the bind loop... This causes L2 and L3 to protect overlapping
sets of URIs, so they must be shared locks, correct?
>>we're removing the target
>>binding /CollW/CollY which is protected by the lock L2.
>
>
> Isn't binding /CollW/CollY/ -- that is, C1:(CollY->C3) -- covered by lock
> L3?
I guess we should stick with diagrams until we agree on the operation
we're performing...:
Before:
+------------------+
| Root Collection |
| bindings: |
| CollW |
+------------------+
|
|
|
+-------------------------------+
| Collection C1 |<--------+
| bindings: | |
| CollX CollY | |
+-------------------------------+ |
| | |
| | (creates loop) |
| | |
+-----------------+ +------------------+ |
| Collection C2 | | Collection C3 | |
| LOCKED infinity | | LOCKED infinity | |
| bindings: | | bindings: | |
| {none} | | y.gif CollZ | |
+-----------------+ +------------------+ |
| | |
| +------+
|
+---------------------------+
| Resource R2 |
| (lock inhereited from C3) |
+---------------------------+
After:
+------------------+
| Root Collection |
| bindings: |
| CollW |
+------------------+
|
|
|
+-------------------------------+
| Collection C1 |
| bindings: |
| CollX CollY |
+-------------------------------+
| ^ |
+-+ |
|
+-----------------+ +------------------+
| Collection C2 | | Collection C3 |
| | LOCKED infinity |
| bindings: | | bindings: |
| {none} | | y.gif |
+-----------------+ +------------------+
|
|
|
+---------------------------+
| Resource R2 |
| (lock inhereited from C3) |
+---------------------------+
So C2 doesn't have any bindings in scope anymore (and thus no lock), and
C1's new binding CollX identifies C1 itself, creating a new bind loop.
I have the nagging feeling that this wasn't what you intended to do :-)
Best regards, Julian
--
<green/>bytes GmbH -- http://www.greenbytes.de -- tel:+492512807760
Received on Thursday, 2 December 2004 22:27:52 UTC