Roger Dingledine
580066f2f6
Switch to a StrictNodes config option.
...
This is step one of handling ExcludedNodes better. This first
step is just to make EntryNodes and ExitNodes do what they did
before.
2009-12-21 03:52:31 -05:00
Nick Mathewson
350181529e
Merge branch 'safelogging2'
...
Conflicts:
ChangeLog
2009-12-15 17:26:09 -05:00
Nick Mathewson
fcbd65b45c
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".
2009-12-15 17:25:34 -05:00
Nick Mathewson
e56747f9cf
Refactor a bit so that it is safe to include math.h, and mostly not needed.
2009-12-15 14:40:49 -05:00
Nick Mathewson
0c1b3070cf
Now that FOO_free(NULL) always works, remove checks before calling it.
2009-12-12 02:07:59 -05:00
Sebastian Hahn
3807db001d
*_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.
2009-12-12 03:29:44 +01:00
Sebastian Hahn
f258647433
Allow SafeLogging to exclude client related information
2009-12-12 02:26:11 +01:00
Nick Mathewson
5e4d53d535
Remove checks for array existence. (CID 410..415)
...
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).
2009-10-26 22:40:41 -04:00
Roger Dingledine
9d6c79cbbb
fix compile on windows
2009-10-11 17:23:47 -04:00
Sebastian Hahn
e35f9414d6
Fix a memleak when throwing away some build times
...
This was introduced in f7e6e852e8
.
Found by Coverity
2009-10-10 13:41:44 +02:00
Mike Perry
18689317e4
Tweak an assert that shouldn't fire either way.
...
There were however other places where we used to call this
function that might have caused this to fire. Better
safe than sorry now.
2009-10-07 13:05:28 -07:00
Mike Perry
ec05e64a68
Tweak values for when to discard all of our history.
...
This seems to be happening to me a lot on a garbage DSL line.
We may need to come up with 2 threshholds: a high short onehop
count and a lower longer count.
2009-10-07 12:49:13 -07:00
Mike Perry
b918cd8f04
Remove another overzealous assert.
...
Pretimeouts may have build time data, just no timeout data.
2009-10-07 12:24:40 -07:00
Roger Dingledine
b4e0d09202
try to stem the 'sea of fail'
2009-10-01 05:35:24 -04:00
Roger Dingledine
9325b9269c
Ignore one-hop circuits for circuit timeout calc
...
Don't count one-hop circuits when we're estimating how long it
takes circuits to build on average. Otherwise we'll set our circuit
build timeout lower than we should. Bugfix on 0.2.2.2-alpha.
2009-10-01 04:15:45 -04:00
Mike Perry
f7e6e852e8
Fix 1108: Handle corrupt or large build times state.
...
1108 was actually just a fencepost error in an assert,
but making the state file handling code resilient is a
good idea.
2009-09-29 14:07:04 -04:00
Sebastian Hahn
7f1f6984da
Fix memory leak
...
Some memory could be lost in the error case of
circuit_build_times_parse_state.
Found by Coverity
2009-09-27 12:00:02 -04:00
Mike Perry
fd7454f9e3
Fix Bug 1103.
...
Don't pass in a quantile that is too high during pretimeout
calcualtion.
2009-09-21 20:01:20 -07:00
Mike Perry
134266b984
Change the condition on the nonlive timeout counting.
...
Try to clarify things in the comment too.
2009-09-20 18:20:10 -07:00
Roger Dingledine
cf2afcd707
Fix typos and comments, plus two bugs
...
A) We were considering a circuit had timed out in the special cases
where we close rendezvous circuits because the final rendezvous
circuit couldn't be built in time.
B) We were looking at the wrong timestamp_created when considering
a timeout.
2009-09-20 19:50:44 -04:00
Mike Perry
f39bedf250
Implement and document new network liveness algorithm.
...
Based on irc discussion with arma.
2009-09-20 14:51:30 -07:00
Mike Perry
6700e528be
Fix some precision-related asserts in unit tests.
...
Mostly by storing the timeout as milliseconds and not seconds
internally.
2009-09-20 14:43:45 -07:00
Sebastian Hahn
335b67a354
Fix compile on freebsd
2009-09-18 02:43:45 +02:00
Roger Dingledine
ee89061ef2
give proposal 151 a changelog and other touchups
2009-09-17 01:42:33 -04:00
Mike Perry
43c18746bd
Clarify use of magic number 0.98 with #define.
2009-09-16 18:41:22 -07:00
Sebastian Hahn
1aac7de1ea
Fix unit tests and compile issues on Snow Leopard
2009-09-16 17:22:21 -07:00
Mike Perry
e2c2fa7a1f
Change liveness value to be a function of the timeout.
...
And also the number of recent circuits used to decide
when the network changes.
2009-09-16 17:20:34 -07:00
Mike Perry
e4e0ce94f0
Add log message so we have accurate build time values.
2009-09-16 17:20:34 -07:00
Mike Perry
5bd60d8a41
Address nickm's issues from his review #1 .
2009-09-16 17:20:29 -07:00
Mike Perry
0352d43917
Move circuitbuildtimeout config check.
...
We want it to be under our control so it doesn't mess
up initialization. This is likely the cause for
the bug the previous assert-adding commit (09a75ad
) was
trying to address.
2009-09-16 15:58:42 -07:00
Mike Perry
09a75ad316
Time for some debugging by asserts.
...
Got a negative timeout value on startup. Need to narrow it down.
2009-09-16 15:55:51 -07:00
Mike Perry
742e08046f
Fix bugs relating to not counting timeouts as circuit builds.
...
Also use bin midpoints for time values.
2009-09-16 15:55:51 -07:00
Mike Perry
67cee75ca2
Document functions and constants.
2009-09-16 15:55:50 -07:00
Mike Perry
c9363df09f
Remove an assert.
...
It seems to fire because of precision issues. Added
more debug info to the warn to try to figure out for sure.
2009-09-16 15:55:50 -07:00
Mike Perry
63be2df84f
Fix issues found by arma in review.
2009-09-16 15:55:36 -07:00
Roger Dingledine
672e2f6908
space/indent cleanups, plus point out three bugs
2009-09-16 15:55:32 -07:00
Mike Perry
4b3bc714a3
Woops. Fix a couple memory leaks.
...
Also change the max timeout quantile to 0.98, so we can
avoid huge synthetic timeout values.
2009-09-16 15:54:37 -07:00
Karsten Loesing
b508e4748f
Remove trailing spaces. As if bytes were free...
...
Also correct some typos.
2009-09-16 15:52:05 -07:00
Mike Perry
535423a3bb
Resolve mode ties in favor of the higher (slower) mode.
2009-09-16 15:52:04 -07:00
Mike Perry
8210336182
More detail for some log msgs.
2009-09-16 15:52:04 -07:00
Mike Perry
6eba08e22f
Use our variable directly for timeout.
...
Using CircuitBuildTimeout is prone to issues with SIGHUP, etc.
Also, shuffle the circuit build times array after loading it
in so that newer measurements don't replace chunks of
similarly timed measurements.
2009-09-16 15:52:04 -07:00
Mike Perry
fca8446949
Fix a couple of assert bugs.
2009-09-16 15:52:03 -07:00
Mike Perry
c4e6b3eadb
Fix timeout edge case when we get enough samples.
...
Also switch Xm calculation to mode, not min.
2009-09-16 15:52:03 -07:00
Mike Perry
95735e5478
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.
2009-09-16 15:51:17 -07:00
Mike Perry
7ac9a66c8f
Recover from changing network connections.
...
Also add code to keep creating circuits every minute until we
hit our minimum threshhold.
2009-09-16 15:51:16 -07:00
Mike Perry
411b60325b
Factor out the pretimeout handling code.
...
We need to also call it if we're going to calculate alpha
after a normal circuit build.
2009-09-16 15:51:15 -07:00
Mike Perry
b52bce91fc
Write unit tests and fix issues they uncovered.
2009-09-16 15:51:10 -07:00
Mike Perry
04414830fe
Implement the pareto fitting and timeout calculating bits.
2009-09-16 15:48:52 -07:00
Mike Perry
7750bee21d
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.
2009-09-16 15:48:51 -07:00
Nick Mathewson
ed7283d283
Merge commit 'origin/maint-0.2.1'
...
Resolved conflicts in:
src/or/circuitbuild.c
2009-09-15 19:37:26 -04:00