Subject: [idn] amending [IDNA]?

From: [email-masked]
Date: Fri, 17 Aug 2001 18:03:23 -0700

Hi, Paul:

I suggest the following procedure specification 
adds to [IDNA], this is only an idea, while I have no 
intention to put proper words in the document.

[IDNA] is the component of internetionalization of 
Domain Name system. It contains procedures preparing
localized domain name representation for DNS and 
supply display representation for local standard 
according to DNS registered hostnames.

The IDN-label protocol is:

idn-label(input, tag-file, input-std, zonefile, idn-name)
{
  tag = find-tag(input, tag-file, input-std);
  switch (tag)
	{
	case USASCII : return(input);  /* a legal DNS string*/
	case NIL: idn-name= 
		uni-compress(input, UNICODE, DEFAULT-ACE);
		return strcat(DEFAULT-ACE, idn-name);
	default:
	 idn-folding(input, input-std, tag, USASCII, output-list);
	 record-label(input, output-list, zonefile, tag);
	 if idn-label-length(output-list) >= MaxLabelLength
	 {	 
		record-label(input, output-list, zonefile, tag);
		idn-truncate-label(output-list, tag);
	 }
	 idn-label-concat(output-list, idn-name);
	 return  strcat(tag, idn-name);
	} 

The idn-display protocol is:

idn-display-code(input, local-std, zonefile, display-string)
{
  display-string = NIL;
  search-zone(input, zonefile, local-std, display-string);
  if display-string 
	return display-string;

  tag = find-tag (input, tag-file, USASCII);
  switch (tag)
	{
	case USASCII : return(input);  /* a legal DNS string*/
	case NIL: return(input); /* legacy name */
	case DEFAULT-TAG: 
		local-std = UNICODE;
		uni-decompress(input, display-string)
		return display-string;
	default:
	 idn-folding(input, USASCII, tag, local-std, display-string);
	 if length(inupt) >= MaxLabelLength)  /* truncated */
	 	idn-request-fullname(input, output-list, host1, host2);
	 return display-string;
	} 

[nameprep] shall be the host for and only deal with

 idn-folding(input, in-std, tag, out-std, out-list)

for case folding table lookups, and leave exclusion list to be 
checked by idn-label procedure  within a tagged Unicode block.

I am looking forward for your comments.

Liana Ye

---

From: Harald Tveit Alvestrand <[email-masked]>
Date: Tue, 28 Aug 2001 15:14:52 +0200

>   tag = find-tag(input, tag-file, input-std);

I take it "idn-label" is a procedure to convert an input string into an IDN 
label for use in the DNS.

could you please explain a little more where the tag-file, input-std and 
zonefile arguments to the IDN-label protocol come from?

are these local parameters at the client, or does this occur at a different 
place in the system?

I do not understand.

             Harald