[BACK]Return to dns.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/dns.c between version 1.10 and 1.11

version 1.10, 2004/06/21 17:36:31 version 1.11, 2005/04/20 10:05:45
Line 142 
Line 142 
         return success;          return success;
 }  }
   
   /*
    * Check if hostname is numerical.
    * Returns -1 if hostname is numeric, 0 otherwise
    */
   static int
   is_numeric_hostname(const char *hostname)
   {
           struct addrinfo hints, *ai;
   
           memset(&hints, 0, sizeof(hints));
           hints.ai_socktype = SOCK_DGRAM;
           hints.ai_flags = AI_NUMERICHOST;
   
           if (getaddrinfo(hostname, "0", &hints, &ai) == 0) {
                   freeaddrinfo(ai);
                   return -1;
           }
   
           return 0;
   }
   
 /*  /*
  * Verify the given hostname, address and host key using DNS.   * Verify the given hostname, address and host key using DNS.
  * Returns 0 if lookup succeeds, -1 otherwise   * Returns 0 if lookup succeeds, -1 otherwise
Line 170 
Line 190 
         debug3("verify_hostkey_dns");          debug3("verify_hostkey_dns");
         if (hostkey == NULL)          if (hostkey == NULL)
                 fatal("No key to look up!");                  fatal("No key to look up!");
   
           if (is_numeric_hostname(hostname)) {
                   debug("skipped DNS lookup for numerical hostname");
                   return -1;
           }
   
         result = getrrsetbyname(hostname, DNS_RDATACLASS_IN,          result = getrrsetbyname(hostname, DNS_RDATACLASS_IN,
             DNS_RDATATYPE_SSHFP, 0, &fingerprints);              DNS_RDATATYPE_SSHFP, 0, &fingerprints);

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11