[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] r18494: {tor} Revert an erroneous part of the non-fix to bug 326, and add (in tor/trunk: . src/or)
Author: nickm
Date: 2009-02-11 12:23:11 -0500 (Wed, 11 Feb 2009)
New Revision: 18494
Modified:
tor/trunk/ChangeLog
tor/trunk/src/or/eventdns.c
Log:
Revert an erroneous part of the non-fix to bug 326, and add comments to explain why it was erroneous.
Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog 2009-02-11 17:22:34 UTC (rev 18493)
+++ tor/trunk/ChangeLog 2009-02-11 17:23:11 UTC (rev 18494)
@@ -16,6 +16,9 @@
logs. Bugfix on 0.2.1.8-alpha.
- Clients no longer cache certificates for authorities they do not
recognize. Bugfix on 0.2.0.9-alpha.
+ - When we can't transmit a DNS request due to a network error, retry
+ it after a while, and eventually transmit a failing response to the
+ RESOLVED cell. Bugfix on 0.1.2.5-alpha.
o Minor features:
- On Linux, use the prctl call to re-enable core dumps when the user
Modified: tor/trunk/src/or/eventdns.c
===================================================================
--- tor/trunk/src/or/eventdns.c 2009-02-11 17:22:34 UTC (rev 18493)
+++ tor/trunk/src/or/eventdns.c 2009-02-11 17:23:11 UTC (rev 18494)
@@ -2046,9 +2046,10 @@
nameserver_write_waiting(req->ns, 1);
return 1;
case 2:
- /* failed in some other way */
+ /* failed to transmit the request entirely. */
retcode = 1;
- break;
+ /* fall through: we'll set a timeout, which will time out,
+ * and make us retransmit the request anyway. */
default:
/* transmitted; we need to check for timeout. */
log(EVDNS_LOG_DEBUG,
@@ -2060,11 +2061,10 @@
(unsigned long) req);
/* ???? Do more? */
}
+ req->tx_count++;
+ req->transmit_me = 0;
+ return retcode;
}
-
- req->tx_count++;
- req->transmit_me = 0;
- return retcode;
}
static void