|
@@ -10,152 +10,135 @@ ARMA - arma claims
|
|
|
D Deferred
|
|
|
X Abandoned
|
|
|
|
|
|
-For 0.0.9:
|
|
|
-
|
|
|
- o Solve the MSVC nuisance where __FILE__ contains the full path.
|
|
|
- People are getting confused about why their errors are coming from
|
|
|
- C:\Documents and Settings\Nick Mathewson\My Documents\src\tor .
|
|
|
-N&R. bring tor-spec up to date
|
|
|
-N&R. make loglevels info,debug less noisy
|
|
|
- o OS X package (and bundle?)
|
|
|
- o Working RPMs
|
|
|
- o Get win32 servers working, or find out why it isn't happening now.
|
|
|
- o Why can't win32 find a cpuworker?
|
|
|
-
|
|
|
-For 0.0.9.3:
|
|
|
- o All tasks marked for 0093 in flyspray.
|
|
|
- o Backport performance improvement (stop calling getttimeofday for
|
|
|
- each cell)
|
|
|
- o Tor startup script should be installed by default on OSX.
|
|
|
- o Setup instructions for OSX.
|
|
|
-
|
|
|
-
|
|
|
For 0.0.9.5:
|
|
|
- Server instructions for OSX and Windows operators.
|
|
|
- Audit all changes to bandwidth buckets for integer over/underflow.
|
|
|
|
|
|
-************************ For Post 0.0.9 *****************************
|
|
|
+For 0.1.0.x:
|
|
|
|
|
|
- - make min uptime a function of the available choices
|
|
|
- - kill dns workers more slowly
|
|
|
- - reset uptime when ip changes
|
|
|
- - build testing circuits? going through non-verified nodes?
|
|
|
-
|
|
|
- - config option to publish what ports you listen on, beyond ORPort/DirPort
|
|
|
- - https proxy for OR CONNECT stuff
|
|
|
- - choose entry node to be one you're already connected to?
|
|
|
-
|
|
|
-Tier one:
|
|
|
- o Move to our new version system.
|
|
|
- - Changes for forward compatibility
|
|
|
- - If a version is later than the last in its series, but a version
|
|
|
- in the next series is recommended, that doesn't mean it's bad.
|
|
|
+ Refactoring and infrastructure:
|
|
|
|
|
|
+ . Switch to libevent
|
|
|
+ - Hold-open-until-flushed now works by accident; it should work by
|
|
|
+ design.
|
|
|
+ - The logic for reading from TLS sockets is likely to overrun the
|
|
|
+ bandwidth buckets under heavy load. (Really, the logic was
|
|
|
+ never right in the first place.) Also, we should audit all users
|
|
|
+ of get_pending_bytes().
|
|
|
+ - Find a way to make sure we have libevent 1.0 or later.
|
|
|
+ - Log which poll method we're using.
|
|
|
+ . Check return from event_set, event_add, event_del.
|
|
|
+
|
|
|
+ Security:
|
|
|
+ - Make sure logged info is "safe"ish.
|
|
|
+
|
|
|
+ Stability
|
|
|
+ - Reset uptime when IP/ORPort/... changes.
|
|
|
+
|
|
|
+ Functionality
|
|
|
+ - Implement pending controller features.
|
|
|
+ - HTTPS proxy for OR CONNECT stuff. (For outgoing SSL connections to
|
|
|
+ other ORs.)
|
|
|
+ - Changes for forward compatibility
|
|
|
+ - If a version is later than the last in its series, but a version
|
|
|
+ in the next series is recommended, that doesn't mean it's bad.
|
|
|
+ - Do end reasons better
|
|
|
+ - Realize that unrecognized end reasons are probably features rather than
|
|
|
+ bugs. (backport to 009x)
|
|
|
+ - Start using RESOURCELIMIT more.
|
|
|
+ - Try to use MISC a lot less.
|
|
|
+ - bug: if the exit node fails to create a socket (e.g. because it
|
|
|
+ has too many open), we will get a generic stream end response.
|
|
|
+ - niels's "did it fail because conn refused or timeout or what"
|
|
|
+ relay end feature.
|
|
|
+ - Start recognizing, but maybe not yet generating, more reasons and
|
|
|
+ needed -- aim to eliminate misc. (backport to 009x)
|
|
|
+ - Feed end reason back into SOCK5 as reasonable.
|
|
|
+ - cache .foo.exit names better, or differently, or not.
|
|
|
+ - make !advertised_server_mode() ORs fetch dirs less often.
|
|
|
+ - Clean up NT service code even more. Document it. Enable it by default.
|
|
|
+ Make sure it works.
|
|
|
+
|
|
|
+ Documentation
|
|
|
+ - Document new version system.
|
|
|
+ - Correct and clarify the wiki entry on port forwarding.
|
|
|
+ - Document where OSX, windows logs go, where stuff is installed.
|
|
|
+
|
|
|
+ Installers
|
|
|
+ - Vet all pending installer patches
|
|
|
+ - Win32 installer plus privoxy, sockscap/freecap, etc.
|
|
|
+ - Make OSX man pages go into man directory.
|
|
|
+
|
|
|
+ Correctness
|
|
|
- Bugfixes
|
|
|
- o fix dfc/weasel's intro point bug
|
|
|
- when we haven't explicitly sent a socks reject, sending one in
|
|
|
connection_about_to_close_connection() fails because we never give it
|
|
|
a chance to flush. right answer is to do the socks reply manually in
|
|
|
each appropriate case, and then about-to-close-connection can simply
|
|
|
- warn us if we forgot one.
|
|
|
-
|
|
|
- - Documentation
|
|
|
- - Convert man pages to pod, or whatever's right. Alternatively, find
|
|
|
- a man2html that actually works.
|
|
|
- o Macintosh HOWTO page.
|
|
|
-
|
|
|
- - Evangelism
|
|
|
- - Get more nodes running on 80 and 443.
|
|
|
- - Get epic, aclu, etc running nodes.
|
|
|
-
|
|
|
- - Dirservers and server descs: small, backward-compatible changes
|
|
|
- - support hostnames as well as IPs for authdirservers.
|
|
|
- - If we have a trusted directory on port 80, stop falling back to
|
|
|
- forbidden ports when fascistfirewall blocks all good dirservers.
|
|
|
- - GPSLocation optional config string.
|
|
|
-
|
|
|
- - SOCKS enhancements
|
|
|
- - niels's "did it fail because conn refused or timeout or what"
|
|
|
- relay end feature.
|
|
|
- - bug: if the exit node fails to create a socket (e.g. because it
|
|
|
- has too many open), we will get a generic stream end response.
|
|
|
-
|
|
|
- - Windows
|
|
|
-N - Make millisecond accuracy work on win32
|
|
|
- X Switch to WSA*Event code as a better poll replacement. Or maybe just
|
|
|
- do libevent?
|
|
|
-
|
|
|
- - Code cleanup
|
|
|
- X Make more configuration variables into CSVs.
|
|
|
- - Make configure.in handle cross-compilation
|
|
|
- - Have NULL_REP_IS_ZERO_BYTES default to 1.
|
|
|
- - Make with-ssl-dir disable search for ssl.
|
|
|
+ warn us if we forgot one. [Tag this 010 in flyspray.]
|
|
|
+ - should retry exitpolicy end streams even if the end cell didn't
|
|
|
+ resolve the address for you
|
|
|
+ - Figure out when to reset addressmaps (on hup, on reconfig, etc)
|
|
|
|
|
|
- - Support
|
|
|
- o Bug tracker.
|
|
|
+ Improvements to self-measurement.
|
|
|
+ - round detected bandwidth up to nearest 10KB?
|
|
|
+ - client software not upload descriptor until:
|
|
|
+ - you've been running for an hour
|
|
|
+ - it's sufficiently satisfied with its bandwidth
|
|
|
+ - it decides it is reachable
|
|
|
+ - start counting again if your IP ever changes.
|
|
|
+ - never regenerate identity keys, for now.
|
|
|
+ - you can set a bit for not-being-an-OR.
|
|
|
+ * no need to do this yet. few people define their ORPort.
|
|
|
|
|
|
- - Exit hostname support
|
|
|
- - cache .foo.exit names better, or differently, or not.
|
|
|
|
|
|
- - IPv6 support
|
|
|
+ Arguable
|
|
|
+ - Reverse DNS: specify and implement.
|
|
|
+ - make min uptime a function of the available choices (say, choose 60th
|
|
|
+ percentile, not 1 day.)
|
|
|
+ - kill dns workers more slowly
|
|
|
+ - build testing circuits? going through non-verified nodes?
|
|
|
+ - config option to publish what ports you listen on, beyond ORPort/DirPort
|
|
|
+ - It would be nice to have a FirewalledIPs thing that works like
|
|
|
+ FirewallPorts.
|
|
|
+ - If we have a trusted directory on port 80, stop falling back to
|
|
|
+ forbidden ports when fascistfirewall blocks all good dirservers.
|
|
|
+ - Code cleanup
|
|
|
+ - Make configure.in handle cross-compilation
|
|
|
+ - Have NULL_REP_IS_ZERO_BYTES default to 1.
|
|
|
+ - Make with-ssl-dir disable search for ssl.
|
|
|
+ - Efficiency/speed improvements.
|
|
|
+ - Write limiting; configurable token buckets.
|
|
|
+ - Make it harder to circumvent bandwidth caps: look at number of bytes
|
|
|
+ sent across sockets, not number sent inside TLS stream.
|
|
|
+ - Let more config options (e.g. ORPort) change dynamically.
|
|
|
+ - hidserv offerers shouldn't need to define a SocksPort
|
|
|
+ * figure out what breaks for this, and do it.
|
|
|
+
|
|
|
+
|
|
|
+ No
|
|
|
+ - choose entry node to be one you're already connected to?
|
|
|
+ - Convert man pages to pod, or whatever's right.
|
|
|
+ - support hostnames as well as IPs for authdirservers.
|
|
|
+ - GPSLocation optional config string.
|
|
|
+ - Windows
|
|
|
+ - Make millisecond accuracy work on win32
|
|
|
+ - IPv6 support
|
|
|
- teach connection_ap_handshake_socks_reply() about ipv6 and friends
|
|
|
so connection_ap_handshake_socks_resolved() doesn't also need
|
|
|
to know about them.
|
|
|
-
|
|
|
- Packaging
|
|
|
- Figure out how to make the rpm not strip the binaries it makes.
|
|
|
-
|
|
|
-
|
|
|
-Tier two:
|
|
|
-
|
|
|
- - Efficiency/speed improvements.
|
|
|
- o Handle pools of waiting circuits better.
|
|
|
- o Limit number of circuits that we preemptively generate based on past
|
|
|
- behavior; use same limits in circuit_expire_old_circuits().
|
|
|
- - Write limiting; configurable token buckets.
|
|
|
- - Make it harder to circumvent bandwidth caps: look at number of bytes
|
|
|
- sent across sockets, not number sent inside TLS stream.
|
|
|
-
|
|
|
- . Switch to libevent
|
|
|
- o Evaluate libevent
|
|
|
- o Convert socket handling
|
|
|
- o Convert signal handling
|
|
|
- o Convert timers
|
|
|
- o Update configure.in
|
|
|
- o Remove fakepoll
|
|
|
- - Hold-open-until-flushed now works by accident; it should work by
|
|
|
- design.
|
|
|
- - The logic for reading from TLS sockets is likely to overrun the
|
|
|
- bandwidth buckets under heavy load. (Really, the logic was
|
|
|
- never right in the first place.) Also, we should audit all users
|
|
|
- of get_pending_bytes().
|
|
|
- - Make sure it works on more platforms.
|
|
|
- - Find a way to make sure we have libevent 1.0 or later.
|
|
|
- - Check return from event_set, event_add, event_del.
|
|
|
-
|
|
|
- Integrate an http proxy into Tor (maybe as a third class of worker
|
|
|
process), so we can stop shipping with the beast that is Privoxy.
|
|
|
-
|
|
|
- - QOI
|
|
|
- - Let more config options (e.g. ORPort) change dynamically.
|
|
|
-
|
|
|
- - Dirservers and server descs: small, backward-compatible changes
|
|
|
- - make advertised_server_mode() ORs fetch dirs more often.
|
|
|
- - Implement If-Modified-Since for directories.
|
|
|
-
|
|
|
+ - Implement If-Modified-Since for directories.
|
|
|
- Big, incompatible re-architecting and decentralization of directory
|
|
|
system.
|
|
|
- Only the top of a directory needs to be signed.
|
|
|
-
|
|
|
- Windows
|
|
|
-N - Clean up NT service code; make it work
|
|
|
- Get a controller to launch tor and keep it on the system tray.
|
|
|
- - Win32 installer plus privoxy, sockscap/freecap, etc.
|
|
|
|
|
|
- - Controller enhancements.
|
|
|
- o Implement SIGNAL feature so windows can hup, shutdown, etc.
|
|
|
- - controller should have 'getinfo' command to query about rephist,
|
|
|
- about rendezvous status, etc.
|
|
|
+Tier two:
|
|
|
|
|
|
N - Handle rendezvousing with unverified nodes.
|
|
|
- Specify: Stick rendezvous point's key in INTRODUCE cell.
|
|
@@ -171,27 +154,18 @@ N - IPv6 support (For exit addresses)
|
|
|
a generalize address struct.
|
|
|
- Change relay cell types to accept new addresses.
|
|
|
- Add flag to serverdescs to tell whether IPv6 is supported.
|
|
|
- - When should servers
|
|
|
|
|
|
- Security fixes
|
|
|
- christian grothoff's attack of infinite-length circuit.
|
|
|
the solution is to have a separate 'extend-data' cell type
|
|
|
which is used for the first N data cells, and only
|
|
|
extend-data cells can be extend requests.
|
|
|
- - Make sure logged information is 'safe'.
|
|
|
|
|
|
- Code cleanup
|
|
|
- . rename/rearrange functions for what file they're in
|
|
|
- fix router_get_by_* functions so they can get ourselves too,
|
|
|
and audit everything to make sure rend and intro points are
|
|
|
just as likely to be us as not.
|
|
|
|
|
|
- - Bugfixes
|
|
|
- - hidserv offerers shouldn't need to define a SocksPort
|
|
|
- * figure out what breaks for this, and do it.
|
|
|
- - should retry exitpolicy end streams even if the end cell didn't
|
|
|
- resolve the address for you
|
|
|
-
|
|
|
- tor should be able to have a pool of outgoing IP addresses
|
|
|
that it is able to rotate through. (maybe)
|
|
|
|
|
@@ -209,15 +183,6 @@ N - IPv6 support (For exit addresses)
|
|
|
- DoS protection: TLS puzzles, public key ops, bandwidth exhaustion.
|
|
|
- Have clients and dirservers preserve reputation info over
|
|
|
reboots.
|
|
|
- - round detected bandwidth up to nearest 10KB?
|
|
|
- - client software not upload descriptor until:
|
|
|
- - you've been running for an hour
|
|
|
- - it's sufficiently satisfied with its bandwidth
|
|
|
- - it decides it is reachable
|
|
|
- - start counting again if your IP ever changes.
|
|
|
- - never regenerate identity keys, for now.
|
|
|
- - you can set a bit for not-being-an-OR.
|
|
|
- * no need to do this yet. few people define their ORPort.
|
|
|
- authdirserver lists you as running iff:
|
|
|
- he can connect to you
|
|
|
- he has successfully extended to you
|
|
@@ -247,7 +212,6 @@ Big tasks that would demonstrate progress:
|
|
|
- scrubbing proxies for protocols other than http.
|
|
|
- Find an smtp proxy?
|
|
|
. Get socks4a support into Mozilla
|
|
|
-N - Reverse DNS: specify and implement.
|
|
|
- figure out enclaves, e.g. so we know what to recommend that people
|
|
|
do, and so running a tor server on your website is helpful.
|
|
|
- Do enclaves for same IP only.
|