aboutsummaryrefslogtreecommitdiff
path: root/src/or/circuitlist.c
Commit message (Expand)AuthorAge
* Add a circuit_purpose_to_string() function, and use it•••We had a circuit_purpose_to_controller_string() function, but it was pretty coarse-grained and didn't try to be human-readable. Nick Mathewson2011-04-27
* When cannibalizing a circuit, make sure it has no ExcludeNodes on it•••This could happen if StrictNodes was 0 and we were forced to pick an excluded node as the last hop of the circuit. Nick Mathewson2011-04-26
* Note a slightly less likely way to violate ExcludeNodesNick Mathewson2011-04-26
* Merge remote-tracking branch 'public/xxx_fixups' into maint-0.2.2•••Conflicts: src/or/or.h Nick Mathewson2011-04-07
|\
| * Add XXX023s for our timestamp_dirty abuse.Nick Mathewson2011-03-25
* | Use timevals, not time_t, when expiring circuits.•••We've got millisecond timers now, we might as well use them. This change won't actually make circuits get expiered with microsecond precision, since we only call the expiry functions once per second. Still, it should avoid the situation where we have a circuit get expired too early because of rounding. A couple of the expiry functions now call tor_gettimeofday: this should be cheap since we're only doing it once per second. If it gets to be called more often, though, we should onsider having the current time be an argument again. Nick Mathewson2011-03-30
|/
* Sanity-check consensus param values•••We need to make sure that the worst thing that a weird consensus param can do to us is to break our Tor (and only if the other Tors are reliably broken in the same way) so that the majority of directory authorities can't pull any attacks that are worse than the DoS that they can trigger by simply shutting down. One of these worse things was the cbtnummodes parameter, which could lead to heap corruption on some systems if the value was sufficiently large. This commit fixes this particular issue and also introduces sanity checking for all consensus parameters. Sebastian Hahn2011-01-15
* Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2•••Conflicts: src/common/test.h src/or/test.c Nick Mathewson2011-01-03
|\
| * Bump copyright statements to 2011Nick Mathewson2011-01-03
* | Send control port events for timeouts.•••We now differentiate between timeouts and cutoffs by the REASON string and the PURPOSE string. Mike Perry2010-09-29
* | Clear cell queues when marking or truncating a circuit.•••At best, this patch helps us avoid sending queued relayed cells that would get ignored during the time between when a destroy cell is sent and when the circuit is finally freed. At worst, it lets us release some memory a little earlier than it would otherwise. Fix for bug #1184. Bugfix on 0.2.0.1-alpha. Nick Mathewson2010-07-30
* | Create rephist.hSebastian Hahn2010-07-27
* | Create relay.hSebastian Hahn2010-07-27
* | Create onion.hSebastian Hahn2010-07-27
* | Create networkstatus.hSebastian Hahn2010-07-27
* | Create control.hSebastian Hahn2010-07-27
* | Create connection_or.hSebastian Hahn2010-07-27
* | Create connection_edge.hSebastian Hahn2010-07-27
* | Create connection.hSebastian Hahn2010-07-27
* | Create config.hSebastian Hahn2010-07-27
* | Create circuituse.hSebastian Hahn2010-07-27
* | Create circuitlist.hSebastian Hahn2010-07-27
* | Create circuitbuild.hSebastian Hahn2010-07-27
* | Create rendclient.hSebastian Hahn2010-07-27
* | Create rendcommon.hSebastian Hahn2010-07-27
* | Create routerlist.hSebastian Hahn2010-07-27
* | print right controller purpose string for measure-timeout circsRoger Dingledine2010-07-14
* | Don't cannibalize one-hop circuits•••In rare cases, we could cannibalize a one-hop circuit, ending up with a two-hop circuit. This circuit would not be actually used, but we should prevent its creation in the first place. Thanks to outofwords and swissknife for helping to analyse this. Sebastian Hahn2010-06-04
* | Merge remote branch 'origin/maint-0.2.1'•••Conflicts: src/common/test.h src/or/test.c Nick Mathewson2010-02-27
|\|
| * Update Tor Project copyright yearsNick Mathewson2010-02-27
* | Remove some old, commented out codeSebastian Hahn2009-12-25
* | Merge branch 'ewma'Nick Mathewson2009-12-18
|\ \
| * | Optimize cell-ewma circuit priority algorithm.•••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). Nick Mathewson2009-12-13
| * | Favor quiet circuits when choosing which order to relay cells in.•••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.] Can Tang2009-12-12
* | | Merge branch 'safelogging2'•••Conflicts: ChangeLog Nick Mathewson2009-12-15
|\ \ \ | |/ / |/| |
| * | Refactor the safe_str_*() API to make more sense.•••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". Nick Mathewson2009-12-15
* | | Now that FOO_free(NULL) always works, remove checks before calling it.Nick Mathewson2009-12-12
* | | *_free functions now accept NULL•••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. Sebastian Hahn2009-12-12
|/ /
* | Merge commit 'origin/maint-0.2.1'Roger Dingledine2009-11-23
|\|
| * fix race condition that can cause crashes at client or exit relay•••Avoid crashing if the client is trying to upload many bytes and the circuit gets torn down at the same time, or if the flip side happens on the exit relay. Bugfix on 0.2.0.1-alpha; fixes bug 1150. Roger Dingledine2009-11-23
| * read the "circwindow" parameter from the consensus•••backport of c43859c5c12361fad505 backport of 0d13e0ed145f4c1b5bd1 Roger Dingledine2009-10-14
| * Update copyright to 2009.Karsten Loesing2009-05-04
* | stop assuming that our downcasts have a struct offset of 0•••shouldn't actually change anything, but who knows. Roger Dingledine2009-11-21
* | Be more robust to bad circwindow values•••If the networkstatus consensus tells us that we should use a negative circuit package window, ignore it. Otherwise we'll believe it and then trigger an assert. Also, change the interface for networkstatus_get_param() so we don't have to lookup the consensus beforehand. Roger Dingledine2009-09-22
* | Fix the math.h log() conflict.•••It was compiling, but causing segfaults. Also, adjust when the timer starts for new test circs and save state every 25 circuits. Mike Perry2009-09-16
* | Clean up Fallon's partially complete GSoC project.•••The code actually isn't that bad. It's a shame she didn't finish. Using it as the base for this feature. Mike Perry2009-09-16
* | Read "circwindow=x" from the consensus and use it•••Tor now reads the "circwindow" parameter out of the consensus, and uses that value for its circuit package window rather than the default of 1000 cells. Begins the implementation of proposal 168. Roger Dingledine2009-09-15
* | Write all statistics to disk exactly every 24 hours.Karsten Loesing2009-08-19
* | Remove ./configure option for cell statistics.Karsten Loesing2009-08-17
* | If configured, write cell statistics to disk periodically.Karsten Loesing2009-07-05