Subject: Re: Last Call: Preferred Format for Literal IPv6 Addresses in URL's to Proposed Standard

From: Ignatios Souvatzis <[email-masked]>
Date: Fri, 17 Sep 1999 10:23:05 +0200

On Thu, Sep 16, 1999 at 05:53:20PM -0700, Bill Fenner wrote:
> 
> I find that the issue of using brackets (a common UNIX shell
> metacharacter) to surround the address was discussed on the ipng list
> in July.  There are two arguments for using brackets:
> 
> 1. There are lots of URLs with other shell metacharacters in them
>    (like "?").
> 
> 2. Brackets don't cause a problem in commonly used shells unless there
>    is a file that matches the stuff inside the brackets.
> 
> 1 is specious; just because some URLs have problems does not mean that all
> should.
> 
> 2 is incorrect.  While sh and bash will accept command line arguments like
> this, csh and tcsh will not:
> 
> fenestro% sh
> $ echo http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
> http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
> $ tcsh
> fenestro% echo http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
> echo: No match.
> fenestro% csh
> fenestro% echo http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
> echo: No match.
> 
> I would suggest "{}" as a replacement for "[]".

sounds good to me... as long as commata aren't part of the IPv6 notation ;-)
which they aren't.

Was this discussed earlier and discarded?

	-is
--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page:                      http://playground.sun.com/ipng
FTP archive:                      ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [email-masked]
--------------------------------------------------------------------

---

From: Brian E Carpenter <[email-masked]>
Date: Fri, 17 Sep 1999 08:03:10 -0500

Life is a compromise. Needing to use shell escapes with certain
shells might be part of the compromise. Somebody will come
up with an issue with {} no doubt.

Has the shell issue been a problem with the [] notation for
literals in SMTP addresses?

  Brian

---

From: Harald Tveit Alvestrand <[email-masked]>
Date: Fri, 17 Sep 1999 14:43:58 +0200

>I would suggest "{}" as a replacement for "[]".

Unfortunately, tcsh won't do much good with {} either.

[hta@dokka]$ echo 
http://{FEDC:BA98:7654:3210:FEDC:BA98:7654:3210}:80/index.html
http://FEDC:BA98:7654:3210:FEDC:BA98:7654:3210:80/index.html

TCSH strips out the curly brackets. (6.07.02).
Let's face it. There are NO painless delimiters left.

                          Harald

--
Harald Tveit Alvestrand, Maxware, Norway
[email-masked]

---

From: Bill Fenner <[email-masked]>
Date: Thu, 16 Sep 1999 17:53:20 -0700

fenestro% sh

  Bill

---

From: Ignatios Souvatzis <[email-masked]>
Date: Fri, 17 Sep 1999 15:38:32 +0200

> Let's face it. There are NO painless delimiters left.

Uh... right. This was a thinko on my side. 
	-is
-- 
 * Progress (n.): The process through which Usenet has evolved from
   smart people in front of dumb terminals to dumb people in front of
   smart terminals.  -- [email-masked] (obscurity)
--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page:                      http://playground.sun.com/ipng
FTP archive:                      ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [email-masked]
--------------------------------------------------------------------

---

From: "Matt Crawford" <[email-masked]>
Date: Fri, 17 Sep 1999 10:16:53 -0500

> [...]

That rebuttal is itself specious.  There should be far fewer URLs in
use with literal addresses than with '?' characters.  "All" would be
an exaggeration of many orders of magnitude.
--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page:                      http://playground.sun.com/ipng
FTP archive:                      ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [email-masked]
--------------------------------------------------------------------

---

From: Bill Fenner <[email-masked]>
Date: Fri, 17 Sep 1999 09:17:26 -0700

Thanks to Harald for pointing out that {} won't work either.  How about
some innocuous character that may not appear in hostnames, like a comma?

http://,FEDC:BA98:7654:3210:FEDC:BA98:7654:3210,:80/index.html

It's not particularly pretty, but you're never really supposed to use
it very often anyway.

I'm afraid that I don't really buy the argument that there's no reason
not to make this harder to use for some population because you're not
supposed to use it anyway.  If it's possible to make it easier to use
and not damage the proposal, then why not do so?

  Bill

---

From: Steve Deering <[email-masked]>
Date: Fri, 17 Sep 1999 09:58:54 -0700

>and not damage the proposal, then why not do so?

Bill,

The problem is that changing the punctuation to solve one population's
problem creates a problem for another population.  Every non-alphanumeric,
printable ASCII character has a special meaning to some command line
or config file parser somewhere.

So a choice had to made.  The choice of "[]" was based on an existing
precedent for distinguishing IP addresses from DNS names in Internet
application-layer protocols (specifically SMTP).  It was understood
that this might require use of some parsers' special escape syntax for
inputting "special" characters.  The observation that URLs containing
literal IPv6 addresses URLs ought to be rarely used was invoked to
support the argument that this requirement for escaping in some parsers
is not a show-stopper.

Steve

---

From: Bill Fenner <[email-masked]>
Date: Fri, 17 Sep 1999 11:02:20 -0700

Steve,

  I certainly understand that there are other populations which might
have trouble with any given character.  To some extent, the size of those
populations might be of interest when choosing which one to inconvenience.
However, although it's easy to describe one segment of the population
that has trouble with the current proposal (anyone using csh, tcsh, zsh,
and possibly other UNIX shells who needs to use a literal IPv6 address in
a URL on the command line), it's hard to describe who might be affected
by a suggested change like using commas.  My gut tells me that literal
addresses are often used when things are broken, and UNIX command-line
utilites are often used when things are broken, so the combination of
literal IPv6 addresses in URLs and UNIX shells has a higher weight than
whatever breaks when you use a comma, but that's just me being handwavy
and self-centered =)

  I believe that the [] precedent for SMTP is not very relevant; it's
much less common to have a SMTP server on a machine that you have to
address via a literal address than a web server.

  Bill

---

From: Lyndon Nerenberg <[email-masked]>
Date: Fri, 17 Sep 1999 12:18:46 -0600

>>>>> "Bill" == Bill Fenner <[email-masked]> writes:

    Bill> My gut tells me that literal addresses
    Bill> are often used when things are broken, and UNIX command-line
    Bill> utilites are often used when things are broken, so the
    Bill> combination of literal IPv6 addresses in URLs and UNIX
    Bill> shells has a higher weight than whatever breaks when you use
    Bill> a comma, but that's just me being handwavy and self-centered

But as a debugging tool literals are going to be used very infrequently
(one would hope), and the people using them should be cognizant of
shell meta-characters, so I simply don't see this as an issue. Using
[]'s for literals is a very well entrenched practise, and I see no
reason for changing it.

--lyndon

---

From: Keith Moore <[email-masked]>
Date: Fri, 17 Sep 1999 10:42:48 -0400

> literals in SMTP addresses?

brackets do not create any problem for shell scripts which doesn't
exist already.  Other characters that need shell quoting (e.g.
? ; and & ) are already very common in URLs.

---

From: Lloyd Wood <[email-masked]>
Date: Sun, 19 Sep 1999 00:25:58 +0100 (BST)

> It's not particularly pretty, but you're never really supposed to use

commas break URL parsing in many text-to-html converters, including
Mhonarc (which can't handle news.com numerical urls as a result, e.g.
http://www.news.com/News/Item/0,4,28358,00.html?st.ne.1.head )

You'd end up with converted documentation with truncated hostnames.

Next!

L.

> and not damage the proposal, then why not do so?

<[email-masked]>PGP<http://www.ee.surrey.ac.uk/Personal/L.Wood/>

---

From: Robert Elz <[email-masked]>
Date: Sun, 19 Sep 1999 16:05:04 +1000

Date:        Sun, 19 Sep 1999 00:25:58 +0100 (BST)
    From:        Lloyd Wood <[email-masked]>
    Message-ID:  <[email-masked]>

  | commas break URL parsing in many text-to-html converters,

While I think comma gains nothing at all over [], this is no
objection to it at all.   Keeping IPv6 address literals away from
anwhere that any kind of URL trawler might find them, and wreaking
havoc if that ever happens, has to be an aim.   For v6 we really
have to move to a position where no-one ever embeds literal addresses
anywhere where there is any other choice (almost no matter how difficult
the other choice may be).   That is, we have to make it as cheap as
possible to change the things when needed - and having literal addresses
in e-mail archives is one of those places where it is essentially impossible
to update to the new address.

I think it would be a very good thing if doc parsers that hunt for
URLs in various files were never updated to handle IPv6 literal
addresses correctly, whatever syntax is adopted.   Clearly it is
impossible to prevent someone writing one in some e-mail, or even in
an html doc (editors tend not to have very many restrictions) but
we can make it almost useless for anyone to do so ... that is, I could
e-mail a literal IPv6 URL to comeone who could cut/paste that into
their browser, if that's what is necessary to debug some problem, but
if that e-mail ends up in some service organisation's archives, the
URL should not forever after be just "clickable" for anyone who
happens to chance across it.

I can sort of see (and concede that I lost the argument on) the need
to have IPv6 addresses pasteable into URLs (so the ':' syntax has to
remain a part of it) - I am not convinced, but I understand the
argument - but there seem to be way too many people with some desire
to make literal IPv6 URLs work just like any otehr URLs.   That's not
just unnecessary, it is positively the wrong thing to do.   These things
need to be understood, and correctly parsed, only by the kind of browser
that someone diagnosing problems or doing configuration would use
(that is, any general gui or text based browser type thing), by the kind
of equipment that will be fixed or configured by such means (which
necessarily must be IPv6 based equipment), and perhaps by any proxy that
might come between.   Nothing else at all (including all kinds of
URL converters, html parsers, ...) needs to be able to handle the things
at all, and it is much better for the net as a whole if none of it
ever does.

kre