| Commit message (Collapse) | Author | Age |
| |
|
|\
| |
| |
| |
| |
| | |
Conflicts:
src/common/test.h
src/or/test.c
|
| | |
|
| |
| |
| |
| |
| |
| | |
We implemented ratelimiting for warnings going into the logfile, but didn't
rate-limit controller events. Now both log warnings and controller events
are rate-limited.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The OutboundBindAddress option is useful for making sure that all of
your outbond connections use a given interface. But when connecting
to 127.0.0.1 (or ::1 even) it's important to actually have the
connection come _from_ localhost, since lots of programs running on
localhost use the source address to authenticate that the connection
is really coming from the same host.
Our old code always bound to OutboundBindAddress, whether connecting
to localhost or not. This would potentially break DNS servers on
localhost, and socks proxies on localhost. This patch changes the
behavior so that we only look at OutboundBindAddress when connecting
to a non-loopback address.
|
| | |
|
| | |
|
| | |
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There are two big changes here:
- We store active circuits in a priority queue for each or_conn,
rather than doing a linear search over all the active circuits
before we send each cell.
- Rather than multiplying every circuit's cell-ewma by a decay
factor every time we send a cell (thus normalizing the value of a
current cell to 1.0 and a past cell to alpha^t), we instead
only scale down the cell-ewma every tick (ten seconds atm),
normalizing so that a cell sent at the start of the tick has
value 1.0).
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Each circuit is ranked in terms of how many cells from it have been
relayed recently, using a time-weighted average.
This patch has been tested this on a private Tor network on PlanetLab,
and gotten improvements of 12-35% in time it takes to fetch a small
web page while there's a simultaneous large data transfer going on
simultaneously.
[Commit msg by nickm based on mail from Ian Goldberg.]
|
| | | |
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
Conflicts:
ChangeLog
|
| | |
| | |
| | |
| | |
| | |
| | | |
The new rule is: safe_str_X() means "this string is a piece of X
information; make it safe to log." safe_str() on its own means
"this string is a piece of who-knows-what; make it safe to log".
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Some *_free functions threw asserts when passed NULL. Now all of them
accept NULL as input and perform no action when called that way.
This gains us consistence for our free functions, and allows some
code simplifications where an explicit null check is no longer necessary.
|
| | |
|
| |
| |
| |
| | |
shouldn't actually change anything, but who knows.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In C, the code "char x[10]; if (x) {...}" always takes the true branch of
the if statement. Coverity notices this now.
In some cases, we were testing arrays to make sure that an operation
we wanted to do would suceed. Those cases are now always-true.
In some cases, we were testing arrays to see if something was _set_.
Those caes are now tests for strlen(s), or tests for
!tor_mem_is_zero(d,len).
|
| |
| |
| |
| |
| | |
i think this doesn't actually affect anything, since linked
conns usually don't impact buckets
|
| | |
|
|\ \ |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
Resolved conflict in:
src/or/or.h
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Added a sanity check in config.c and a check in directory.c
directory_initiate_command_rend() to catch any direct connection attempts
when a socks proxy is configured.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Changes to directory request statistics:
- Rename GEOIP statistics to DIRREQ statistics, because they now include
more than only GeoIP-based statistics, whereas other statistics are
GeoIP-dependent, too.
- Rename output file from geoip-stats to dirreq-stats.
- Add new config option DirReqStatistics that is required to measure
directory request statistics.
- Clean up ChangeLog.
Also ensure that entry guards statistics have access to a local GeoIP
database.
|
| | |
| | |
| | |
| | |
| | | |
- Use common prefixes DIRREQ_* and dirreq_*.
- Replace enums in structs with bitfields.
|
| | | |
|
|/ /
| |
| |
| | |
[Original patch series from Karsten, revised and squashed by Nick]
|
| |
| |
| |
| |
| |
| | |
The rest of the code was only including event.h so that it could see
EV_READ and EV_WRITE, which we were using as part of the
connection_watch_events interface for no very good reason.
|
|\| |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
| |
to forgive our bridges and try again when we get an application
request. Bugfix on 0.2.0.x.
svn:r18396
|
|
|
|
|
|
|
|
| |
The subversion $Id$ fields made every commit force a rebuild of
whatever file got committed. They were not actually useful for
telling the version of Tor files in the wild.
svn:r17867
|
|
|
|
| |
svn:r17823
|
|
|
|
| |
svn:r17820
|
|
|
|
|
|
| |
made the sockaddr
svn:r17799
|
|
|
|
|
|
| |
whose length we try to divine.
svn:r17792
|
|
|
|
|
|
| |
documentation: Don't introduce two parameters called n when you're calling an algorithm O(n).
svn:r17783
|