Changeset 699

Show
Ignore:
Timestamp:
15/09/08 13:53:50 (4 months ago)
Author:
smoku
Message:

Merged IDNA domains resolution support patch by Norman Rasmussen

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/s2s/out.c

    r690 r699  
    2020 
    2121#include "s2s.h" 
     22 
     23#include <idna.h> 
    2224 
    2325/* 
     
    10271029        xhash_free(query->hosts); 
    10281030        query->hosts = NULL; 
    1029         out_resolve(query->s2s, query->name, query->results, query->expiry); 
     1031        char *domain; 
     1032        if (idna_to_unicode_8z8z(query->name, &domain, 0) != IDNA_SUCCESS) 
     1033        { 
     1034            log_write(query->s2s->log, LOG_ERR, "idna dns decode for %s failed", query->name); 
     1035            /* TODO: Is it better to shortcut resolution failure here? */ 
     1036            domain = strdup(query->name); 
     1037        } 
     1038        out_resolve(query->s2s, domain, query->results, query->expiry); 
     1039        free(domain); 
    10301040        free(query->name); 
    10311041        free(query); 
     
    10371047 
    10381048    query->s2s = s2s; 
    1039     query->name = strdup(dns->name); 
     1049    if (idna_to_ascii_8z(dns->name, &query->name, 0) != IDNA_SUCCESS) 
     1050    { 
     1051        log_write(s2s->log, LOG_ERR, "idna dns encode for %s failed", dns->name); 
     1052        /* TODO: Is it better to shortcut resolution failure here? */ 
     1053        query->name = strdup(dns->name); 
     1054    } 
    10401055    query->srv_i = -1; 
    10411056    query->hosts = xhash_new(71);