[ietf-caldav] <DAV:href> and invalid URL characters

Gren Elliot <gren.elliot@scalix.com> Thu, 12 March 2009 15:45 UTC

Return-Path: <gren.elliot@scalix.com>
X-Original-To: ietf-caldav@osafoundation.org
Delivered-To: ietf-caldav@osafoundation.org
Received: from localhost (localhost [127.0.0.1]) by leka.osafoundation.org (Postfix) with ESMTP id 0028F77D70E for <ietf-caldav@osafoundation.org>; Thu, 12 Mar 2009 08:45:12 -0700 (PDT)
X-Virus-Scanned: by amavisd-new and clamav at osafoundation.org
X-Spam-Score: -0.74
X-Spam-Level:
X-Spam-Status: No, score=-0.74 tagged_above=-50 required=4 tests=[BAYES_20=-0.74]
Received: from leka.osafoundation.org ([127.0.0.1]) by localhost (leka.osafoundation.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id da9qVa4ZcsuG for <ietf-caldav@osafoundation.org>; Thu, 12 Mar 2009 08:45:02 -0700 (PDT)
Received: from mail.uk.scalix.com (mail.uk.scalix.com [82.111.253.243]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by leka.osafoundation.org (Postfix) with ESMTP id A7C8F77D70B for <ietf-caldav@osafoundation.org>; Thu, 12 Mar 2009 08:45:02 -0700 (PDT)
Received: from mail.uk.scalix.com (localhost.localdomain [127.0.0.1]) by mail.uk.scalix.com (8.13.8/8.13.8) with ESMTP id n2CFiwsS025698 for <ietf-caldav@osafoundation.org>; Thu, 12 Mar 2009 15:44:58 GMT
Received: from copper.uk.scalix.com (copper.uk.scalix.com [10.11.108.128]) by mail.uk.scalix.com (Scalix SMTP Relay 11.4.4.12572) via ESMTP; Thu, 12 Mar 2009 15:44:58 +0000 (GMT)
Date: Thu, 12 Mar 2009 15:44:57 +0000
From: Gren Elliot <gren.elliot@scalix.com>
To: CalDAV DevList <ietf-caldav@osafoundation.org>
Message-ID: <49B92DF9.2000106@scalix.com>
x-scalix-Hops: 1
User-Agent: Thunderbird 2.0.0.19 (Macintosh/20081209)
X-SMP-CT-RefID: str=0001.0A0B0204.49B92DFA.003E,ss=1,fgs=0
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"; format="flowed"
Content-Disposition: inline
Subject: [ietf-caldav] <DAV:href> and invalid URL characters
X-BeenThere: ietf-caldav@osafoundation.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Discussions on Calendar Access protocol based on WebDAV <ietf-caldav.osafoundation.org>
List-Unsubscribe: <http://lists.osafoundation.org/mailman/listinfo/ietf-caldav>, <mailto:ietf-caldav-request@osafoundation.org?subject=unsubscribe>
List-Archive: <http://lists.osafoundation.org/pipermail/ietf-caldav>
List-Post: <mailto:ietf-caldav@osafoundation.org>
List-Help: <mailto:ietf-caldav-request@osafoundation.org?subject=help>
List-Subscribe: <http://lists.osafoundation.org/mailman/listinfo/ietf-caldav>, <mailto:ietf-caldav-request@osafoundation.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Mar 2009 15:45:13 -0000

Hi,

Seeking some thoughts or a pointer to a definitive answer, as I can't 
see an immediate, definitive answer in the WebDAV spec.

We sometimes find that a CalDAV client ends up choosing the final 
element of the path name for a new calendar entry using a PUT similar to :

PUT 
/api/dav/Calendars/Users/Attendee.One@eg.test/Calendar/%7BCA-GREN-49B1-233%7D.ics 
HTTP/1.1

%7B happens to be the way you would encode "{" in a URL and %7D for "}", 
these characters not being valid in a well formed URL.

The same client then later asks for the same entry using :
REPORT /api/dav/Calendars/Users/Attendee.One@eg.test/Calendar/ HTTP/1.1
...

<?xml version="1.0" encoding="UTF-8" ?>
<x0:calendar-multiget xmlns:x0="urn:ietf:params:xml:ns:caldav" 
xmlns:x1="DAV:">
<x1:prop>
<x1:getetag/>
<x0:calendar-data/>
</x1:prop>
<x1:href>/api/dav/Calendars/Users/Attendee.One@eg.test/Calendar/{CA-GREN-49B1-233}.ics</x1:href>
</x0:calendar-multiget>

and is not happy when it gets the response :

<D:multistatus xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:D="DAV:">
<D:response>
<D:href>/api/dav/Calendars/Users/Attendee.One@eg.test/Calendar/%7BCA-GREN-49B1-233%7D.ics</D:href>
<D:propstat>
<D:prop>
<D:getetag>8</D:getetag>
<C:calendar-data>BEGIN:VCALENDAR&#13;
CALSCALE:GREGORIAN&#13;
...

So, my question is, what should go in <DAV:href>?  A well formed URL 
with correct encoding or is it OK (or even more correct?) to translate 
to the more visually friendly form?  Theoretically, in this particular 
case, the response could follow whatever was used in the request but...

Regards,
Gren.

-- 
Gren Elliot
Senior Software Engineer
*Scalix*
gren.elliot@scalix.com
Tel: +44 1344 381812
www.scalix.com