- From: Ken Murchison <murch@fastmail.com>
- Date: Thu, 28 May 2026 10:03:20 -0400
- To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
- Message-ID: <651dfce9-1f73-4536-8c10-15c5447aeab4@fastmail.com>
All,
I am reviewing the If header field processing in the Cyrus *DAV server
component.
I'm confused by the text in RFC 4918 with respect to a MOVE request
where both the source and destination resources are locked.
The last sentence of Section 7.5
<https://datatracker.ietf.org/doc/html/rfc4918#section-7.5> states:
For example, if a resource is to be moved
and both the source and destination are locked, then two lock tokens
must be submitted in the If header, one for the source and the other
for the destination.
This leads me to believe that the MOVE request would have to contain two
Tagged-List components and look something like:
MOVE /file1.txt HTTP/1.1
Destination: /file2.txt
Overwrite: T
If: </file1.txt> (file1-lock-token)
</file2.txt> (file2-lock-token)
Logic would tell me that BOTH of the submitted lock tokens would have to
match their respective resources in order to successfully process the MOVE.
However, the last paragraph in Section 10.4.3
<https://datatracker.ietf.org/doc/html/rfc4918#section-10.4.3> states:
Finally, the whole If header evaluates to true if and only if at
least one of the No-tag-list or Tagged-list productions evaluates to
true.
I read this as saying that ONLY ONE of the submitted lock tokens need to
match, NOT both. Am I reading the text incorrectly or is the text
itself incorrect?
--
Kenneth Murchison
Staff Software Developer
Fastmail US LLC
IETF MailMaint Co-Chair
Received on Thursday, 28 May 2026 15:34:33 UTC