Re: [xmpp] draft-ietf-xmpp-address

Peter Saint-Andre <stpeter@stpeter.im> Wed, 07 July 2010 22:25 UTC

Return-Path: <stpeter@stpeter.im>
X-Original-To: xmpp@core3.amsl.com
Delivered-To: xmpp@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 3AC403A69A1 for <xmpp@core3.amsl.com>; Wed, 7 Jul 2010 15:25:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.439
X-Spam-Level:
X-Spam-Status: No, score=-3.439 tagged_above=-999 required=5 tests=[AWL=0.560, BAYES_00=-2.599, GB_I_LETTER=-2, J_CHICKENPOX_37=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3VQyHt3NCL9F for <xmpp@core3.amsl.com>; Wed, 7 Jul 2010 15:25:50 -0700 (PDT)
Received: from stpeter.im (stpeter.im [207.210.219.233]) by core3.amsl.com (Postfix) with ESMTP id 115103A699A for <xmpp@ietf.org>; Wed, 7 Jul 2010 15:25:50 -0700 (PDT)
Received: from leavealone.cisco.com (72-163-0-129.cisco.com [72.163.0.129]) (Authenticated sender: stpeter) by stpeter.im (Postfix) with ESMTPSA id 18E5B40E3B; Wed, 7 Jul 2010 16:25:53 -0600 (MDT)
Message-ID: <4C34FEF0.4040408@stpeter.im>
Date: Wed, 07 Jul 2010 16:25:52 -0600
From: Peter Saint-Andre <stpeter@stpeter.im>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
MIME-Version: 1.0
To: Bruce Campbell <b+jabber@bruce-2010.zerlargal.org>
References: <B27ACCD0-2352-4068-9358-4FDA38E273E5@nostrum.com> <alpine.CYG.2.00.1006281708470.4220@mhgneonet> <4C33CB96.8080209@stpeter.im> <4C33D36D.7000707@stpeter.im> <alpine.CYG.2.00.1007071238080.5224@mhgneonet> <4C34F2A1.6070604@stpeter.im> <alpine.CYG.2.00.1007071448140.4996@mhgneonet>
In-Reply-To: <alpine.CYG.2.00.1007071448140.4996@mhgneonet>
X-Enigmail-Version: 1.0.1
OpenPGP: url=http://www.saint-andre.com/me/stpeter.asc
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Cc: xmpp@ietf.org
Subject: Re: [xmpp] draft-ietf-xmpp-address
X-BeenThere: xmpp@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: XMPP Working Group <xmpp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/xmpp>, <mailto:xmpp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/xmpp>
List-Post: <mailto:xmpp@ietf.org>
List-Help: <mailto:xmpp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/xmpp>, <mailto:xmpp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 07 Jul 2010 22:25:52 -0000

On 7/7/10 4:17 PM, Bruce Campbell wrote:
> 
> On Wed, 7 Jul 2010, Peter Saint-Andre wrote:
> 
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> On 7/7/10 3:00 PM, Bruce Campbell wrote:
>>>
>>> On Tue, 6 Jul 2010, Peter Saint-Andre wrote:
>>>
>>>> On 7/6/10 6:34 PM, Peter Saint-Andre wrote:
>>>>> On 6/29/10 11:47 AM, Bruce Campbell wrote:
>>>>>
>>>>>> Alternatively, the ABNF for the JID address draft could be brought
>>>>>> into
>>>>>> alignment with 3986 by specifying:
>>>>>
>>>>>>  2.1.
>>>>>>   domain = fqdn / IPv4address / IP-literal
>>>>>>            ; the "IPv4address" and "IP-literal" rules are
>>>>>>            ; defined in RFC3986.
>>>>>
>>>>>> which would result in domainpart allowing a bare IPv4 address (
>>>>>> foo@1.2.3.4/bar ), and IPv6 and other literal addresses needing to be
>>>>>> enclosed in '[]' as per RFC3986 .
>>>>>
>>>>> Although I have never seen a domainpart consisting of an IPv6 address
>>>>> (and have rarely seen one consisting of an IPv4 address), I think it
>>>>> would be best to be consistent with RFC 3986 on this point.
>>>>
>>>> Looking at this more closely, I wonder if we could re-use the ihost
>>>> definition from RFC 3987. That would yield:
>>>>
>>>>   jid            = [ localpart "@" ] ihost [ "/" resource ]
>>>>                    ; the "ihost" rule is defined in RFC 3987
>>>>
>>>> where:
>>>>
>>>>   ihost          = IP-literal / IPv4address / ireg-name
>>>>   ireg-name      = *( iunreserved / pct-encoded / sub-delims )
>>>>   iunreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~" / ucschar
>>>>   ucschar        = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF
>>>>                  / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD
>>>>                  / %x40000-4FFFD / %x50000-5FFFD / %x60000-6FFFD
>>>>                  / %x70000-7FFFD / %x80000-8FFFD / %x90000-9FFFD
>>>>                  / %xA0000-AFFFD / %xB0000-BFFFD / %xC0000-CFFFD
>>>>                  / %xD0000-DFFFD / %xE1000-EFFFD
>>>>
>>>> and where the "IP-literal" and "IPv4address" rules are as in RFC 3896.
>>>>
>>>> This is a step in the right direction, because it appears (!) that the
>>>> ABNF in RFC 3920 doesn't allow anything but letter-digit-hyphen (i.e.,
>>>> nothing outside the US-ASCII range).
>>>>
>>>> However, ireg-name isn't quite right either because some its aspects
>>>> (pct-encoded and sub-delims) are included for compabitility with URI
>>>> syntax, and we don't need those in native JIDs.
>>>>
>>>> Thus we could do this:
>>>>
>>>>   jid            = [ localpart "@" ] domainpart [ "/" resourcepart ]
>>>
>>> Do we need a comment about implementations identifying the localpart,
>>> domainpart and resourcepart portions before applying any
>>> transformations? A quick glance shows %x2215 (division slash) just
>>> lurking there for the implementer who applies ToASCII to the domainpart
>>> before picking out the resourcepart.
>>
>> Good catch.
>>
>>>>   domainpart     = IP-literal / IPv4address / ifqdn
>>>>   ifqdn          = 1*( iunreserved )
>>>>                    ; the "iunreserved" rule is defined in RFC 3987
>>>>
>>>> I'm not an ABNF guru, so feedback is welcome.
>>>
>>> Apart from personally disliking '~' and '_' in the domainpart
>>
>> Yeah I don't like "_" either, and I've never seen "~"...
>>
>>> , WFM.
>>
>> Upon further reflection I'm still not sure that ifqdn works, because
>> iunreserved excludes characters that are disallowed in URIs but not
>> necessarily in internationalized domain names. I need to double-check.
>>
>>> You may want to add an additional comment pointing people to IDNA2003 or
>>> IDNA2008 for rules regarding "ifqdn"/"domain name slot" when used on
>>> public networks, eg:
>>>
>>>   ; the "iunreserved" rule is defined in RFC 3987
>>>   ; [IDNA-DEFS] defines additional rules for "ifqdn" if used on public
>>>   ; networks; see "domain name slot" in that document.
>>
>> Well, this version of the XMPP address spec is "legacy" in the sense
>> that it's not attempting to reflect the newer understanding of the world
>> from the IDNAbis documents. However, I think we need to cover any such
>> topics in the text and not in the ABNF. What exactly are the "rules for
>> use on public networks" and where in IDNA2003 are they mentioned?
> 
> Re-reading the text under 2.2 for domainpart, the rules and references
> for internationalized domain names pretty much covers it with references
> to IDNA2003 and DNS (I was reacting to the removal of the 63 char
> mention in the ABNF).  Never mind ;)

OK. :) I'll work to submit a new version tonight for WG review.

Peter

-- 
Peter Saint-Andre
https://stpeter.im/