[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] r9409: 0.0.9 was a fun one. those were the days. (tor/trunk)
Author: arma
Date: 2007-01-25 19:22:33 -0500 (Thu, 25 Jan 2007)
New Revision: 9409
Modified:
tor/trunk/ChangeLog
Log:
0.0.9 was a fun one. those were the days.
Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog 2007-01-25 22:19:13 UTC (rev 9408)
+++ tor/trunk/ChangeLog 2007-01-26 00:22:33 UTC (rev 9409)
@@ -2054,7 +2054,7 @@
now that we're shipping binary distributions more regularly.
-Changes in version 0.0.9.1 - 2004-12-15
+Changes in version 0.0.9.1 - 2004-12-16
o Bugfixes on 0.0.9:
- Make hibernation actually work.
- Make HashedControlPassword config option work.
@@ -2063,30 +2063,44 @@
Changes in version 0.0.9 - 2004-12-12
- o Bugfixes on 0.0.8.1 (Crashes and asserts):
- - Catch and ignore SIGXFSZ signals when log files exceed 2GB; our
- write() call will fail and we handle it there.
- - When we run out of disk space, or other log writing error, don't
- crash. Just stop logging to that log and continue.
+ o Cleanups:
+ - Clean up manpage and torrc.sample file.
+ - Clean up severities and text of log warnings.
+ o Mistakes:
+ - Make servers trigger an assert when they enter hibernation.
+
+
+Changes in version 0.0.9rc7 - 2004-12-08
+ o Bugfixes on 0.0.9rc:
+ - Fix a stack-trashing crash when an exit node begins hibernating.
+ - Avoid looking at unallocated memory while considering which
+ ports we need to build circuits to cover.
+ - Stop a sigpipe: when an 'end' cell races with eof from the app,
+ we shouldn't hold-open-until-flush if the eof arrived first.
+ - Fix a bug with init_cookie_authentication() in the controller.
+ - When recommending new-format log lines, if the upper bound is
+ LOG_ERR, leave it implicit.
+
+ o Bugfixes on 0.0.8.1:
+ - Fix a whole slew of memory leaks.
- Fix isspace() and friends so they still make Solaris happy
but also so they don't trigger asserts on win32.
- - Fix assert failure on malformed socks4a requests.
- - Fix an assert bug where a hidden service provider would fail if
- the first hop of his rendezvous circuit was down.
- - Better handling of size_t vs int, so we're more robust on 64
- bit platforms.
-
- o Bugfixes on 0.0.8.1 (Win32):
- - Make windows sockets actually non-blocking (oops), and handle
- win32 socket errors better.
- Fix parse_iso_time on platforms without strptime (eg win32).
+ - win32: tolerate extra "readable" events better.
- win32: when being multithreaded, leave parent fdarray open.
- - Better handling of winsock includes on non-MSV win32 compilers.
- - Change our file IO stuff (especially wrt OpenSSL) so win32 is
- happier.
- Make unit tests work on win32.
- o Bugfixes on 0.0.8.1 (Path selection and streams):
+
+Changes in version 0.0.9rc6 - 2004-12-06
+ o Bugfixes on 0.0.9pre:
+ - Clean up some more integer underflow opportunities (not exploitable
+ we think).
+ - While hibernating, hup should not regrow our listeners.
+ - Send an end to the streams we close when we hibernate, rather
+ than just chopping them off.
+ - React to eof immediately on non-open edge connections.
+
+ o Bugfixes on 0.0.8.1:
- Calculate timeout for waiting for a connected cell from the time
we sent the begin cell, not from the time the stream started. If
it took a long time to establish the circuit, we would time out
@@ -2094,75 +2108,8 @@
- Fix router_compare_addr_to_addr_policy: it was not treating a port
of * as always matching, so we were picking reject *:* nodes as
exit nodes too. Oops.
- - When read() failed on a stream, we would close it without sending
- back an end. So 'connection refused' would simply be ignored and
- the user would get no response.
- - Stop a sigpipe: when an 'end' cell races with eof from the app,
- we shouldn't hold-open-until-flush if the eof arrived first.
- - Let resolve conns retry/expire also, rather than sticking around
- forever.
- - Fix more dns related bugs: send back resolve_failed and end cells
- more reliably when the resolve fails, rather than closing the
- circuit and then trying to send the cell. Also attach dummy resolve
- connections to a circuit *before* calling dns_resolve(), to fix
- a bug where cached answers would never be sent in RESOLVED cells.
- o Bugfixes on 0.0.8.1 (Circuits):
- - Finally fix a bug that's been plaguing us for a year:
- With high load, circuit package window was reaching 0. Whenever
- we got a circuit-level sendme, we were reading a lot on each
- socket, but only writing out a bit. So we would eventually reach
- eof. This would be noticed and acted on even when there were still
- bytes sitting in the inbuf.
- - Use identity comparison, not nickname comparison, to choose which
- half of circuit-ID-space each side gets to use. This is needed
- because sometimes we think of a router as a nickname, and sometimes
- as a hex ID, and we can't predict what the other side will do.
-
- o Bugfixes on 0.0.8.1 (Other):
- - Fix a whole slew of memory leaks.
- - Disallow NDEBUG. We don't ever want anybody to turn off debug.
- - If we are using select, make sure we stay within FD_SETSIZE.
- - When poll() is interrupted, we shouldn't believe the revents values.
- - Add a FAST_SMARTLIST define to optionally inline smartlist_get
- and smartlist_len, which are two major profiling offenders.
- - If do_hup fails, actually notice.
- - Flush the log file descriptor after we print "Tor opening log file",
- so we don't see those messages days later.
- - Hidden service operators now correctly handle version 1 style
- INTRODUCE1 cells (nobody generates them still, so not a critical
- bug).
- - Handle more errnos from accept() without closing the listener.
- Some OpenBSD machines were closing their listeners because
- they ran out of file descriptors.
- - Some people had wrapped their tor client/server in a script
- that would restart it whenever it died. This did not play well
- with our "shut down if your version is obsolete" code. Now people
- don't fetch a new directory if their local cached version is
- recent enough.
- - Make our autogen.sh work on ksh as well as bash.
- - Better torrc example lines for dirbindaddress and orbindaddress.
- - Improved bounds checking on parsed ints (e.g. config options and
- the ones we find in directories.)
- - Stop using separate defaults for no-config-file and
- empty-config-file. Now you have to explicitly turn off SocksPort,
- if you don't want it open.
- - We were starting to daemonize before we opened our logs, so if
- there were any problems opening logs, we would complain to stderr,
- which wouldn't work, and then mysteriously exit.
- - If a verified OR connects to us before he's uploaded his descriptor,
- or we verify him and hup but he still has the original TLS
- connection, then conn->nickname is still set like he's unverified.
-
- o Code security improvements, inspired by Ilja:
- - tor_snprintf wrapper over snprintf with consistent (though not C99)
- overflow behavior.
- - Replace sprintf with tor_snprintf. (I think they were all safe, but
- hey.)
- - Replace strcpy/strncpy with strlcpy in more places.
- - Avoid strcat; use tor_snprintf or strlcat instead.
-
- o Features (circuits and streams):
+ o Features:
- New circuit building strategy: keep a list of ports that we've
used in the past 6 hours, and always try to have 2 circuits open
or on the way that will handle each such port. Seed us with port
@@ -2173,26 +2120,84 @@
- If you haven't used a clean circuit in an hour, throw it away,
just to be on the safe side. (This means after 6 hours a totally
unused Tor client will have no circuits open.)
+
+
+Changes in version 0.0.9rc5 - 2004-12-01
+ o Bugfixes on 0.0.8.1:
+ - Disallow NDEBUG. We don't ever want anybody to turn off debug.
+ - Let resolve conns retry/expire also, rather than sticking around
+ forever.
+ - If we are using select, make sure we stay within FD_SETSIZE.
+
+ o Bugfixes on 0.0.9pre:
+ - Fix integer underflow in tor_vsnprintf() that may be exploitable,
+ but doesn't seem to be currently; thanks to Ilja van Sprundel for
+ finding it.
+ - If anybody set DirFetchPostPeriod, give them StatusFetchPeriod
+ instead. Impose minima and maxima for all *Period options; impose
+ even tighter maxima for fetching if we are a caching dirserver.
+ Clip rather than rejecting.
+ - Fetch cached running-routers from servers that serve it (that is,
+ authdirservers and servers running 0.0.9rc5-cvs or later.)
+
+ o Features:
+ - Accept *:706 (silc) in default exit policy.
+ - Implement new versioning format for post 0.1.
- Support "foo.nickname.exit" addresses, to let Alice request the
address "foo" as viewed by exit node "nickname". Based on a patch
- from Geoff Goodell.
- - If your requested entry or exit node has advertised bandwidth 0,
- pick it anyway.
- - Be more greedy about filling up relay cells -- we try reading again
- once we've processed the stuff we read, in case enough has arrived
- to fill the last cell completely.
- - Refuse application socks connections to port 0.
- - Use only 0.0.9pre1 and later servers for resolve cells.
+ by Geoff Goodell.
+ - Make tor --version --version dump the cvs Id of every file.
- o Features (bandwidth):
- - Hibernation: New config option "AccountingMax" lets you
- set how many bytes per month (in each direction) you want to
- allow your server to consume. Rather than spreading those
- bytes out evenly over the month, we instead hibernate for some
- of the month and pop up at a deterministic time, work until
- the bytes are consumed, then hibernate again. Config option
- "MonthlyAccountingStart" lets you specify which day of the month
- your billing cycle starts on.
+
+Changes in version 0.0.9rc4 - 2004-11-28
+ o Bugfixes on 0.0.8.1:
+ - Make windows sockets actually non-blocking (oops), and handle
+ win32 socket errors better.
+
+ o Bugfixes on 0.0.9rc1:
+ - Actually catch the -USR2 signal.
+
+
+Changes in version 0.0.9rc3 - 2004-11-25
+ o Bugfixes on 0.0.8.1:
+ - Flush the log file descriptor after we print "Tor opening log file",
+ so we don't see those messages days later.
+
+ o Bugfixes on 0.0.9rc1:
+ - Make tor-resolve work again.
+ - Avoid infinite loop in tor-resolve if tor hangs up on it.
+ - Fix an assert trigger for clients/servers handling resolves.
+
+
+Changes in version 0.0.9rc2 - 2004-11-24
+ o Bugfixes on 0.0.9rc1:
+ - I broke socks5 support while fixing the eof bug.
+ - Allow unitless bandwidths and intervals; they default to bytes
+ and seconds.
+ - New servers don't start out hibernating; they are active until
+ they run out of bytes, so they have a better estimate of how
+ long it takes, and so their operators can know they're working.
+
+
+Changes in version 0.0.9rc1 - 2004-11-23
+ o Bugfixes on 0.0.8.1:
+ - Finally fix a bug that's been plaguing us for a year:
+ With high load, circuit package window was reaching 0. Whenever
+ we got a circuit-level sendme, we were reading a lot on each
+ socket, but only writing out a bit. So we would eventually reach
+ eof. This would be noticed and acted on even when there were still
+ bytes sitting in the inbuf.
+ - When poll() is interrupted, we shouldn't believe the revents values.
+
+ o Bugfixes on 0.0.9pre6:
+ - Fix hibernate bug that caused pre6 to be broken.
+ - Don't keep rephist info for routers that haven't had activity for
+ 24 hours. (This matters now that clients have keys, since we track
+ them too.)
+ - Never call close_temp_logs while validating log options.
+ - Fix backslash-escaping on tor.sh.in and torctl.in.
+
+ o Features:
- Implement weekly/monthly/daily accounting: now you specify your
hibernation properties by
AccountingMax N bytes|KB|MB|GB|TB
@@ -2200,46 +2205,108 @@
Defaults to "month 1 0:00".
- Let bandwidth and interval config options be specified as 5 bytes,
kb, kilobytes, etc; and as seconds, minutes, hours, days, weeks.
+ - kill -USR2 now moves all logs to loglevel debug (kill -HUP to
+ get back to normal.)
+ - If your requested entry or exit node has advertised bandwidth 0,
+ pick it anyway.
+ - Be more greedy about filling up relay cells -- we try reading again
+ once we've processed the stuff we read, in case enough has arrived
+ to fill the last cell completely.
+ - Apply NT service patch from Osamu Fujino. Still needs more work.
- o Features (directories):
- - New "router-status" line in directory, to better bind each verified
- nickname to its identity key.
- - Clients can ask dirservers for /dir.z to get a compressed version
- of the directory. Only works for servers running 0.0.9, of course.
- - Make clients cache directories and use them to seed their router
- lists at startup. This means clients have a datadir again.
- - Respond to content-encoding headers by trying to uncompress as
- appropriate.
- - Clients and servers now fetch running-routers; cache
- running-routers; compress running-routers; serve compressed
- running-routers.z
- - Make moria2 advertise a dirport of 80, so people behind firewalls
- will be able to get a directory.
- - Http proxy support
- - Dirservers translate requests for http://%s:%d/x to /x
- - You can specify "HttpProxy %s[:%d]" and all dir fetches will
- be routed through this host.
- - Clients ask for /tor/x rather than /x for new enough dirservers.
- This way we can one day coexist peacefully with apache.
- - Clients specify a "Host: %s%d" http header, to be compatible
- with more proxies, and so running squid on an exit node can work.
- - Protect dirservers from overzealous descriptor uploading -- wait
- 10 seconds after directory gets dirty, before regenerating.
- o Features (packages and install):
- - Add NSI installer contributed by J Doe.
- - Apply NT service patch from Osamu Fujino. Still needs more work.
+Changes in version 0.0.9pre6 - 2004-11-15
+ o Bugfixes on 0.0.8.1:
+ - Fix assert failure on malformed socks4a requests.
+ - Use identity comparison, not nickname comparison, to choose which
+ half of circuit-ID-space each side gets to use. This is needed
+ because sometimes we think of a router as a nickname, and sometimes
+ as a hex ID, and we can't predict what the other side will do.
+ - Catch and ignore SIGXFSZ signals when log files exceed 2GB; our
+ write() call will fail and we handle it there.
+ - Add a FAST_SMARTLIST define to optionally inline smartlist_get
+ and smartlist_len, which are two major profiling offenders.
+
+ o Bugfixes on 0.0.9pre5:
+ - Fix a bug in read_all that was corrupting config files on windows.
+ - When we're raising the max number of open file descriptors to
+ 'unlimited', don't log that we just raised it to '-1'.
+ - Include event code with events, as required by control-spec.txt.
+ - Don't give a fingerprint when clients do --list-fingerprint:
+ it's misleading, because it will never be the same again.
+ - Stop using strlcpy in tor_strndup, since it was slowing us
+ down a lot.
+ - Remove warn on startup about missing cached-directory file.
+ - Make kill -USR1 work again.
+ - Hibernate if we start tor during the "wait for wakeup-time" phase
+ of an accounting interval. Log our hibernation plans better.
+ - Authoritative dirservers now also cache their directory, so they
+ have it on start-up.
+
+ o Features:
+ - Fetch running-routers; cache running-routers; compress
+ running-routers; serve compressed running-routers.z
+ - Add NSI installer script contributed by J Doe.
- Commit VC6 and VC7 workspace/project files.
- Commit a tor.spec for making RPM files, with help from jbash.
- Add contrib/torctl.in contributed by Glenn Fink.
+ - Implement the control-spec's SAVECONF command, to write your
+ configuration to torrc.
+ - Get cookie authentication for the controller closer to working.
+ - Include control-spec.txt in the tarball.
+ - When set_conf changes our server descriptor, upload a new copy.
+ But don't upload it too often if there are frequent changes.
+ - Document authentication config in man page, and document signals
+ we catch.
+ - Clean up confusing parts of man page and torrc.sample.
- Make expand_filename handle ~ and ~username.
- Use autoconf to enable largefile support where necessary. Use
ftello where available, since ftell can fail at 2GB.
- - Ship src/win32/ in the tarball, so people can use it to build.
- - Make old win32 fall back to CWD if SHGetSpecialFolderLocation
- is broken.
+ - Distinguish between TOR_TLS_CLOSE and TOR_TLS_ERROR, so we can
+ log more informatively.
+ - Give a slightly more useful output for "tor -h".
+ - Refuse application socks connections to port 0.
+ - Check clock skew for verified servers, but allow unverified
+ servers and clients to have any clock skew.
+ - Break DirFetchPostPeriod into:
+ - DirFetchPeriod for fetching full directory,
+ - StatusFetchPeriod for fetching running-routers,
+ - DirPostPeriod for posting server descriptor,
+ - RendPostPeriod for posting hidden service descriptors.
+ - Make sure the hidden service descriptors are at a random offset
+ from each other, to hinder linkability.
- o Features (ui controller):
+
+Changes in version 0.0.9pre5 - 2004-11-09
+ o Bugfixes on 0.0.9pre4:
+ - Fix a seg fault in unit tests (doesn't affect main program).
+ - Fix an assert bug where a hidden service provider would fail if
+ the first hop of his rendezvous circuit was down.
+ - Hidden service operators now correctly handle version 1 style
+ INTRODUCE1 cells (nobody generates them still, so not a critical
+ bug).
+ - If do_hup fails, actually notice.
+ - Handle more errnos from accept() without closing the listener.
+ Some OpenBSD machines were closing their listeners because
+ they ran out of file descriptors.
+ - Send resolve cells to exit routers that are running a new
+ enough version of the resolve code to work right.
+ - Better handling of winsock includes on non-MSV win32 compilers.
+ - Some people had wrapped their tor client/server in a script
+ that would restart it whenever it died. This did not play well
+ with our "shut down if your version is obsolete" code. Now people
+ don't fetch a new directory if their local cached version is
+ recent enough.
+ - Make our autogen.sh work on ksh as well as bash.
+
+ o Major Features:
+ - Hibernation: New config option "AccountingMaxKB" lets you
+ set how many KBytes per month you want to allow your server to
+ consume. Rather than spreading those bytes out evenly over the
+ month, we instead hibernate for some of the month and pop up
+ at a deterministic time, work until the bytes are consumed, then
+ hibernate again. Config option "MonthlyAccountingStart" lets you
+ specify which day of the month your billing cycle starts on.
- Control interface: a separate program can now talk to your
client/server over a socket, and get/set config options, receive
notifications of circuits and streams starting/finishing/dying,
@@ -2249,31 +2316,51 @@
with the control port.
- "tor --hash-password zzyxz" will output a salted password for
use in authenticating to the control interface.
- - Implement the control-spec's SAVECONF command, to write your
- configuration to torrc.
- - Get cookie authentication for the controller closer to working.
- - When set_conf changes our server descriptor, upload a new copy.
- But don't upload it too often if there are frequent changes.
-
- o Features (config and command-line):
- - Deprecate unofficial config option abbreviations, and abbreviations
- not on the command line.
- - Configuration infrastructure support for warning on obsolete
- options.
- - Give a slightly more useful output for "tor -h".
- - Break DirFetchPostPeriod into:
- - DirFetchPeriod for fetching full directory,
- - StatusFetchPeriod for fetching running-routers,
- - DirPostPeriod for posting server descriptor,
- - RendPostPeriod for posting hidden service descriptors.
- New log format in config:
"Log minsev[-maxsev] stdout|stderr|syslog" or
"Log minsev[-maxsev] file /var/foo"
+
+ o Minor Features:
- DirPolicy config option, to let people reject incoming addresses
from their dirserver.
- "tor --list-fingerprint" will list your identity key fingerprint
and then exit.
- - Make tor --version --version dump the cvs Id of every file.
+ - Add "pass" target for RedirectExit, to make it easier to break
+ out of a sequence of RedirectExit rules.
+ - Clients now generate a TLS cert too, in preparation for having
+ them act more like real nodes.
+ - Ship src/win32/ in the tarball, so people can use it to build.
+ - Make old win32 fall back to CWD if SHGetSpecialFolderLocation
+ is broken.
+ - New "router-status" line in directory, to better bind each verified
+ nickname to its identity key.
+ - Deprecate unofficial config option abbreviations, and abbreviations
+ not on the command line.
+ - Add a pure-C tor-resolve implementation.
+ - Use getrlimit and friends to ensure we can reach MaxConn (currently
+ 1024) file descriptors.
+
+ o Code security improvements, inspired by Ilja:
+ - Replace sprintf with snprintf. (I think they were all safe, but
+ hey.)
+ - Replace strcpy/strncpy with strlcpy in more places.
+ - Avoid strcat; use snprintf or strlcat instead.
+ - snprintf wrapper with consistent (though not C99) overflow behavior.
+
+
+Changes in version 0.0.9pre4 - 2004-10-17
+ o Bugfixes on 0.0.9pre3:
+ - If the server doesn't specify an exit policy, use the real default
+ exit policy, not reject *:*.
+ - Ignore fascistfirewall when uploading/downloading hidden service
+ descriptors, since we go through Tor for those; and when using
+ an HttpProxy, since we assume it can reach them all.
+ - When looking for an authoritative dirserver, use only the ones
+ configured at boot. Don't bother looking in the directory.
+ - The rest of the fix for get_default_conf_file() on older win32.
+ - Make 'Routerfile' config option obsolete.
+
+ o Features:
- New 'MyFamily nick1,...' config option for a server to
specify other servers that shouldn't be used in the same circuit
with it. Only believed if nick1 also specifies us.
@@ -2281,8 +2368,33 @@
specify nodes that it doesn't want to use in the same circuit.
- New 'Redirectexit pattern address:port' config option for a
server to redirect exit connections, e.g. to a local squid.
- - Add "pass" target for RedirectExit, to make it easier to break
- out of a sequence of RedirectExit rules.
+
+
+Changes in version 0.0.9pre3 - 2004-10-13
+ o Bugfixes on 0.0.8.1:
+ - Better torrc example lines for dirbindaddress and orbindaddress.
+ - Improved bounds checking on parsed ints (e.g. config options and
+ the ones we find in directories.)
+ - Better handling of size_t vs int, so we're more robust on 64
+ bit platforms.
+ - Fix the rest of the bug where a newly started OR would appear
+ as unverified even after we've added his fingerprint and hupped
+ the dirserver.
+ - Fix a bug from 0.0.7: when read() failed on a stream, we would
+ close it without sending back an end. So 'connection refused'
+ would simply be ignored and the user would get no response.
+
+ o Bugfixes on 0.0.9pre2:
+ - Serving the cached-on-disk directory to people is bad. We now
+ provide no directory until we've fetched a fresh one.
+ - Workaround for bug on windows where cached-directories get crlf
+ corruption.
+ - Make get_default_conf_file() work on older windows too.
+ - If we write a *:* exit policy line in the descriptor, don't write
+ any more exit policy lines.
+
+ o Features:
+ - Use only 0.0.9pre1 and later servers for resolve cells.
- Make the dirservers file obsolete.
- Include a dir-signing-key token in directories to tell the
parsing entity which key is being used to sign.
@@ -2290,29 +2402,18 @@
- New config option "Dirserver %s:%d [fingerprint]", which can be
repeated as many times as needed. If no dirservers specified,
default to moria1,moria2,tor26.
- - Make 'Routerfile' config option obsolete.
- - Discourage people from setting their dirfetchpostperiod more often
- than once per minute.
+ - Make moria2 advertise a dirport of 80, so people behind firewalls
+ will be able to get a directory.
+ - Http proxy support
+ - Dirservers translate requests for http://%s:%d/x to /x
+ - You can specify "HttpProxy %s[:%d]" and all dir fetches will
+ be routed through this host.
+ - Clients ask for /tor/x rather than /x for new enough dirservers.
+ This way we can one day coexist peacefully with apache.
+ - Clients specify a "Host: %s%d" http header, to be compatible
+ with more proxies, and so running squid on an exit node can work.
- o Features (other):
- - kill -USR2 now moves all logs to loglevel debug (kill -HUP to
- get back to normal.)
- - Accept *:706 (silc) in default exit policy.
- - Implement new versioning format for post 0.1.
- - Distinguish between TOR_TLS_CLOSE and TOR_TLS_ERROR, so we can
- log more informatively.
- - Check clock skew for verified servers, but allow unverified
- servers and clients to have any clock skew.
- - Make sure the hidden service descriptors are at a random offset
- from each other, to hinder linkability.
- - Clients now generate a TLS cert too, in preparation for having
- them act more like real nodes.
- - Add a pure-C tor-resolve implementation.
- - Use getrlimit and friends to ensure we can reach MaxConn (currently
- 1024) file descriptors.
- - Raise the max dns workers from 50 to 100.
-
Changes in version 0.0.8.1 - 2004-10-13
o Bugfixes:
- Fix a seg fault that can be triggered remotely for Tor
@@ -2332,6 +2433,59 @@
- Fix a compile warning on 64 bit platforms.
+Changes in version 0.0.9pre2 - 2004-10-03
+ o Bugfixes:
+ - Make fetching a cached directory work for 64-bit platforms too.
+ - Make zlib.h a required header, not an optional header.
+
+
+Changes in version 0.0.9pre1 - 2004-10-01
+ o Bugfixes:
+ - Stop using separate defaults for no-config-file and
+ empty-config-file. Now you have to explicitly turn off SocksPort,
+ if you don't want it open.
+ - Fix a bug in OutboundBindAddress so it (hopefully) works.
+ - Improve man page to mention more of the 0.0.8 features.
+ - Fix a rare seg fault for people running hidden services on
+ intermittent connections.
+ - Change our file IO stuff (especially wrt OpenSSL) so win32 is
+ happier.
+ - Fix more dns related bugs: send back resolve_failed and end cells
+ more reliably when the resolve fails, rather than closing the
+ circuit and then trying to send the cell. Also attach dummy resolve
+ connections to a circuit *before* calling dns_resolve(), to fix
+ a bug where cached answers would never be sent in RESOLVED cells.
+ - When we run out of disk space, or other log writing error, don't
+ crash. Just stop logging to that log and continue.
+ - We were starting to daemonize before we opened our logs, so if
+ there were any problems opening logs, we would complain to stderr,
+ which wouldn't work, and then mysteriously exit.
+ - Fix a rare bug where sometimes a verified OR would connect to us
+ before he'd uploaded his descriptor, which would cause us to
+ assign conn->nickname as though he's unverified. Now we look through
+ the fingerprint list to see if he's there.
+ - Fix a rare assert trigger, where routerinfos for entries in
+ our cpath would expire while we're building the path.
+
+ o Features:
+ - Clients can ask dirservers for /dir.z to get a compressed version
+ of the directory. Only works for servers running 0.0.9, of course.
+ - Make clients cache directories and use them to seed their router
+ lists at startup. This means clients have a datadir again.
+ - Configuration infrastructure support for warning on obsolete
+ options.
+ - Respond to content-encoding headers by trying to uncompress as
+ appropriate.
+ - Reply with a deflated directory when a client asks for "dir.z".
+ We could use allow-encodings instead, but allow-encodings isn't
+ specified in HTTP 1.0.
+ - Raise the max dns workers from 50 to 100.
+ - Discourage people from setting their dirfetchpostperiod more often
+ than once per minute.
+ - Protect dirservers from overzealous descriptor uploading -- wait
+ 10 seconds after directory gets dirty, before regenerating.
+
+
Changes in version 0.0.8 - 2004-08-25
o Port it to SunOS 5.9 / Athena