|
@@ -109,11 +109,21 @@ int dns_resolve(connection_t *exitconn) {
|
|
|
struct cached_resolve *resolve;
|
|
|
struct cached_resolve search;
|
|
|
struct pending_connection_t *pending_connection;
|
|
|
+ struct in_addr in;
|
|
|
uint32_t now = time(NULL);
|
|
|
assert_connection_ok(exitconn, 0);
|
|
|
|
|
|
- /* first take this opportunity to see if there are any expired
|
|
|
- resolves in the tree.*/
|
|
|
+#if 0 /* only enable this once we've found the conn-munging bug */
|
|
|
+ /* first check if exitconn->address is an IP. If so, we already
|
|
|
+ * know the answer. */
|
|
|
+ if (tor_inet_aton(exitconn->address, &in) != 0) {
|
|
|
+ exitconn->addr = ntohl(in.s_addr);
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+
|
|
|
+ /* then take this opportunity to see if there are any expired
|
|
|
+ * resolves in the tree. */
|
|
|
purge_expired_resolves(now);
|
|
|
|
|
|
/* now check the tree to see if 'address' is already there. */
|