[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r8497: checkpoint changelog and general polishing (in tor/trunk: . doc src/or)



Author: arma
Date: 2006-09-25 01:59:13 -0400 (Mon, 25 Sep 2006)
New Revision: 8497

Modified:
   tor/trunk/ChangeLog
   tor/trunk/doc/TODO
   tor/trunk/doc/control-spec.txt
   tor/trunk/doc/socks-extensions.txt
   tor/trunk/doc/tor-win32-mingw-creation.txt
   tor/trunk/doc/tor.1.in
   tor/trunk/src/or/control.c
   tor/trunk/src/or/directory.c
   tor/trunk/src/or/dns.c
   tor/trunk/src/or/or.h
Log:
checkpoint changelog and general polishing


Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog	2006-09-25 05:24:43 UTC (rev 8496)
+++ tor/trunk/ChangeLog	2006-09-25 05:59:13 UTC (rev 8497)
@@ -1,51 +1,106 @@
 Changes in version 0.1.2.2-alpha - 2006-??-??
   o Major features:
     - Add server-side support for "reverse" DNS lookups (using PTR
-      records so clients can determine the canonical hostname for a given
-      IPv4 address).  This has been specified for a long time, but was
-      previously never implemented.  This is only supported by eventdns;
-      servers now announce in their descriptors whether they support
-      eventdns.
+      records so clients can determine the canonical hostname for a
+      given IPv4 address).  This has been specified for a long time,
+      but was previously never implemented.  This is only supported by
+      eventdns; servers now announce in their descriptors whether they
+      support eventdns.
     - Specify and implement client-side SOCKS5 interface for reverse DNS
       lookups; see doc/socks-extensions.txt for full information.
 
   o Minor features:
     - Check for name servers (like Earthlink's) that hijack failing DNS
-      requests and replace the 'no such server' answer with a "helpful"
-      redirect to an advertising-driven search portal.  We're a little clever
-      about this, in order to work around DNS hijackers who "helpfully"
-      decline to hijack known-invalid RFC2606 addresses.  [Resolves bug 330.]
+      requests and replace the no-such-server answer with a "helpful"
+      redirect to an advertising-driven search portal.  We're a little
+      clever about this, in order to work around DNS hijackers who
+      "helpfully" decline to hijack known-invalid RFC2606 addresses.
+      Config option "ServerDNSDetectHijacking 0" lets you turn it off.
     - When asked to resolve a hostname, don't use non-exit servers unless
-      requested to do so.  This allows servers with broken DNS be useful to
-      the network.
+      requested to do so.  This allows servers with broken DNS to
+      be useful to the network.
 
-  o Security Fixes, minor
+  o Security Fixes, minor:
     - If a client asked for a server by name, and we didn't have a
-      descriptor for a named server with that name, we might return an old
-      one.
+      descriptor for a named server with that name, we might return an
+      old one.
+    - Fix NetBSD bug that could allow someone to force uninitialized RAM
+      to be sent to a server's DNS resolver. This only affects NetBSD
+      and other platforms that do not bounds-check tolower().
 
-  o Major bugfixes
-    - When a client asks us to resolve (not connect to) an address,
-      and we have a cached answer, give them the cached answer.
-      Previously, we would give them no answer at all.
+  o Major bugfixes:
+    - Avoiding crashing on race condition in dns.c:
+      tor_assert(! resolve->expire)
+    - When a client asks the server to resolve (not connect to)
+      an address, and it has a cached answer, give them the cached answer.
+      Previously, the server would give them no answer at all.
 
-  o Minor Bugfixes
-    - Small performance improvements on parsing descriptors (x2).
-    - Major performance descriptor on inserting descriptors; change
+  o Minor Bugfixes:
+    - Two small performance improvements on parsing descriptors.
+    - Major performance improvement on inserting descriptors: change
       algorithm from O(n^2) to O(n).
     - Make the common memory allocation path faster on machines where
       malloc(0) returns a pointer.
     - Fix a debug log message in eventdns to say "X resolved to Y"
       instead of "X resolved to X".
-    - Prevent the 'exitlist' script from printing the same result more
-      than once.
-    - Build correctly for use on OS X platforms with case-sensitive
-      filesystems.
+    - Prevent the contrib/exitlist script from printing the same
+      result more than once.
+    - Resume building on non-gcc compilers and ancient gcc. Resume
+      building with the -O0 compile flag. Resume building cleanly on
+      Debian woody.
+    - Correct includes for net/if.h and net/pfvar.h on OpenBSD (from Tup).
+    - Improve Tor's chances of building and running on Cygwin again.
+    - If we're a directory mirror and we ask for "all" network status
+      documents, we would discard status documents from authorities
+      we don't recognize.
 
   o Documentation
     - Documented (and renamed) ServerDNSSearchDomains and
       ServerDNSResolvConfFile options.
 
+
+
+  o Packaging:
+    - Patches so Tor builds with MinGW on Windows.
+    - The Debian package now uses --verify-config when (re)starting,
+      to distinguish configuration errors from other errors.
+    - Update rpms to require libevent 1.1b.
+    - Remove architecture from OS X builds. The official builds are
+      now universal binaries.
+
+    - Make eventdns on-by-default.
+    - Divide eventdns log messages into warn and info messages.
+    - Add new config option "ResolvConf" to let the server operator
+      choose an alternate resolve.conf file.
+
+    - Allow really slow clients to not hang up five minutes into their
+      directory downloads (suggested by Adam J. Richter).
+    - Apply patch from Adam Langley: fix assert() in eventdns.c.
+    - Finally fix the openssl warnings with newer gccs that believe that
+      ignoring a return value is okay, but casting a return value and
+      then ignoring it is a sign of madness.
+    - Don't crash when the controller receives a third argument to an
+      "extendcircuit" request.
+    - Add a "getinfo address" controller command.
+    - Controller protocol fixes: fix encoding in "getinfo addr-mappings"
+      response; fix error code when "getinfo dir/status/" fails.
+    - Start remembering X-Your-Address-Is directory hints even if you're
+      a client, so you can become a server more smoothly.
+    - Avoid crash when telling controller stream-status and a stream
+      is detached.
+    - Avoid crashing when we mmap a router cache file of size 0.
+    - Avoid duplicate entries on MyFamily line in server descriptor.
+    - Patch from Steve Hildrey: Generate network status correctly on
+      non-versioning dirservers.
+    - Send out a burst of long-range drop cells after we've established
+      that we're reachable. Spread them over 4 circuits, so hopefully
+      a few will be fast. This exercises our bandwidth and bootstraps
+      us quicker.
+    - Remove 8888 as a long lived port, and add 6697 (ircs).
+
+    (stopped at r8478)
+
+
 Changes in version 0.1.2.1-alpha - 2006-08-27
   o Major features:
     - Add "eventdns" async dns library from Adam Langley, tweaked to

Modified: tor/trunk/doc/TODO
===================================================================
--- tor/trunk/doc/TODO	2006-09-25 05:24:43 UTC (rev 8496)
+++ tor/trunk/doc/TODO	2006-09-25 05:59:13 UTC (rev 8497)
@@ -270,6 +270,10 @@
       - Implement
 
 Minor items for 0.1.2.x as time permits:
+  - Don't let 'newnym' be triggered more often than every n seconds.
+  - change log_fn() to log() on notice/warn/err logs where we can.
+  - the deb now uses --verify-config to distinguish between configuration
+    errors and other errors. Should the rpm, the ports, etc do this too?
   X If we try to publish as a nickname that's already claimed, should
     we append a number (or increment the number) and try again? This
     way people who read their logs can fix it as before, but people

Modified: tor/trunk/doc/control-spec.txt
===================================================================
--- tor/trunk/doc/control-spec.txt	2006-09-25 05:24:43 UTC (rev 8496)
+++ tor/trunk/doc/control-spec.txt	2006-09-25 05:59:13 UTC (rev 8497)
@@ -347,7 +347,7 @@
       set through any mechanism.
 
     "address" -- the best guess at our external IP address. If we
-      have no guess, return a 551 error.
+      have no guess, return a 551 error. (Added in 0.1.2.2-alpha)
 
     "circuit-status"
       A series of lines as for a circuit status event. Each line is of

Modified: tor/trunk/doc/socks-extensions.txt
===================================================================
--- tor/trunk/doc/socks-extensions.txt	2006-09-25 05:24:43 UTC (rev 8496)
+++ tor/trunk/doc/socks-extensions.txt	2006-09-25 05:59:13 UTC (rev 8497)
@@ -47,10 +47,11 @@
   (We support RESOLVE in SOCKS4 too, even though it is unnecessary.)
 
   For SOCKS5 only, we support reverse resolution with a new command value,
-  "RESOLVE_PTR".  In response to a "RESOLVE_PTR" SOCKS5 command with an IPv4
-  address as its target, Tor attempts to find the canonical hostname for that
-  IPv4 record, and returns it in the "server bound address" portion of the
-  reply.  (This was not supported before Tor 0.1.2.2-alpha)
+  "RESOLVE_PTR" [F1]. In response to a "RESOLVE_PTR" SOCKS5 command with
+  an IPv4 address as its target, Tor attempts to find the canonical
+  hostname for that IPv4 record, and returns it in the "server bound
+  address" portion of the reply.
+  (This command was not supported before Tor 0.1.2.2-alpha.)
 
 3. HTTP-resistance
 

Modified: tor/trunk/doc/tor-win32-mingw-creation.txt
===================================================================
--- tor/trunk/doc/tor-win32-mingw-creation.txt	2006-09-25 05:24:43 UTC (rev 8496)
+++ tor/trunk/doc/tor-win32-mingw-creation.txt	2006-09-25 05:59:13 UTC (rev 8497)
@@ -73,7 +73,7 @@
 OR 
 
 Make zlib1.dll:
-Type "cd tor-mingw/zlib-1.2.3"/
+Type "cd tor-mingw/zlib-1.2.3/"
 Type "./configure"
 Type "make -f win32/Makefile.gcc"
 

Modified: tor/trunk/doc/tor.1.in
===================================================================
--- tor/trunk/doc/tor.1.in	2006-09-25 05:24:43 UTC (rev 8496)
+++ tor/trunk/doc/tor.1.in	2006-09-25 05:59:13 UTC (rev 8497)
@@ -635,7 +635,7 @@
 \fBServerDNSResolvConfFile \fR\fIfilename\fP
 Overrides the default DNS configuration with the configuration in
 \fIfilename\fP.  The file format is the same as the standard Unix
-"\fBresolv.conf\fP" file (7).  This option only effects name lookup for
+"\fBresolv.conf\fP" file (7).  This option only affects name lookup for
 addresses requested by clients; and only takes effect if Tor was built with
 eventdns support.  (Defaults to use the system DNS configuration.)
 .LP
@@ -645,7 +645,7 @@
 domain.  For example, if this system is configured to believe it is in
 "example.com", and a client tries to connect to "www", the client will be
 connected to "www.example.com".
-This option only effects name lookup for addresses requested by clients.
+This option only affects name lookup for addresses requested by clients.
 (Defaults to "0".)
 .LP
 .TP
@@ -653,7 +653,7 @@
 When this option is set to 1, we will test periodically to determine whether
 our local nameservers have been configured to hijack failing DNS requests
 (usually to an advertising site).  If they are, we will attempt to correct
-this.  This option only effects name lookup for addresses requested by
+this.  This option only affects name lookup for addresses requested by
 clients; and only takes effect if Tor was built with eventdns support.
 (Defaults to "1".)
 

Modified: tor/trunk/src/or/control.c
===================================================================
--- tor/trunk/src/or/control.c	2006-09-25 05:24:43 UTC (rev 8496)
+++ tor/trunk/src/or/control.c	2006-09-25 05:59:13 UTC (rev 8497)
@@ -1326,7 +1326,8 @@
 
 /** Lookup the 'getinfo' entry <b>question</b>, and return
  * the answer in <b>*answer</b> (or NULL if key not recognized).
- * Return 0 if success, or -1 if recognized but internal error. */
+ * Return 0 if success or unrecognized, or -1 if recognized but
+ * internal error. */
 static int
 handle_getinfo_helper(const char *question, char **answer)
 {
@@ -1572,7 +1573,7 @@
   } else if (!strcmpstart(question, "exit-policy/")) {
     return policies_getinfo_helper(question, answer);
   }
-  return 0;
+  return 0; /* unrecognized */
 }
 
 /** Called when we receive a GETINFO command.  Try to fetch all requested

Modified: tor/trunk/src/or/directory.c
===================================================================
--- tor/trunk/src/or/directory.c	2006-09-25 05:24:43 UTC (rev 8496)
+++ tor/trunk/src/or/directory.c	2006-09-25 05:59:13 UTC (rev 8497)
@@ -1025,8 +1025,8 @@
     } else {
       /* Can we even end up here? -- weasel*/
       source = NS_FROM_DIR_BY_FP;
-      log_warn(LD_BUG, "we received a networkstatus but we did neither ask"
-                       "for it by fp/ nor did we ask for all.");
+      log_warn(LD_BUG, "we received a networkstatus but we didn't ask"
+                       "for it by fp/ or ask for all.");
     }
     cp = body;
     while (*cp) {

Modified: tor/trunk/src/or/dns.c
===================================================================
--- tor/trunk/src/or/dns.c	2006-09-25 05:24:43 UTC (rev 8496)
+++ tor/trunk/src/or/dns.c	2006-09-25 05:59:13 UTC (rev 8497)
@@ -525,8 +525,8 @@
  * if resolve valid, put it into <b>exitconn</b>-\>addr and return 1.
  * If resolve failed, unlink exitconn if needed, free it, and return -1.
  *
- * If <b>circ</b> is provided, and this is a resolve request, we have
- * a cached answer, send the answer back along circ; otherwise, send
+ * If <b>oncirc</b> is provided, and this is a resolve request, we have
+ * a cached answer, send the answer back along oncirc; otherwise, send
  * the answer back along <b>exitconn</b>'s attached circuit.
  *
  * Else, if seen before and pending, add conn to the pending list,
@@ -571,7 +571,7 @@
 
   /* Check whether this is a reverse lookup.  If it's malformed, or it's a
    * .in-addr.arpa address but this isn't a resolve request, kill the
-   * connecction.
+   * connection.
    */
   if ((r = parse_inaddr_arpa_address(exitconn->_base.address, NULL)) != 0) {
     if (r == 1)
@@ -833,8 +833,8 @@
 }
 
 /** Helper: adds an entry to the DNS cache mapping <b>address</b> to the ipv4
- * address <b>addr</b> (if is_reverse is 0) or the hostname <b>hostname</b> if
- * (is_reverse is 1).  <b>ttl</b> is a cache ttl; <b>outcome</b> is one of
+ * address <b>addr</b> (if is_reverse is 0) or the hostname <b>hostname</b> (if
+ * is_reverse is 1).  <b>ttl</b> is a cache ttl; <b>outcome</b> is one of
  * DNS_RESOLVE_{FAILED_TRANSIENT|FAILED_PERMANENT|SUCCEEDED}.
  **/
 static void
@@ -1727,15 +1727,15 @@
   for (i = 0; i < N_WILDCARD_CHECKS; ++i) {
     /* RFC2606 reserves these.  Sadly, some DNS hijackers, in a silly attempt
      * to 'comply' with rfc2606, refrain from giving A records for these.
-     * This is the standards-complaince equivalent of making sure that your
+     * This is the standards-compliance equivalent of making sure that your
      * crackhouse's elevator inspection certificate is up to date.
      */
     launch_wildcard_check(2, 16, "%s.invalid");
     launch_wildcard_check(2, 16, "%s.test");
 
-    /* Thy somese will break specs if there are ever any number of
+    /* These will break specs if there are ever any number of
      * 8+-character top-level domains. */
-    launch_wildcard_check(8, 16,"");
+    launch_wildcard_check(8, 16, "");
 
     /* Try some random .com/org/net domains. This will work fine so long as
      * not too many resolve to the same place. */

Modified: tor/trunk/src/or/or.h
===================================================================
--- tor/trunk/src/or/or.h	2006-09-25 05:24:43 UTC (rev 8496)
+++ tor/trunk/src/or/or.h	2006-09-25 05:59:13 UTC (rev 8497)
@@ -348,7 +348,9 @@
 #define _DIR_PURPOSE_MAX 9
 
 #define _EXIT_PURPOSE_MIN 1
+/** This exit stream wants to do an ordinary connect. */
 #define EXIT_PURPOSE_CONNECT 1
+/** This exit stream wants to do a resolve (either normal or reverse). */
 #define EXIT_PURPOSE_RESOLVE 2
 #define _EXIT_PURPOSE_MAX 2
 
@@ -1575,10 +1577,10 @@
                       * addresses to be FQDNs, but rather search for them in
                       * the local domains. */
   int ServerDNSDetectHijacking; /**< Boolean: If true, check for DNS failure
-                                 * hijacking */
+                                 * hijacking. */
   char *ServerDNSResolvConfFile; /**< If provided, we configure our internal
                      * resolver from the file here rather than from
-                     * /etc/resolv.conf (unix) or the registry (windows) */
+                     * /etc/resolv.conf (Unix) or the registry (Windows). */
 } or_options_t;
 
 /** Persistent state for an onion router, as saved to disk. */