Re: Can we back up a bit and ask some basic questions?An alternate model
"D. J. Bernstein" <[email protected]>
| Newsgroups | gmane.ietf.imaa |
|---|---|
| Message-ID | <[email protected]> |
Simon Josefsson writes:
> Like in the user interface for /etc/aliases, /etc/mail/virtusertable etc.
Right.
Addresses are stored in many different locations, possibly with many
different encodings. When a program copies an address from one location
to another location with a different encoding, or compares addresses in
two locations with different encodings, it has to convert between the
encodings. Two examples:
* An SMTP server compares an SMTP RCPT to a configuration file
specifying acceptable RCPTs. If the address is encoded as GoofyCode
in SMTP, but as UTF-8 in the file, then the SMTP server has to
convert between UTF-8 and GoofyCode.
* A system administrator uses the ``more'' program to feed the
configuration file to ``xterm,'' which displays it on the screen.
If the address is actually encoded as GoofyCode in the file, but
UTF-8 in the xterm input, then the ``more'' program has to convert
between GoofyCode and UTF-8.
Any failure to do these conversions---or confusion over which encoding
is used for a particular location---produces failures for the users.
The cost of programming and deploying all these conversions is _the_
fundamental obstacle to moving beyond ASCII. Novice programmers might
not be aware of how many different locations and conversions we're
talking about here, so I've given a partial list of locations at the
end of this message.
The big advantage of UTF-8 is that it can and will be used everywhere,
eliminating all of these conversions. Non-universal encodings such as
GoofyCode don't have the same benefit; GoofyCode can't and won't be used
as the xterm input format, for example.
---D. J. Bernstein, Associate Professor, Department of Mathematics,
Statistics, and Computer Science, University of Illinois at Chicago
$DEFAULT in MDAs: partial mailbox name
$EXT in MDAs: mailbox name
$HOST in MDAs: domain name
$LOCALDOMAIN in DNS clients: domain name
$SENDER in MDAs: domain name
$SENDER in MDAs: mailbox name
.fetchmailrc, various locations: domain name
.fetchmailrc, various locations: login name (often includes mailbox name)
.qmail*: file names (partial mailbox names)
.ssh/known_hosts: domain name
/etc/aliases, various locations: domain name
/etc/aliases, various locations: mailbox name
/etc/hosts second column: domain name
/etc/hosts.allow, various locations: domain name
/etc/hosts.allow, various locations: port-113 name (often mailbox name)
/etc/namedb/named.conf, various locations: domain name
/etc/resolv.conf, search line: domain name
/etc/virtusertable, various locations: mailbox name
/public/file: domain name
/service/dnscache/root/servers: domain name
/service/tinydns/root/data, SOA hostmaster address: mailbox name
/service/tinydns/root/data, various locations: domain name
BIND log files, various locations: domain name
DNS packet, SOA hostmaster address: domain name
DNS packet, SOA hostmaster address: mailbox name (attached to domain name)
DNS packet: query domain name
DNS packet: record domain name
DNS registration form: domain name
HTTP Host field: domain name
IMAP messages, To and Cc and so on: domain name
IMAP messages, To and Cc and so on: mailbox name
POP USER commands: login name (often includes mailbox name and domain name)
POP messages, To and Cc and so on: domain name
POP messages, To and Cc and so on: mailbox name
SMTP HELO commands: domain name
SMTP MAIL and RCPT commands: domain name
SMTP MAIL and RCPT commands: mailbox name
SMTP messages, To and Cc and so on: domain name
SMTP messages, To and Cc and so on: mailbox name
add-host command line: domain name
add-mx command line: domain name
add-ns command line: domain name
dig command line: domain name
dig output, in SOA hostmaster address: mailbox name
dig output: domain name
dnscache log files, various locations: domain name
ezmlm subscription UI: mailbox name (includes domain name)
gethostbyname(), first argument: domain name
h_name and h_aliases: domain name
host command line: domain name
host output, in SOA hostmaster address: mailbox name
host output: domain name
http URLs: domain name
httpd.conf, various locations: domain name
lynx.cfg, various locations: domain name
mail.local command line: mailbox name
mailq output, various locations: domain name
mailq output, various locations: mailbox name
mailto URLs: domain name
mailto URLs: mailbox name
mutt command line: domain name
mutt command line: mailbox name
named zone files, SOA hostmaster address: mailbox name
named zone files, various locations: domain name
named zone files: file name (often includes domain name)
ndc command line: domain name
nsupdate command line: domain name
pine command line: domain name
pine command line: mailbox name
praliases output, various locations: domain name
praliases output, various locations: mailbox name
qmail-inject command line: domain name
qmail-inject command line: mailbox name
qmail-queue envelope input: domain name
qmail-queue envelope input: mailbox name
sendmail command line: domain name
sendmail command line: mailbox name
ssh command line: domain name
telnet command line: domain name
tinydns log files, various locations: domain name