Explorar el Código

stop wasting time doing a case insensitive comparison for every dns name
every time we do any lookup. canonicalize the names to lowercase and be
done with it.


svn:r4035

Roger Dingledine hace 20 años
padre
commit
03720b39fd
Se han modificado 1 ficheros con 4 adiciones y 1 borrados
  1. 4 1
      src/or/dns.c

+ 4 - 1
src/or/dns.c

@@ -81,7 +81,7 @@ static SPLAY_HEAD(cache_tree, cached_resolve) cache_root;
 static int compare_cached_resolves(struct cached_resolve *a,
                                    struct cached_resolve *b) {
   /* make this smarter one day? */
-  return strncasecmp(a->address, b->address, MAX_ADDRESSLEN);
+  return strncmp(a->address, b->address, MAX_ADDRESSLEN);
 }
 
 SPLAY_PROTOTYPE(cache_tree, cached_resolve, node, compare_cached_resolves);
@@ -246,6 +246,9 @@ int dns_resolve(connection_t *exitconn) {
    * resolves in the tree. */
   purge_expired_resolves(now);
 
+  /* lower-case exitconn->address, so it's in canonical form */
+  tor_strlower(exitconn->address);
+
   /* now check the tree to see if 'address' is already there. */
   strlcpy(search.address, exitconn->address, sizeof(search.address));
   resolve = SPLAY_FIND(cache_tree, &cache_root, &search);