summaryrefslogtreecommitdiff
path: root/src/or/circuitbuild.c
AgeCommit message (Collapse)Author
2010-07-27Create policies.hSebastian Hahn
2010-07-27Create onion.hSebastian Hahn
2010-07-27Create networkstatus.hSebastian Hahn
2010-07-27Create main.hSebastian Hahn
2010-07-27Create directory.hSebastian Hahn
2010-07-27Create control.hSebastian Hahn
2010-07-27Create connection_or.hSebastian Hahn
2010-07-27Create connection_edge.hSebastian Hahn
2010-07-27Create connection.hSebastian Hahn
2010-07-27Create config.hSebastian Hahn
2010-07-27Create circuituse.hSebastian Hahn
2010-07-27Create circuitlist.hSebastian Hahn
2010-07-27Create circuitbuild.hSebastian Hahn
2010-07-27Create routerlist.hSebastian Hahn
2010-07-27Create router.hSebastian Hahn
2010-07-21mike needs DEFAULT_ROUTE_LEN in other filesRoger Dingledine
2010-07-20naked constants are badRoger Dingledine
2010-07-18Make the controller act more usefully when GETINFO failsNick Mathewson
Right now it says "552 internal error" because there's no way for getinfo_helper_*() countries to specify an error message. This patch changes the getinfo_helper_*() interface, and makes most of the getinfo helpers give useful error messages in response to failures. This should prevent recurrences of bug 1699, where a missing GeoIPFile line in the torrc made GETINFO ip-to-county/* fail in a "not obvious how to fix" way.
2010-07-06More gracefully handle corrupt state files.Mike Perry
Save a backup if we get odd circuitbuildtimes and other state info. In the case of circuit build times, we no longer assert, and reset our state.
2010-07-06Fix unittest failure in bug 1660.Mike Perry
We now record large times as abandoned, to prevent a filter step from happening and skewing our results. Also, issue a warn for a rare case that can happen for funky values of Xm or too many abandoned circuits. Can happen (very rarely) during unit tests, but should not be possble during live operation, due to network liveness filters and discard logic.
2010-06-29Fix bugs with assuming time_t can be implicitly cast to longNick Mathewson
Many friendly operating systems have 64-bit times, and it's not nice to pass them to an %ld format. It's also extremely not-nice to write a time to the log as an integer. Most people think it's 2010 June 29 23:57 UTC+epsilon, not 1277855805+epsilon.
2010-06-29Merge remote branch 'public/rand_double2'Nick Mathewson
2010-06-29Merge remote branch 'mikeperry/cbt-bugfixes3'Nick Mathewson
2010-06-25Make cbt_generate_sample use crypto_rand_double()Nick Mathewson
Possible workaround for bug 1139, if anybody cares.
2010-06-15Add CLOSE_MS and CLOSE_RATE keywords to buildtimeout event.Mike Perry
2010-06-15Split the circuit timeout and close codepaths.Mike Perry
We need to record different statistics at point of timeout, vs the point of forcible closing. Also, give some better names to constants and state file variables to indicate they are not dealing with timeouts, but abandoned circuits.
2010-06-15Fix initialization and reset issues with close_ms.Mike Perry
Also clean up some log messages.
2010-06-09Keep circuits open until the greater of 95th CDF percentile or 60s.Mike Perry
This is done to provide better data to our right-censored Pareto model. We do this by simply marking them with a new purpose.
2010-06-09Make the Xm mode selection a consensus parameter.Mike Perry
2010-06-09Add timeout count state variable.Mike Perry
2010-06-09Remove synthetic timeout code in favor of better Pareto model.Mike Perry
2010-06-09Improve log message about large timeouts and fix some typos.Mike Perry
2010-06-03Let bridge users use the non-primary address of a multi-homed bridgeRoger Dingledine
2010-05-20Don't use "try" as an identifiervalerino
C allows try, but some windows CE headers like to redefine 'try' to be a reserved word.
2010-05-12Fix CBT unit tests.Mike Perry
2010-05-10Fix comments from Sebastian + Nick's code review.Mike Perry
Check for overflow in one place, and be consistent about type usage.
2010-05-10Bug 1296: Add option+logic to disable CBT learning.Mike Perry
There are now four ways that CBT can be disabled: 1. Network-wide, with the cbtdisabled consensus param. 2. Via config, with "LearnCircuitBuildTimeout 0" 3. Via config, with "AuthoritativeDirectory 1" 4. Via a state file write failure.
2010-05-10Bug 1357: Store the suspended timeout value to resume.Mike Perry
This prevents a spurious warning where we have a timeout just after deciding our network came back online.
2010-05-10Bug 1245: Ignore negative and large timeouts.Mike Perry
This should prevent some asserts and storage of incorrect build times for the cases where Tor is suspended during a circuit construction, or just after completing a circuit. The idea is that if the circuit build time is much greater than we would have cut it off at, we probably had a suspend event along this codepath, and we should discard the value.
2010-05-10Bump timeout calculation message to notice when timeout changes.Mike Perry
2010-05-10Add consensus parameter for max synthetic quantile.Mike Perry
In case we decide that the timeout rate is now too high due to our change of the max synthetic quantile value, this consensus parameter will allow us to restore it to the previous value.
2010-05-10Add a TIMEOUT_RATE keyword to buildtimeout event.Mike Perry
2010-05-10Bug 1335: Implement filtering step to remove+prevent high timeouts.Mike Perry
This is for the other issue we saw in Bug 1335. A large number of high timeouts were causing the timeout calculation to slowly drift upwards, especially in conditions of load. This fix repeatedly regenerates all of our synthetic timeouts whenever the timeout changes, to try to prevent drift. It also lowers the timeout cap to help for some cases of Bug 1245, where some timeout values were so large that we ended up allocating a ton of scratch memory to count the histogram bins. The downside is that lowering this cap is affecting our timeout rate. Unfortunately, the buildtimeout quantile is now higher than the actual completion rate by what appears to be about 7-10%, which probably represents the skew in the distribution due to lowering this synthetic cap.
2010-05-10Bug 1335: Alter Xm calculation to be weighted avg of top N=3 modes.Mike Perry
In my state files, I was seeing several peaks, probably due to different guards having different latency. This change is meant to better capture this behavior and generate more reasonable timeouts when it happens. It is improving the timeout values for my collection of state files.
2010-04-02Merge branch 'asprintf'Nick Mathewson
2010-02-27Merge remote branch 'origin/maint-0.2.1'Nick Mathewson
Conflicts: src/common/test.h src/or/test.c
2010-02-27Update Tor Project copyright yearsNick Mathewson
2010-02-27Merge remote branch 'origin/maint-0.2.1'Nick Mathewson
Conflicts: ChangeLog src/or/routerparse.c
2010-02-26Proper NULL checking in circuit_list_path_impl()Sebastian Hahn
Another dereference-then-NULL-check sequence. No reports of this bug triggered in the wild. Fixes bugreport 1256. Thanks to ekir for discovering and reporting this bug.
2010-02-25Add a tor_asprintf() function, and use it in a couple of places.Nick Mathewson
asprintf() is a GNU extension that some BSDs have picked up: it does a printf into a newly allocated chunk of RAM. Our tor_asprintf() differs from standard asprintf() in that: - Like our other malloc functions, it asserts on OOM. - It works on windows. - It always sets its return-field.