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

Reply via email to