Nick Mathewson
9be105f94b
whitespace fixes
2014-01-17 12:41:56 -05:00
Nick Mathewson
85b46d57bc
Check spawn_func() return value
...
If we don't, we can wind up with a wedged cpuworker, and write to it
for ages and ages.
Found by skruffy. This was a bug in 2dda97e8fd
, a.k.a. svn
revision 402. It's been there since we have been using cpuworkers.
2014-01-17 12:04:53 -05:00
Nick Mathewson
8a49fac9e0
Coverate in util.c: test that tor_parse_* rejects negative base.
2014-01-17 11:58:09 -05:00
Nick Mathewson
ab0fdbb618
Add an --accel switch to run unit tests with crypto acceleration
2014-01-17 11:58:09 -05:00
Nick Mathewson
682c2252a5
Fix some seccomp2 issues
...
Fix for #10563 . This is a compatibility issue with libseccomp-2.1.
I guess you could call it a bugfix on 0.2.5.1?
2014-01-06 04:27:58 -05:00
Nick Mathewson
5c45a333c3
Merge remote-tracking branch 'public/bug10169_023' into bug10169_024
...
Conflicts:
doc/tor.1.txt
src/or/config.c
src/or/or.h
The conflicts were all pretty trivial.
2014-01-03 10:53:22 -05:00
Nick Mathewson
9030360277
Add explicit check for 0-length extend2 cells
...
This is harmless in the Tor of today, but important for correctness.
Fixes bug 10536; bugfix on 0.2.4.8-alpha. Reported by "cypherpunks".
2014-01-03 10:43:09 -05:00
Nick Mathewson
573ee36eae
Merge remote-tracking branch 'public/bug10485'
2013-12-24 11:42:35 -05:00
Nick Mathewson
2b8962bc64
Move onion-type stats message into heartbeat
...
Fix for 10485. Fix on 0.2.4.17-alpha.
2013-12-24 11:41:48 -05:00
Nick Mathewson
6276cca8ce
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-12-22 17:26:25 -05:00
Nick Mathewson
b9f6e40ecb
Fix automapping to ipv6
...
Bugfix on 0.2.4.7-alpha; fixes bug 10465.
2013-12-22 17:19:22 -05:00
Nick Mathewson
bbc85b18ca
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-12-21 21:16:06 -05:00
Nick Mathewson
b5d13d11c9
Fix a logic error in circuit_stream_is_being_handled.
...
When I introduced the unusable_for_new_circuits flag in
62fb209d83
, I had a spurious ! in the
circuit_stream_is_being_handled loop. This made us decide that
non-unusable circuits (that is, usable ones) were the ones to avoid,
and caused it to launch a bunch of extra circuits.
Fixes bug 10456; bugfix on 0.2.4.12-alpha.
2013-12-21 10:15:09 -05:00
Nick Mathewson
b98c5884fc
Merge remote-tracking branch 'linus/bug10324'
2013-12-20 11:40:21 -05:00
Nick Mathewson
85284c33d1
Merge remote-tracking branch 'origin/maint-0.2.4'
...
Conflicts:
src/common/crypto.c
2013-12-18 22:04:21 -05:00
Karsten Loesing
b7d8a1e141
Report complete directory request statistics on bridges.
...
When we wrote the directory request statistics code in August 2009, we
thought that these statistics were only relevant for bridges, and that
bridges should not report them. That's why we added a switch to discard
relevant observations made by bridges. This code was first released in
0.2.2.1-alpha.
In May 2012 we learned that we didn't fully disable directory request
statistics on bridges. Bridges did report directory request statistics,
but these statistics contained empty dirreq-v3-ips and dirreq-v3-reqs
lines. But the remaining dirreq-* lines have always been non-empty. (We
didn't notice for almost three years, because directory-request statistics
were disabled by default until 0.2.3.1-alpha, and all statistics have been
removed from bridge descriptors before publishing them on the metrics
website.)
Proposal 201, created in May 2012, suggests to add a new line called
bridge-v3-reqs that is similar to dirreq-v3-reqs, but that is published
only by bridges. This proposal is still open as of December 2013.
Since October 2012 we're using dirreq-v3-resp (not -reqs) lines in
combination with bridge-ips lines to estimate bridge user numbers; see
task 8462. This estimation method has superseded the older approach that
was only based on bridge-ips lines in November 2013. Using dirreq-v3-resp
and bridge-ips lines is a workaround. The cleaner approach would be to
use dirreq-v3-reqs instead.
This commit makes bridges report the same directory request statistics as
relays, including dirreq-v3-ips and dirreq-v3-reqs lines. It makes
proposal 201 obsolete.
2013-12-18 18:02:10 +01:00
Karsten Loesing
90f0358e3e
Disable (Cell,Entry,ExitPort)Statistics on bridges
...
In 0.2.3.8-alpha we attempted to "completely disable stats if we aren't
running as a relay", but instead disabled them only if we aren't running
as a server.
This commit leaves DirReqStatistics enabled on both relays and bridges,
and disables (Cell,Entry,ExitPort)Statistics on bridges.
2013-12-18 18:01:25 +01:00
Nick Mathewson
7b87003957
Never allow OpenSSL engines to replace the RAND_SSLeay method
...
This fixes bug 10402, where the rdrand engine would use the rdrand
instruction, not as an additional entropy source, but as a replacement
for the entire userspace PRNG. That's obviously stupid: even if you
don't think that RDRAND is a likely security risk, the right response
to an alleged new alleged entropy source is never to throw away all
previously used entropy sources.
Thanks to coderman and rl1987 for diagnosing and tracking this down.
2013-12-18 11:53:07 -05:00
Nick Mathewson
f12d3fe9aa
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-12-17 13:54:02 -05:00
Nick Mathewson
561d9880f8
Merge branch 'bug10423' into maint-0.2.4
2013-12-17 13:53:11 -05:00
Nick Mathewson
adfcc1da4a
Merge remote-tracking branch 'origin/maint-0.2.4'
...
Conflicts:
src/or/microdesc.c
Conflict because one change was on line adjacent to line where
01206893
got fixed.
2013-12-17 13:18:00 -05:00
Nick Mathewson
3d5154550c
Merge remote-tracking branch 'public/bug10409_023' into maint-0.2.4
2013-12-17 13:15:45 -05:00
Nick Mathewson
46b3b6208d
Avoid double-free on failure to dump_descriptor() a cached md
...
This is a fix for 10423, which was introducd in caa0d15c
in 0.2.4.13-alpha.
Spotted by bobnomnom.
2013-12-17 13:12:52 -05:00
Nick Mathewson
d8cfa2ef4e
Avoid free()ing from an mmap on corrupted microdesc cache
...
The 'body' field of a microdesc_t holds a strdup()'d value if the
microdesc's saved_location field is SAVED_IN_JOURNAL or
SAVED_NOWHERE, and holds a pointer to the middle of an mmap if the
microdesc is SAVED_IN_CACHE. But we weren't setting that field
until a while after we parsed the microdescriptor, which left an
interval where microdesc_free() would try to free() the middle of
the mmap().
This patch also includes a regression test.
This is a fix for #10409 ; bugfix on 0.2.2.6-alpha.
2013-12-16 13:06:00 -05:00
Linus Nordberg
129f26e959
Make tor-gencert create 2048 bit signing keys.
2013-12-12 17:39:22 +01:00
rl1987
e6590efaa7
Fix get_configured_bridge_by_addr_port_digest(.,.,NULL)
...
The old behavior was that NULL matched only bridges without known
identities; the correct behavior is that NULL should match all
bridges (assuming that their addr:port matches).
2013-12-09 11:22:22 -05:00
Nick Mathewson
9c048d90b6
Merge remote-tracking branch 'public/bug10131_024'
2013-12-09 11:06:20 -05:00
Nick Mathewson
c56bb30044
Remove a check in channeltls.c that could never fail.
...
We were checking whether a 8-bit length field had overflowed a
503-byte buffer. Unless somebody has found a way to store "504" in a
single byte, it seems unlikely.
Fix for 10313 and 9980. Based on a pach by Jared L Wong. First found
by David Fifield with STACK.
2013-12-09 11:02:34 -05:00
David Fifield
b600495441
Set CREATE_NO_WINDOW in tor_spawn_background.
...
This flag prevents the creation of a console window popup on Windows. We
need it for pluggable transport executables--otherwise you get blank
console windows when you launch the 3.x browser bundle with transports
enabled.
http://msdn.microsoft.com/en-us/library/ms684863.aspx#CREATE_NO_WINDOW
The browser bundles that used Vidalia used to set this flag when
launching tor itself; it was apparently inherited by the pluggable
transports launched by tor. In the 3.x bundles, tor is launched by some
JavaScript code, which doesn't have the ability to set CREATE_NO_WINDOW.
tor itself is now being compiled with the -mwindows option, so that it
is a GUI application, not a console application, and doesn't show a
console window in any case. This workaround doesn't work for pluggable
transports, because they need to be able to write control messages to
stdout.
https://trac.torproject.org/projects/tor/ticket/9444#comment:30
2013-12-05 12:30:11 -05:00
Nick Mathewson
8f9c847fbf
Restore prop198 behavior from 4677 patch
...
The previous commit from piet would have backed out some of proposal
198 and made servers built without the V2 handshake not use the
unrestricted cipher list from prop198.
Bug not in any released Tor.
2013-11-25 10:53:37 -05:00
Nick Mathewson
2d9adcd204
Restore ability to build with V2_HANDSHAKE_SERVER
...
Fixes bug 4677; bugfix on 0.2.3.2-alpha. Fix by "piet".
2013-11-25 10:51:00 -05:00
Nick Mathewson
acd8c4f868
Avoid warning about impossible check for flags & 0
...
Fixes CID 743381
2013-11-22 12:42:05 -05:00
Nick Mathewson
23dae51976
Only update view of micrdescriptor pos if pos is fetchable.
...
It's conceivable (but probably impossible given our code) that lseek
could return -1 on an error; when that happens, we don't want off to
become -1.
Fixes CID 1035124.
2013-11-22 12:38:58 -05:00
Nick Mathewson
a7410c9199
Add checks to prevent memcmp(.,.,negative) in tests (CID 1064417)
2013-11-22 12:33:25 -05:00
Nick Mathewson
569dbcc615
Fix another unit test memory leak. CID1087949,CID1087950.
2013-11-22 12:27:41 -05:00
Nick Mathewson
7c76fd5a82
Fix a bunch of coverity-spotted unit test resource leaks
...
CIDs: 1130994, 1130993, 1130992, 1130991
2013-11-22 12:21:14 -05:00
Nick Mathewson
6f7eb7a0a5
Remove needless fd var from test. CID 1130989.
2013-11-22 12:16:17 -05:00
Nick Mathewson
6cbd17470d
Handle unlikely negative time in tor_log_err_sigsafe
...
Coverity wants this; CID 1130990.
2013-11-22 12:14:11 -05:00
Nick Mathewson
647248729f
Drop the MaxMemInQueues lower limit down to 256 MB.
...
on #9686 , gmorehose reports that the 500 MB lower limit is too high
for raspberry pi users.
2013-11-20 12:13:30 -05:00
Nick Mathewson
e572ec856d
Rename MaxMemInCellQueues to MaxMemInQueues
2013-11-20 12:12:23 -05:00
Nick Mathewson
a406f6d0f0
doxygen comments for 10169 code
2013-11-20 12:05:36 -05:00
Nick Mathewson
eabcab2b7c
Count freed buffer bytes from buffers when oom-killing circuits.
...
Also, aggressively clear the buffers to try to make their bytes go
away fast rather than waiting for the close-marked-connection code
to get 'em.
2013-11-20 11:57:45 -05:00
Nick Mathewson
027f4c82eb
Whitespace cleanup
2013-11-20 11:05:00 -05:00
Nick Mathewson
03da9be2f1
Merge remote-tracking branch 'sysrqb/bug9859_5'
2013-11-20 11:03:37 -05:00
Nick Mathewson
e7165659e0
Fix crypto/digests test
2013-11-18 13:33:29 -05:00
Nick Mathewson
a7c9d64fd6
Merge branch 'finish_prop157'
2013-11-18 13:27:06 -05:00
Nick Mathewson
ec9d88e5a2
Tweak #10162 documentation a bit
2013-11-18 13:26:58 -05:00
Nick Mathewson
3cdd7966d7
Add a _GNU_SOURCE definition to backtrace.c to fix compilation
2013-11-18 13:05:23 -05:00
Nick Mathewson
9025423471
Whoops -- add missing defined().
2013-11-18 11:36:23 -05:00
Nick Mathewson
93c99508d2
Make header includes match declarations in pc_from_ucontext.m4
...
With any luck, this will clean up errors where we detect that
REG_{EIP,RIP} is present in autoconf, but when we go to include it,
it isn't there.
2013-11-18 11:34:15 -05:00
Nick Mathewson
adf2fa9b49
Fix compilation under openssl 0.9.8
...
It's not nice to talk about NID_aes_{128,256}_{ctr,gcm} when they
don't exist.
Fix on 84458b79a78ea7e26820bf0; bug not in any released Tor.
2013-11-18 11:25:07 -05:00
Nick Mathewson
bd25bda7c0
Remove 'struct timeval now' that was shadowing 'struct timeval now'.
...
This was a mistake in the merge commit 7a2b30fe16
. It
would have made the CellStatistics code give completely bogus
results. Bug not in any released Tor.
2013-11-18 11:20:35 -05:00
Nick Mathewson
4b9ec85e47
Fix whitespace
2013-11-18 11:13:40 -05:00
Nick Mathewson
84458b79a7
Log more OpenSSL engine statuses at startup.
...
Fixes ticket 10043; patch from Joshua Datko.
2013-11-18 11:12:24 -05:00
Nick Mathewson
fbc20294aa
Merge branch 'backtrace_squashed'
...
Conflicts:
src/common/sandbox.c
src/common/sandbox.h
src/common/util.c
src/or/main.c
src/test/include.am
src/test/test.c
2013-11-18 11:00:16 -05:00
Nick Mathewson
c2dfae78d3
Refactor format_*_number_sigsafe to have a common implementation
2013-11-18 10:43:16 -05:00
Nick Mathewson
c3ea946839
Reseolve DOCDOC and XXXXs in backtrace.c
2013-11-18 10:43:15 -05:00
Nick Mathewson
56e3f056e9
Tests for backtrace.c
...
These need to be a separate executable, since the point of backtrace.c
is that it can crash and write stuff.
2013-11-18 10:43:15 -05:00
Nick Mathewson
0cf234317f
Unit tests for new functions in log.c
2013-11-18 10:43:15 -05:00
Nick Mathewson
d631ddfb59
Make backtrace handler handle signals correctly.
...
This meant moving a fair bit of code around, and writing a signal
cleanup function. Still pretty nice from what I can tell, though.
2013-11-18 10:43:15 -05:00
Nick Mathewson
ce8ae49c94
Improve new assertion message logging
...
Don't report that a failure happened in the assertion_failed function just
because we logged it from there.
2013-11-18 10:43:15 -05:00
Nick Mathewson
bd8ad674b9
Add a sighandler-safe logging mechanism
...
We had accidentially grown two fake ones: one for backtrace.c, and one
for sandbox.c. Let's do this properly instead.
Now, when we configure logs, we keep track of fds that should get told
about bad stuff happening from signal handlers. There's another entry
point for these that avoids using non-signal-handler-safe functions.
2013-11-18 10:43:15 -05:00
Nick Mathewson
063bea58bc
Basic backtrace ability
...
On platforms with the backtrace/backtrace_symbols_fd interface, Tor
can now dump stack traces on assertion failure. By default, I log
them to DataDir/stack_dump and to stderr.
2013-11-18 10:43:14 -05:00
Nick Mathewson
91ec6f7269
Have the OOM handler also count the age the data in a stream buffer
2013-11-15 18:38:52 -05:00
Nick Mathewson
7a2b30fe16
Merge remote-tracking branch 'origin/maint-0.2.4'
...
Conflicts:
src/or/relay.c
Conflict changes were easy; compilation fixes required were using
using TOR_SIMPLEQ_FIRST to get head of cell queue.
2013-11-15 15:35:00 -05:00
Nick Mathewson
59f50c80d4
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
...
Conflicts:
src/or/or.h
src/or/relay.c
Conflicts were simple to resolve. More fixes were needed for
compilation, including: reinstating the tv_to_msec function, and renaming
*_conn_cells to *_chan_cells.
2013-11-15 15:29:24 -05:00
Nick Mathewson
f6e07c158f
Make the dir-key-crosscert element required
...
In proposal 157, we added a cross-certification element for
directory authority certificates. We implemented it in
0.2.1.9-alpha. All Tor directory authorities now generate it.
Here, as planned, make it required, so that we can finally close
proposal 157.
The biggest change in the code is in the unit test data, where some
old hardcoded certs that we made long ago have become no longer
valid and now need to be replaced.
2013-11-14 09:37:41 -05:00
Nick Mathewson
4aa9affec2
Fix test_cmdline_args to work with old openssl
...
If openssl was old, Tor would add a warning about its version in
between saying "no torrc found, using reasonable defaults" and
"configuration was valid".
2013-11-11 15:22:08 -05:00
Nick Mathewson
fc5a881bd3
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-11-10 12:24:12 -05:00
Nick Mathewson
8bfa596c15
Fix two more DirServer mentions in log
2013-11-10 12:23:56 -05:00
Nick Mathewson
56ac75b265
Fix a wide line
2013-11-10 12:22:34 -05:00
Nick Mathewson
532f70a807
Change documentation DirServer->DirAuthority
...
We renamed the option, but we didn't actually fix it in the log
messages or the docs. This patch does that.
For #10124 . Patch by sqrt2.
2013-11-10 12:21:23 -05:00
Nick Mathewson
940d286a74
Documentation and tests for 10060
2013-11-07 14:42:58 -05:00
rl1987
86cfc64d45
Implementing --allow-missing-torrc CLI option.
2013-11-07 14:26:05 -05:00
Nick Mathewson
1b8ceb83c9
Improved circuit queue out-of-memory handler
...
Previously, when we ran low on memory, we'd close whichever circuits
had the most queued cells. Now, we close those that have the
*oldest* queued cells, on the theory that those are most responsible
for us running low on memory, and that those are the least likely to
actually drain on their own if we wait a little longer.
Based on analysis from a forthcoming paper by Jansen, Tschorsch,
Johnson, and Scheuermann. Fixes bug 9093.
2013-11-07 12:15:30 -05:00
Nick Mathewson
12dc55f487
Merge branch 'prop221_squashed_024'
...
Conflicts:
src/or/or.h
2013-11-01 10:28:01 -04:00
Nick Mathewson
5de88dda0a
circuit_build_failed: distinguish "got DESTROY" case
...
Roger spotted this on tor-dev in his comments on proposal 221.
We etect DESTROY vs everything else, since arma likes network
timeout indicating failure but not overload indicating failure.
2013-11-01 10:04:48 -04:00
Nick Mathewson
0de71bf8eb
Implement proposal 221: Stop sending CREATE_FAST
...
This makes FastFirstHopPK an AUTOBOOL; makes the default "auto"; and
makes the behavior of "auto" be "look at the consensus."
2013-11-01 10:04:48 -04:00
Nick Mathewson
5cc155e02a
Merge remote-tracking branch 'public/bug9645' into maint-0.2.4
2013-10-31 16:09:41 -04:00
Nick Mathewson
275ab61ad4
Appease make check-spaces
2013-10-31 14:45:20 -04:00
Nick Mathewson
9bcd93a364
Merge remote-tracking branch 'public/bug10063'
2013-10-31 14:43:20 -04:00
Nick Mathewson
761ee93c69
Add missing includes for circpathbias.h
2013-10-31 14:33:34 -04:00
Nick Mathewson
8f793c38fb
Move other #9731 check to start of its functions
...
At arma's suggestion. Looks like I missed this one.
2013-10-31 14:29:18 -04:00
Nick Mathewson
5cba0ddfc4
Make circpathbias and circuitbuild compile.
...
That was the tricky part
2013-10-31 14:28:49 -04:00
Nick Mathewson
b4ebf8421a
Move pathbias functions into a new file.
...
Does not compile yet. This is the "no code changed" diff.
2013-10-31 14:17:49 -04:00
Nick Mathewson
96f92f2062
Move #9731 checks to start of their functions
...
At arma's suggestion.
2013-10-31 14:10:23 -04:00
Nick Mathewson
702c0502cf
Merge remote-tracking branch 'public/bug9731'
2013-10-31 14:09:18 -04:00
Nick Mathewson
db2c2a6909
Merge remote-tracking branch 'public/bug9731b' into maint-0.2.4
2013-10-31 14:08:28 -04:00
Nick Mathewson
61029d6926
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-10-31 14:03:01 -04:00
Nick Mathewson
1b312f7b55
Merge remote-tracking branch 'public/bug9780_024_v2' into maint-0.2.4
2013-10-31 14:02:28 -04:00
Nick Mathewson
0e8ee795d9
Merge remote-tracking branch 'public/bug6055_v2_024' into maint-0.2.4
2013-10-31 13:14:39 -04:00
Nick Mathewson
f6fee77375
Add some clarity and checks to cell_queue_append_packed_copy
...
It's not cool to have "circ may be NULL if use_stats false, but
otherwise we crash" as an undocumented API constraint. :)
2013-10-30 23:03:20 -04:00
Nick Mathewson
83d9d72bf3
Merge remote-tracking branch 'karsten/morestats5'
2013-10-30 22:53:05 -04:00
George Kadianakis
9e0ed8136a
Fix an always-true assert in PT code.
2013-10-29 22:49:37 +00:00
Nick Mathewson
4b6f074df9
Merge remote-tracking branch 'public/bug5018'
...
Conflicts:
src/or/entrynodes.c
2013-10-29 01:29:59 -04:00
David Fifield
2235d65240
Document that unneeded transports are ignored.
...
Suggested by Roger in
https://trac.torproject.org/projects/tor/ticket/5018#comment:11 .
2013-10-29 01:06:03 -04:00
David Fifield
e6e6c245c8
Simplify transport_is_needed.
...
By Roger at
https://trac.torproject.org/projects/tor/ticket/5018#comment:11 .
2013-10-29 01:05:57 -04:00
George Kadianakis
6f33dffec1
Only launch transport proxies that provide useful transports.
2013-10-29 01:05:56 -04:00
Karsten Loesing
2e0fad542c
Merge branch 'morestats4' into morestats5
...
Conflicts:
doc/tor.1.txt
src/or/config.c
src/or/connection.h
src/or/control.c
src/or/control.h
src/or/or.h
src/or/relay.c
src/or/relay.h
src/test/test.c
2013-10-28 12:09:42 +01:00
Karsten Loesing
e46de82c97
squash! Pass const uint64_t pointers, document array length.
...
Don't cast uint64_t * to const uint64_t * explicitly. The cast is always
safe, so C does it for us. Doing the cast explitictly can hide bugs if
the input is secretly the wrong type.
Suggested by Nick.
2013-10-28 10:48:18 +01:00
Nick Mathewson
7578606a22
Merge remote-tracking branch 'public/bug9934_nm'
2013-10-25 12:15:31 -04:00
Nick Mathewson
f249074e41
Merge remote-tracking branch 'Ryman/bug5605'
2013-10-25 12:03:42 -04:00
Nick Mathewson
4b8282e50c
Log the origin address of controller connections
...
Resolves 9698; patch from "sigpipe".
2013-10-25 11:52:45 -04:00
Nick Mathewson
338bcad9e4
Make test_cmdline_args.py work with older pythons
...
I was using the assertIn() function on unit tests, which Python 2.7
introduced. But we'd like to be able to run our unit tests on Pythons
from older operating systems.
2013-10-21 14:35:01 -04:00
Matthew Finkel
b36f93a671
A Bridge Authority should compute flag thresholds
...
As a bridge authority, before we create our networkstatus document, we
should compute the thresholds needed for the various status flags
assigned to each bridge based on the status of all other bridges. We
then add these thresholds to the networkstatus document for easy access.
Fixes for #1117 and #9859 .
2013-10-21 17:49:33 +00:00
Nick Mathewson
71bd100976
DROPGUARDS controller command
...
Implements ticket 9934; patch from "ra"
2013-10-21 13:02:25 -04:00
Nick Mathewson
17d368281a
Merge remote-tracking branch 'linus/bug9206_option'
2013-10-16 11:20:43 -04:00
Nick Mathewson
7f2415683a
Merge remote-tracking branch 'asn/bug9651'
2013-10-14 11:43:33 -04:00
Roger Dingledine
a26a5794a3
Merge branch 'maint-0.2.4'
2013-10-12 10:48:30 -04:00
Roger Dingledine
8f9fb63cdb
be willing to bootstrap from all three of our directory guards
...
Also fix a bug where if the guard we choose first doesn't answer, we
would try the second guard, but once we connected to the second guard
we would abandon it and retry the first one, slowing down bootstrapping.
The fix in both cases is to treat all our initially chosen guards as
acceptable to use.
Fixes bug 9946.
2013-10-12 10:42:27 -04:00
Nick Mathewson
d5f050111e
Fix out-of-tree "make check-local"
2013-10-11 13:42:27 -04:00
Nick Mathewson
f308adf838
When possible, run the ntor python integration tests too
2013-10-11 13:21:42 -04:00
Nick Mathewson
187398318e
When python is available, run the commandline unit tests from "make check"
2013-10-11 13:07:14 -04:00
Nick Mathewson
0546edde66
Merge branch 'bug1376'
2013-10-11 12:51:15 -04:00
Nick Mathewson
7ef9ecf6b3
Fix some whitespace; tighten the tests.
2013-10-11 12:51:07 -04:00
Nick Mathewson
6f9584b3fd
Make --version, --help, etc incremement quiet level, never decrease it
...
Fixes other case of #9578
2013-10-11 12:32:59 -04:00
Nick Mathewson
3e3b9219ec
Merge remote-tracking branch 'karsten/geoip-manual-update-oct2013'
2013-10-11 11:17:25 -04:00
Nick Mathewson
64293135df
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-10-11 11:17:18 -04:00
Nick Mathewson
7ef2939e5a
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
2013-10-11 11:16:59 -04:00
Nick Mathewson
82d8944928
Merge remote-tracking branch 'origin/maint-0.2.2' into maint-0.2.3
2013-10-11 11:16:45 -04:00
Karsten Loesing
3b0265198f
Update to the October 2013 GeoIP database.
2013-10-11 13:36:30 +02:00
Karsten Loesing
f4ef7c76f3
Modify 1 and delete 1 geoip A1 substitution.
2013-10-11 13:30:39 +02:00
Roger Dingledine
f96a8d5fa3
Report bootstrapping progress correctly when downloading microdescs
...
We had updated our "do we have enough microdescs to begin building
circuits?" logic most recently in 0.2.4.10-alpha (see bug 5956), but we
left the bootstrap status event logic at "how far through getting 1/4
of them are we?"
Fixes bug 9958; bugfix on 0.2.2.36, which is where they diverged (see
bug 5343).
2013-10-10 21:39:21 -04:00
Nick Mathewson
43f95e38ab
Merge remote-tracking branch 'sysrqb/bug9950'
2013-10-10 11:27:28 -04:00
Nick Mathewson
df4693fed5
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-10-10 11:24:16 -04:00
Nick Mathewson
2c7ed0406f
Merge branch 'bug9644_024' into maint-0.2.4
2013-10-10 11:23:46 -04:00
Nick Mathewson
3d817fa29c
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-10-10 11:18:17 -04:00
Nick Mathewson
7b1b8c3694
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
2013-10-10 11:18:07 -04:00
Nick Mathewson
004a9c6dd1
Fix unit test for format_helper_exit_status
...
Fix format_helper_exit_status to allow full HEX_ERRNO_SIZE answers,
*and* increase the buffer length again.
2013-10-10 11:15:35 -04:00
Nick Mathewson
97285bc465
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-10-10 10:55:58 -04:00
Nick Mathewson
1137817319
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
2013-10-10 10:55:24 -04:00
Nick Mathewson
6eb7f2f889
Merge remote-tracking branch 'public/bug9928' into maint-0.2.3
2013-10-10 10:53:27 -04:00
Matthew Finkel
528e3bf892
Free the smartlist after parsing csv config option
...
Bugfix on 1293835440
, which implemented
6752: Not in any released tor.
2013-10-09 23:16:57 +00:00
Nick Mathewson
3b6c48328b
Or maybe it is 2013. Who can say?
2013-10-09 12:48:18 -04:00
Nick Mathewson
73a0bb16b9
Partially revert "Clarify who learns about ContactInfo."
...
This reverts the torrc.sample.in changes from commit
66a04a6ac3
.
We're going to not make this change in 0.2.4, since changing
torrc.sample.in makes all the debian users do some pointless
busywork. see tor-dev discusion of 9 Oct 2013.
2013-10-09 12:02:53 -04:00
Karsten Loesing
795c0f7b00
Update last modified timestamp of torrc.sample.in.
2013-10-09 17:41:05 +02:00
Nick Mathewson
882fb8383d
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-10-09 09:45:21 -04:00
Karsten Loesing
66a04a6ac3
Clarify who learns about ContactInfo.
...
Explicitly include bridges, and note that we archive and publish all
descriptors.
(We are not yet publishing ContactInfo lines contained in bridge
descriptors, but maybe we'll want to do that soon, so let's err on the
side of caution here.)
Related to #9854 .
2013-10-09 09:43:18 -04:00
Nick Mathewson
9de456a303
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-10-08 16:47:49 -04:00
Nick Mathewson
b8abadedd3
When examining interfaces to find an address, discard non-up ones.
...
Patch from "hantwister" on trac. Fixes bug #9904 ; bugfix on
0.2.3.11-alpha.
2013-10-08 16:46:29 -04:00
Nick Mathewson
72c1e5acfe
Switch ECDHE group default logic for bridge/relay TLS
...
According to the manpage, bridges use P256 for conformity and relays
use P224 for speed. But skruffy points out that we've gotten it
backwards in the code.
In this patch, we make the default P256 for everybody.
Fixes bug 9780; bugfix on 0.2.4.8-alpha.
2013-10-08 16:32:07 -04:00
Nick Mathewson
66624ded39
Merge remote-tracking branch 'origin/maint-0.2.4'
...
Conflicts:
src/or/relay.c
2013-10-08 13:38:47 -04:00
Nick Mathewson
50fc8fb5c5
Merge remote-tracking branch 'public/bug9927' into maint-0.2.4
2013-10-08 13:37:13 -04:00
Nick Mathewson
b571b966f2
Tweak a comment
2013-10-08 12:18:31 -04:00
Nick Mathewson
1060688d2a
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-10-08 12:17:14 -04:00
Nick Mathewson
7e0f1fa52a
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
2013-10-08 12:16:42 -04:00
Nick Mathewson
5e0404265f
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-10-08 12:11:37 -04:00
Nick Mathewson
0c3c47565d
Merge remote-tracking branch 'public/bug9596' into maint-0.2.4
2013-10-08 12:10:47 -04:00
Nick Mathewson
63234b1839
Merge branch 'bug9922'
2013-10-08 12:03:09 -04:00
Roger Dingledine
5f13ae4b03
don't lie about bootstrap progress when clients use bridges
...
we were listing 50% as soon as we got a bridge's relay descriptor,
even if we didn't have any consensus, certificates, etc yet.
2013-10-08 11:50:53 -04:00
Nick Mathewson
c8c2298015
Simply route length generation code.
...
The old code had logic to use a shorter path length if we didn't
have enough nodes. But we don't support 2-node networks anwyay.
Fix for #9926 . I'm not calling this a bugfix on any particular
version, since a 2-node network would fail to work for you for a lot
of other reasons too, and it's not clear to me when that began, or if
2-node networks would ever have worked.
2013-10-08 11:48:33 -04:00
Nick Mathewson
c7c24785ee
Generate bootstrapping status messages for microdescs too
...
Fix for 9927.
2013-10-08 11:32:02 -04:00
Nick Mathewson
17bcfb2604
Raise buffer size, fix checks for format_exit_helper_status.
...
This is probably not an exploitable bug, since you would need to have
errno be a large negative value in the unix pluggable-transport launcher
case. Still, best avoided.
Fixes bug 9928; bugfix on 0.2.3.18-rc.
2013-10-08 11:13:21 -04:00
Linus Nordberg
fab8fd2c18
Add TestingDirAuthVoteGuard option for specifying relays to vote Guard on.
...
Addresses ticket 9206.
2013-10-07 13:33:42 +02:00
Nick Mathewson
a6b4934037
Bump version to 0.2.5.1-alpha-dev
2013-10-02 22:41:41 -04:00
Nick Mathewson
566645b5ed
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-10-02 22:40:01 -04:00
Nick Mathewson
557f332957
Fix a bug in our bug 9776 fix.
...
By calling circuit_n_chan_done() unconditionally on close, we were
closing pending connections that might not have been pending quite for
the connection we were closing. Fix for bug 9880.
Thanks to skruffy for finding this and explaining it patiently until
we understood.
2013-10-02 22:20:18 -04:00
Roger Dingledine
fdf9fc5a7f
bump to 0.2.5.1-alpha
2013-10-01 20:57:30 -04:00
Roger Dingledine
a980d844cd
what is logging "above" notice?
2013-10-01 08:55:57 -04:00
Roger Dingledine
0d8632e585
fix another confusing whitespace instance
2013-09-30 01:47:24 -04:00
Roger Dingledine
2cf41cc70d
fix confusing whitespace
2013-09-30 01:41:48 -04:00
Jim Pannacciulli
8bc5b9f3d0
test-network.sh: tools dir in PATH, parameterization
2013-09-29 14:19:00 -04:00
Roger Dingledine
1b6ea92a57
fix whitespace in log message
2013-09-29 06:15:00 -04:00
Roger Dingledine
c902b4981b
fix two cases where we were printing unsigned int as %d
2013-09-29 06:13:59 -04:00
Nick Mathewson
090bff2dca
Merge remote-tracking branch 'public/bug6055_v2_024'
2013-09-25 14:35:18 -04:00
Nick Mathewson
ad763a336c
Re-enable TLS 1.[12] when building with OpenSSL >= 1.0.1e
...
To fix #6033 , we disabled TLS 1.1 and 1.2. Eventually, OpenSSL fixed
the bug behind #6033 .
I've considered alternate implementations that do more testing to see
if there's secretly an OpenSSL 1.0.1c or something that secretly has a
backport of the OpenSSL 1.0.1e fix, and decided against it on the
grounds of complexity.
2013-09-25 14:34:24 -04:00
Nick Mathewson
759de9f756
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-09-24 10:47:26 -04:00
Andrea Shepard
938ee9b24d
Always call circuit_n_chan_done(chan, 0) from channel_closed()
2013-09-24 10:42:12 -04:00
George Kadianakis
43b9b51389
Warn when the Extended ORPort should be on but it's not.
2013-09-24 12:30:25 +01:00
Nick Mathewson
31f6806aa7
Use tt_ptr_op, not test_eq, for pointer comparisons in tests
...
Makes mingw64 a bit happier.
2013-09-23 01:57:34 -04:00
Nick Mathewson
5b1c257d9a
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-09-23 01:48:30 -04:00
Nick Mathewson
116e6af7a7
Fix a compilation warning with older gcc
2013-09-23 01:47:52 -04:00
Nick Mathewson
c4031ee847
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-09-21 08:55:45 -04:00
Nick Mathewson
d1dbaf2473
Relays should send timestamp in NETINFO.
...
This avoids skew warnings as authorities test reachability.
Fix 9798; fix not on any released Tor.
2013-09-21 08:54:42 -04:00
Roger Dingledine
99703c9b31
Merge branch 'maint-0.2.4'
2013-09-21 02:21:15 -04:00
Roger Dingledine
4f036acd27
back out most of 1d0ba9a
...
this was causing directory authorities to send a time of 0 on all
connections they generated themselves, which means everybody reachability
test caused a time skew warning in the log for that relay.
(i didn't just revert, because the changes file has been modified by
other later commits.)
2013-09-21 02:11:51 -04:00
Nick Mathewson
6178aaea06
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-09-20 11:01:10 -04:00
Nick Mathewson
fd2954d06d
Round down hidden service descriptor publication times to nearest hour
...
Implements part of proposal 222. We can do this safely, since
REND_CACHE_MAX_SKEW is 24 hours.
2013-09-20 11:00:27 -04:00
Nick Mathewson
accadd8752
Remove the timestamp from AUTHENTICATE cells; replace with random bytes
...
This isn't actually much of an issue, since only relays send
AUTHENTICATE cells, but while we're removing timestamps, we might as
well do this too.
Part of proposal 222. I didn't take the approach in the proposal of
using a time-based HMAC, since that was a bad-prng-mitigation hack
from SSL3, and in real life, if you don't have a good RNG, you're
hopeless as a Tor server.
2013-09-20 11:00:27 -04:00
Nick Mathewson
f8b44eedf7
Get ready to stop sending timestamps in INTRODUCE cells
...
For now, round down to the nearest 10 minutes. Later, eliminate entirely by
setting a consensus parameter.
(This rounding is safe because, in 0.2.2, where the timestamp mattered,
REND_REPLAY_TIME_INTERVAL was a nice generous 60 minutes.)
2013-09-20 11:00:27 -04:00
Nick Mathewson
1d0ba9a61f
Stop sending the current time in client NETINFO handshakes.
...
Implements part of proposal 222.
2013-09-20 11:00:27 -04:00
Nick Mathewson
ee01e41937
Fix compilation with libevent 1
...
a9910d89
added trickery to make us work with interned strings and
seccomp; it requires libevent 2.
Fix for 9785; bug not in any released tor.
2013-09-19 20:25:05 -04:00
Nick Mathewson
7dbf66713f
When freeing a cert_list_t, avoid memory leak.
...
We were freeing these on exit, but when we added the dl_status_map
field to them in fddb814f
, we forgot to arrange for it to be freed.
I've moved the cert_list_free() code into its own function, and added
an appropriate dsmap_free() call.
Fixes bug 9644; bugfix on 0.2.4.13-alpha.
2013-09-19 12:22:49 -04:00
Nick Mathewson
67bb1a44bd
Merge remote-tracking branch 'public/bug9716_024'
2013-09-19 10:50:34 -04:00
Nick Mathewson
2f2fa7683d
Fix benchmarks to run without crashing.
...
I broke this when I added separate test-mode support by having
the benchmarks get built with TEST_CFLAGS.
2013-09-18 21:43:38 -04:00
Nick Mathewson
dece40fd77
Fix an assert when disabling ORPort with accounting disabled.
...
The problem was that the server_identity_key_is_set() function could
return true under conditions where we don't really have an identity
key -- specifically, where we used to have one, but we stopped being a
server.
This is a fix for 6979; bugfix on 0.2.2.18-alpha where we added that
assertion to get_server_identity_key().
2013-09-18 10:26:32 -04:00
Nick Mathewson
1825674bd3
Fix a memory leak on getaddrinfo in sandbox. Found by coverity
2013-09-16 22:38:02 -04:00
Nick Mathewson
4ea9fbcdb1
Clean up malloc issues in sandbox.c
...
tor_malloc returns void *; in C, it is not necessary to cast a
void* to another pointer type before assigning it.
tor_malloc fails with an error rather than returning NULL; it's not
necessary to check its output. (In one case, doing so annoyed Coverity.)
2013-09-16 22:34:42 -04:00
Nick Mathewson
15b9a1ff10
Correctly re-process non-option cmdline args on sighup
...
Whenever we had an non-option commandline arguments *and*
option-bearing commandline arguments on the commandline, we would save
only the latter across invocations of options_init_from_torrc, but
take their existence as license not to re-parse the former. Yuck!
Incidentally, this fix lets us throw away the backup_arg[gv] logic.
Fix for bug 9746; bugfix on d98dfb3746
,
not in any released Tor. Found by Damian. Thanks, Damian!
2013-09-16 13:07:45 -04:00
Nick Mathewson
57859980a8
Merge remote-tracking branch 'karsten/geoip-manual-update-sep2013'
2013-09-16 12:48:49 -04:00
Nick Mathewson
3892e03cfc
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-09-16 12:48:45 -04:00
Nick Mathewson
ace95c525c
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
2013-09-16 12:47:05 -04:00
Nick Mathewson
b46353b793
Merge remote-tracking branch 'origin/maint-0.2.2' into maint-0.2.3
2013-09-16 12:46:50 -04:00
Nick Mathewson
c5532889a8
Don't apply read/write buckets to cpuworker connections
...
Fixes bug 9731
2013-09-13 13:39:18 -04:00
Nick Mathewson
9205552daa
Don't apply read/write buckets to non-limited connections
...
Fixes bug 9731
2013-09-13 13:37:53 -04:00
Nick Mathewson
147a0f31bd
Fix a windows compilation warning from 4647 branch
2013-09-13 13:10:17 -04:00
Nick Mathewson
ccbf1cfacd
Whoops; make or_state_validate conform to validate_fn_t.
...
Bugfix on 1293835440
, which implemented
6752: Not in any released tor.
2013-09-13 12:56:14 -04:00
Nick Mathewson
25a3ae922f
Merge remote-tracking branch 'Ryman/bug6384'
...
Conflicts:
src/or/config.c
src/or/main.c
2013-09-13 12:55:53 -04:00
Nick Mathewson
f4db0f429a
Fix a windows compilation warning from sandboxing branch
2013-09-13 12:43:18 -04:00
Nick Mathewson
e35c972851
Merge branch 'bug4647_squashed'
2013-09-13 12:36:55 -04:00
Nick Mathewson
bf5e1e19f7
Finish tests for command-line arguments
2013-09-13 12:36:40 -04:00
Nick Mathewson
aac4f30d23
Add a --dump-config option to help testing option parsing.
2013-09-13 12:36:40 -04:00
Nick Mathewson
7972af7073
Whoops; make options_validate conform to validate_fn_t.
...
This just goes to show: never cast a function pointer. Found while
testing new command line parse logic.
Bugfix on 1293835440
, which implemented
6752: Not in any released tor.
2013-09-13 12:36:40 -04:00
Nick Mathewson
a6cad4db70
Add '--digests' to "that which implies --hush."
...
And have these various commandline options imply "hush", not "quiet",
since we like to see warnings.
2013-09-13 12:36:40 -04:00
Nick Mathewson
675eb1fea7
Integration test for parsing arguments on the commandline
...
(incomplete)
2013-09-13 12:36:40 -04:00
Nick Mathewson
75d795b1d7
Disallow --hash-password with no commandline arguments.
...
Fixes bug 9573.
Bugfix on 59453ac6e
in 0.0.9pre5, which fixed a crash in a silly way.
2013-09-13 12:36:40 -04:00
Nick Mathewson
b523167f2f
Make config_parse_commandline table-driven for its list of cmdline args
2013-09-13 12:36:40 -04:00
Nick Mathewson
a1096fe180
Use commandline parser for other options
...
These were previously allowed only in the initial position:
--help, -h , --version, --digests, --list-torrc-options
2013-09-13 12:36:39 -04:00
Nick Mathewson
34ec954f8e
Expose commandline parser so that we can use it for --quiet,etc.
...
Fix for bug 9578.
2013-09-13 12:36:39 -04:00
Cristian Toader
d98dfb3746
Patch for 4647 (rewrite command line parser)
2013-09-13 12:36:26 -04:00
Nick Mathewson
e0b2cd061b
Merge remote-tracking branch 'ctoader/gsoc-cap-stage2'
...
Conflicts:
src/common/sandbox.c
2013-09-13 12:31:41 -04:00
Cristian Toader
7cf1b9cc33
fixed compilation bug on i386 due to previous fix
2013-09-12 15:38:14 +03:00
Cristian Toader
d2836c8780
bug fix: syscalls send and recv not supported for x86_64 with libseccomp 1.0.1
2013-09-12 15:30:28 +03:00
Cristian Toader
0a3d1685ae
remove debugging code
2013-09-12 14:12:56 +03:00
Cristian Toader
4702cdc99d
added extra buffer and limit to mprotect not to exceed the length of that buffer
2013-09-12 13:43:06 +03:00
Karsten Loesing
b43a37bc5b
Pass const uint64_t pointers, document array length.
...
Suggested by nickm.
2013-09-12 10:51:55 +02:00
Karsten Loesing
d5f0d792dd
Pass around const struct timeval * instead of struct timeval.
...
Suggested by nickm.
2013-09-12 10:10:38 +02:00
Karsten Loesing
6553bdde8c
Don't format cell stats for unattached circuits.
2013-09-12 09:21:13 +02:00
Nick Mathewson
6a11b6f97d
Fix osx compilation again, hopefully better this time.
2013-09-11 13:53:33 -04:00
Nick Mathewson
a2754d418d
Try using INT_MAX, not SOMAXCONN, to set listen() backlog.
...
Fall back to SOMAXCONN if INT_MAX doesn't work.
We'd like to do this because the actual maximum is overrideable by the
kernel, and the value in the header file might not be right at all.
All implementations I can find out about claim that this is supported.
Fix for 9716; bugfix on every Tor.
2013-09-11 13:30:45 -04:00
Karsten Loesing
13d192c1d8
Update to the September 2013 GeoIP database.
2013-09-10 15:00:06 +02:00
Karsten Loesing
e7361aa40a
Remove 17 now unused manual A1 substitutions.
2013-09-10 14:56:39 +02:00
Cristian Toader
79f94e236b
added filter protection for string parameter memory
2013-09-10 14:35:11 +03:00
Cristian Toader
8e003b1c69
fixed socket syscall bug
2013-09-10 00:42:36 +03:00
Cristian Toader
3802cae959
fixed compilation error on i386 linux by moving sandbox_cfg_t definition
2013-09-10 00:04:43 +03:00
Nick Mathewson
d91c776f61
Fix check-spaces
2013-09-09 16:00:40 -04:00
Nick Mathewson
49f9c4924e
Fix compilation on OSX
2013-09-09 15:59:41 -04:00
Nick Mathewson
e9ec0cb550
Do not try to add non-existent syscalls.
2013-09-09 15:37:45 -04:00
Nick Mathewson
4e00625bbe
Build correctly with older libevents
2013-09-09 15:29:19 -04:00
Nick Mathewson
a6ada1a50c
Fix a warning related to SCMP_CMP definition in header.
...
SCMP_CMP(a,b,c) leaves the fourth field of the structure undefined,
giving a missing-initializer error. All of our uses are
three-argument, so I'm overriding the default.
2013-09-09 15:16:30 -04:00
Nick Mathewson
cc35d8be84
Fix most of the --enable-gcc-warnings warnings in the sandbox code
2013-09-09 15:14:50 -04:00
Nick Mathewson
42e6ab0e14
Remove a usage of free()
2013-09-09 14:58:15 -04:00
Nick Mathewson
00fd0cc5f9
Basic compilation fixes.
2013-09-09 14:55:47 -04:00
Nick Mathewson
a0a855d586
Fix unit tests with --disable-curve25519
2013-09-08 17:14:07 -04:00
Cristian Toader
340cca524f
added missing documentation for sandbox functions
2013-09-06 21:41:45 +03:00
Cristian Toader
6a22b29641
passing hints as a const pointer to sandbox_getaddrinfo(), also one tor_free macro fails to compile..
2013-09-06 12:39:56 +03:00
Cristian Toader
839ff0063d
replaced strdup with tor_strdup
2013-09-06 12:30:01 +03:00
Cristian Toader
2a6c34750d
replaced malloc/free with tor_malloc/tor_free
2013-09-06 12:29:15 +03:00
Cristian Toader
42f5737c81
switched string lengths from int to size_t in prot_strings()
2013-09-06 12:26:50 +03:00
Nick Mathewson
c7113e702b
Merge remote-tracking branch 'public/bug9645'
2013-09-05 09:59:07 -04:00
Roger Dingledine
86907ea4db
Merge branch 'maint-0.2.4'
2013-09-05 02:34:58 -04:00
Roger Dingledine
2c877d2da4
collect and log statistics about onionskins received/processed
...
we skip onionskins that came from non-relays, so we're less likely to
run into privacy troubles.
starts to implement ticket 9658.
2013-09-05 01:44:52 -04:00
Roger Dingledine
f51add6dbc
Revert e443beff
and solve it a different way
...
Now we explicitly check for overflow.
This approach seemed smarter than a cascade of "change int to unsigned
int and hope nothing breaks right before the release".
Nick, feel free to fix in a better way, maybe in master.
2013-09-05 01:41:07 -04:00
Roger Dingledine
e443beffeb
don't let recently_chosen_ntors overflow
...
with commit c6f1668d
we let it grow arbitrarily large.
it can still overflow, but the damage is very small now.
2013-09-05 01:27:46 -04:00
Roger Dingledine
6156887adf
Merge branch 'maint-0.2.4'
...
Conflicts:
src/test/test.c
2013-09-04 23:44:39 -04:00
Roger Dingledine
c6f1668db3
nickm wants us to prioritize tap in a currently-rare edge case
2013-09-04 23:21:46 -04:00
Roger Dingledine
a4400952ee
Be more general in calculating expected onion queue processing time
...
Now we consider the TAP cells we'll process while draining the NTor
queue, and vice versa.
2013-09-04 23:21:45 -04:00
Roger Dingledine
a66791230f
let the NumNTorsPerTAP consensus param override our queue choice
2013-09-04 23:21:45 -04:00
Roger Dingledine
7acc7c3dc6
do a lopsided round-robin between the onion queues
...
that way tap won't starve entirely, but we'll still handle ntor requests
quicker.
2013-09-04 23:21:45 -04:00
Roger Dingledine
16b5c609a4
check bounds on handshake_type more thoroughly
2013-09-04 23:21:45 -04:00
Roger Dingledine
9d2030e580
add info-level logs to help track onion queue sizes
2013-09-04 23:21:45 -04:00
Roger Dingledine
bb32bfa2f2
refactor and give it unit tests
2013-09-04 23:21:45 -04:00
Roger Dingledine
87a18514ef
Separate cpuworker queues by handshake type
...
Now we prioritize ntor create cells over tap create cells.
Starts to address ticket 9574.
2013-09-04 23:21:45 -04:00
Kevin Butler
0f070e7858
Added test for new write_chunks_to_file behaviour in #1376 .
2013-09-04 23:25:41 +01:00
Nick Mathewson
d5e9573ed2
Merge remote-tracking branch 'origin/maint-0.2.4'
...
Conflicts:
src/or/circuituse.c
2013-09-04 16:11:20 -04:00
Nick Mathewson
a60d21a85d
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
...
Conflicts:
src/or/circuitbuild.c
2013-09-04 16:08:02 -04:00
Nick Mathewson
4f3dbb3c0a
use !cbt_disabled in place of LearnCBT to avoid needless circs
...
This would make us do testing circuits "even when cbt is disabled by
consensus, or when we're a directory authority, or when we've failed
to write cbt history to our state file lately." (Roger's words.)
This is a fix for 9671 and an improvement in our fix for 5049.
The original misbehavior was in 0.2.2.14-alpha; the incomplete
fix was in 0.2.3.17-beta.
2013-09-04 15:54:05 -04:00
Kevin Butler
b539b37205
Fixed leak and added minor documentation for #6384 .
2013-09-04 02:56:06 +01:00
Nick Mathewson
9b2a0f5c75
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-09-03 15:41:50 -04:00
Nick Mathewson
a8e76de4d9
Merge branch 'bug9400_024_squashed' into maint-0.2.4
2013-09-03 15:38:54 -04:00
Nick Mathewson
d819663b66
Avoid a double-close on one failing case of the socketpair replacement code
...
Fix for bug 9400, spotted by coverity. Bug introduced in revision 2cb4f7a4
(subversion revision r389).
2013-09-03 15:38:25 -04:00
Nick Mathewson
264aa271a7
Fix bug 9645: don't forget an md just because we can't save it.
2013-09-03 14:25:01 -04:00
Nick Mathewson
5c9008e0b0
Fix some "ISO C90 forbids mixed declarations and code" warnings
2013-09-03 13:39:31 -04:00
Nick Mathewson
3753488011
Fix warnings in test_config_fix_my_family
2013-09-03 13:35:44 -04:00
Nick Mathewson
eb5f22eff2
Merge remote-tracking branch 'Ryman/bug4341'
2013-09-03 13:16:22 -04:00
Kevin Butler
db318dc77f
Minor changes to adhere to codebase conventions.
2013-09-03 17:47:03 +01:00
Nick Mathewson
270b4f030a
Handle HTTP minor versions greater than 9
...
(In practice they don't exist, but so long as we're making changes for
standards compliance...)
Also add several more unit tests for good and bad URL types.
2013-09-03 11:38:15 -04:00
Cristian Toader
55d8b8e578
fixed bug where sandbox_getaddrinfo() would fail when -Sandbox is 0
2013-09-03 16:37:12 +03:00
Kevin Butler
5327605caa
Tougher validation for parsing urls from HTTP headers. Fixes #2767 .
2013-09-03 01:14:43 +01:00
Kevin Butler
b336e8c74e
No longer writing control ports to file if updating reversible options fail. Fixes #5605 .
2013-09-02 19:25:08 +01:00
Cristian Toader
b4b0eddd29
switched to a more generic way of handling the sandbox configuration
2013-09-02 13:54:43 +03:00
Cristian Toader
fe6e2733ab
added contingency message to test for sandbox_getaddrinfo
2013-09-02 12:16:02 +03:00
Cristian Toader
c584537a03
make check-spaces fix
2013-09-02 11:45:09 +03:00
Cristian Toader
1ef0b2e1a3
changed how sb getaddrinfo works such that it supports storing multiple results
2013-09-02 11:44:04 +03:00
Kevin Butler
6e17fa6d7b
Added --library-versions flag to print the compile time and runtime versions of libevent, openssl and zlib. Partially implements #6384 .
2013-09-01 17:38:01 +01:00
Kevin Butler
1bdb391ed0
Added no_tempfile parameter to write_chunks_to_file to do non-atomic writes. Implements #1376 .
2013-09-01 00:24:07 +01:00
Kevin Butler
bb69bf8882
Changed signature for check_nickname_list to remove warnings on free.
2013-08-31 05:14:48 +01:00
Kevin Butler
0513643317
MyFamily option will now fix fingerprints missing their leading instead of complaining. Should fix #4341 .
2013-08-31 04:49:04 +01:00
Cristian Toader
3e803a1f18
make check-spaces fix
2013-08-29 16:53:12 +03:00
Cristian Toader
1118bd9910
switched from multiple mmap to one
2013-08-29 16:51:05 +03:00
Cristian Toader
f93ba9a2ef
documentation update for _array functions
2013-08-29 15:44:01 +03:00
Cristian Toader
d5f43b5254
_array filter functions now rely on final NULL parameter
2013-08-29 15:42:30 +03:00
Cristian Toader
b1f7105506
supporting /dev/urandom instead of /dev/random
2013-08-29 15:22:14 +03:00
Cristian Toader
ce04d2a622
replaced boolean char with int
2013-08-29 15:19:49 +03:00
Cristian Toader
8e2b9d2844
small fixes in documentation and sandbox_getaddrinfo()
2013-08-29 12:41:17 +03:00
Cristian Toader
6cae5d706c
Added doxygen struct doc and replaced func() with funct(void)
2013-08-28 20:01:52 +03:00
Cristian Toader
8b8f87a06a
removed PARAM_LEN
2013-08-28 19:56:42 +03:00
Cristian Toader
b121ca581d
make check-spaces fix
2013-08-26 21:28:30 +03:00
Cristian Toader
148c6dc473
updated open syscall strings
2013-08-26 21:19:22 +03:00
Cristian Toader
15d420b564
fix: accept4 for 64 bit
2013-08-26 20:06:46 +03:00
Nick Mathewson
a5f6cb908c
Increase POLICY_BUF_LEN to 72 to accomodate IPv6 exit policy items.
...
Fixes bug 9596; bugfix on 0.2.4.7-alpha.
2013-08-26 11:30:09 -04:00
Nick Mathewson
00bcc25d05
Cleanup whitespaces
2013-08-25 12:22:20 -04:00
Nick Mathewson
078d6bcda5
Basic unit test for EVENT_TRANSPORT_LAUNCHED
2013-08-25 11:29:03 -04:00
Nick Mathewson
69312c7a84
Widen event_mask_t to 64 bits
2013-08-25 10:46:53 -04:00
George Kadianakis
6dd462e8bc
Implement the TRANSPORT_LAUNCHED control port event.
2013-08-25 10:37:03 -04:00
Nick Mathewson
2452302354
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-08-25 00:34:23 -04:00
Nick Mathewson
8611195a00
Merge remote-tracking branch 'public/bug9546_023_v2' into maint-0.2.3
2013-08-25 00:32:27 -04:00
Nick Mathewson
4107ddd003
Merge remote-tracking branch 'public/bug9546_v2' into maint-0.2.4
2013-08-25 00:31:51 -04:00
Nick Mathewson
1ee1c8fb4f
Merge remote-tracking branch 'public/bug9366' into maint-0.2.4
2013-08-25 00:29:49 -04:00
Nick Mathewson
3727a978b8
Merge remote-tracking branch 'public/bug9543' into maint-0.2.4
2013-08-25 00:29:06 -04:00
Roger Dingledine
0fd8f5781b
fix typos
2013-08-23 21:43:57 -04:00
Nick Mathewson
223c7da080
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-08-22 20:47:23 -04:00
Nick Mathewson
43f187ec2e
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
2013-08-22 20:47:10 -04:00
Nick Mathewson
8920fc5457
Hide the contents of the circuit_build_times structure.
...
There were only two functions outside of circuitstats that actually
wanted to know what was inside this. Making the structure itself
hidden should help isolation and prevent us from spaghettifying the
thing more.
2013-08-22 10:15:57 -04:00
Nick Mathewson
79cad08b4f
Documentation for new cbt accessors
2013-08-22 10:15:56 -04:00
Nick Mathewson
775c491502
Separate mutable/const accessors for circuit_build_times
...
(These have proved invaluable for other global accessors.)
2013-08-22 10:15:56 -04:00
Nick Mathewson
e1c9b43b8e
Rename get_circuit_nbuild_* to end with _ms
2013-08-22 10:15:56 -04:00
vagrant
4834641dce
Make circ_times static and add accessor functions.
...
Change the global circ_times to a static variable and use
accessor functions throughout the code, instead of
accessing it directly.
2013-08-22 10:15:56 -04:00
Nick Mathewson
2530c84220
Replace return with continue in update_consensus_networkstatus_downloads
...
Fix for bug 9564; bugfix on 0.2.3.14-alpha.
2013-08-22 10:00:37 -04:00
Nick Mathewson
71ec90fdc8
Tweak/cleanup 5526 fix.
2013-08-21 13:41:53 -04:00
Peter Retzlaff
a337d4b7cb
Print accounting information in heartbeat messages.
...
Implements ticket 5526.
2013-08-21 13:26:57 -04:00
Cristian Toader
b10472f92b
small open syscall modification (just in case)
2013-08-21 19:01:01 +03:00
Nick Mathewson
af7970b6bc
Add a 30-day maximum on user-supplied MaxCircuitDirtiness
...
Fix for bug 9543.
2013-08-21 11:35:00 -04:00
Nick Mathewson
cbc53a2d52
Make bridges send AUTH_CHALLENGE cells
...
The spec requires them to do so, and not doing so creates a situation
where they can't send-test because relays won't extend to them because
of the other part of bug 9546.
Fixes bug 9546; bugfix on 0.2.3.6-alpha.
2013-08-21 11:29:19 -04:00
Nick Mathewson
940cef3367
Make bridges send AUTH_CHALLENGE cells
...
The spec requires them to do so, and not doing so creates a situation
where they can't send-test because relays won't extend to them because
of the other part of bug 9546.
Fixes bug 9546; bugfix on 0.2.3.6-alpha.
2013-08-21 11:28:58 -04:00
Nick Mathewson
0daa26a473
Send NETINFO on receiving a NETINFO if we have not yet sent one.
...
(Backport to Tor 0.2.3)
Relays previously, when initiating a connection, would only send a
NETINFO after sending an AUTHENTICATE. But bridges, when receiving a
connection, would never send AUTH_CHALLENGE. So relays wouldn't
AUTHENTICATE, and wouldn't NETINFO, and then bridges would be
surprised to be receiving CREATE cells on a non-open circuit.
Fixes bug 9546.
2013-08-21 11:28:57 -04:00
Cristian Toader
bc19ea100c
make check-spaces fixes
2013-08-21 17:57:15 +03:00
Cristian Toader
ed4968315e
fix: sandbox_intern_string log clean up
2013-08-21 13:43:44 +03:00
Cristian Toader
8aa5517ff6
fix: flock filter update
2013-08-21 13:38:00 +03:00
Nick Mathewson
1bb4a4f9bd
Send NETINFO on receiving a NETINFO if we have not yet sent one.
...
Relays previously, when initiating a connection, would only send a
NETINFO after sending an AUTHENTICATE. But bridges, when receiving a
connection, would never send AUTH_CHALLENGE. So relays wouldn't
AUTHENTICATE, and wouldn't NETINFO, and then bridges would be
surprised to be receiving CREATE cells on a non-open circuit.
Fixes bug 9546.
2013-08-20 14:52:56 -04:00
Cristian Toader
71612f00ae
fixed openssl open syscall, fixed sandbox_getaddrinfo
2013-08-20 13:10:07 +03:00
Cristian Toader
36aeca0ecf
fix for getaddrinfo open syscall
2013-08-19 13:56:50 +03:00
Cristian Toader
a9910d89f1
finalised fix on libevent open string issue
2013-08-19 11:41:46 +03:00
Cristian Toader
c09b11b6d8
updated filters
2013-08-16 01:43:09 +03:00
Nick Mathewson
a3ffa1f76e
Rename circuit_get_global_list to remove trailing _
2013-08-15 15:37:23 -04:00
Nick Mathewson
d4634d1b72
Merge remote-tracking branch 'majek/bug9108'
...
Conflicts:
src/or/circuitlist.h
2013-08-15 15:36:04 -04:00
Nick Mathewson
172a55d9d6
Fix a wide line in test_geoip_with_pt
2013-08-15 12:10:10 -04:00
Nick Mathewson
74262f1571
Merge branch 'bug5040_4773_rebase_3'
2013-08-15 12:04:56 -04:00
George Kadianakis
c5269a59b0
Test ExtORPort cookie initialization when file writing is broken.
2013-08-15 12:03:38 -04:00
George Kadianakis
94db455472
Test some fail conditions of ext_orport.c USERADDR/TRANSPORT parsing.
2013-08-15 12:03:38 -04:00
George Kadianakis
794447d03d
Fix some #5040 bugs found by Nick's tests.
...
- Set conn->address when we receive a USERADDR command.
- Set conn->state to a sane value when we transition from Extended
ORPort to ORPort.
2013-08-15 12:03:38 -04:00
George Kadianakis
f549e4c36d
Write some free_all functions to free the auth. cookies.
...
We started allocating space for them on the heap in the previous
commit.
Conflicts:
src/or/ext_orport.h
2013-08-15 12:03:38 -04:00
George Kadianakis
33c3e60a37
Implement and use a generic auth. cookie initialization function.
...
Use the generic function for both the ControlPort cookie and the
ExtORPort cookie.
Also, place the global cookie variables in the heap so that we can
pass them around more easily as pointers.
Also also, fix the unit tests that broke by this change.
Conflicts:
src/or/config.h
src/or/ext_orport.c
2013-08-15 12:03:37 -04:00
George Kadianakis
13784d4753
Warn if the Extended ORPort listens on a public IP address.
2013-08-15 12:03:37 -04:00
George Kadianakis
bdeddecd29
Better documentation for ext_or_auth_correct_client_hash.
2013-08-15 12:03:37 -04:00
Nick Mathewson
28bb673584
White-box tests for the succeeding case of ext_or_port handshake.
...
(Okay, white-box plus mocking enough other functions so they don't
crash.)
2013-08-15 12:03:37 -04:00
Nick Mathewson
636aeb1f24
Test for initializing ext_or_auth_cookie file
2013-08-15 12:03:37 -04:00
Nick Mathewson
ba78a3c800
Make 0x01==SAFECOOKIE a macro, not a magic number
2013-08-15 12:03:37 -04:00
Nick Mathewson
4e868a9bc3
Unit test for the ext_orport safe_cookie handshake
2013-08-15 12:03:37 -04:00
Nick Mathewson
d7358e8598
Expose/mock some functions to make ext_orport.c testing possible
2013-08-15 12:03:37 -04:00
Nick Mathewson
fd6749203e
More unit tests for handle_client_auth_nonce
...
Incidentally, this business here where I make crypto_rand mockable:
this is exactly the kind of thing that would make me never want to
include test-support stuff in production builds.
2013-08-15 12:03:37 -04:00
Nick Mathewson
4526c3e0b6
Unit test for basic ext_or_cookie authentication backend
2013-08-15 12:03:37 -04:00
Nick Mathewson
b64351ed17
Split the cryptographic part of handle_client_auth_nonce into new fn
2013-08-15 12:03:36 -04:00
George Kadianakis
e1d1d7a8da
Fix some ext_orport.c DOCDOCs.
2013-08-15 12:03:36 -04:00
Nick Mathewson
03e3881043
Tests for connection_write_ext_or_command.
2013-08-15 12:03:36 -04:00
Nick Mathewson
c342ea9879
Unit tests for ext_or_id_map.
2013-08-15 12:03:36 -04:00
Nick Mathewson
7da59721a9
Unit tests for fetch_ext_or_cmd
2013-08-15 12:03:36 -04:00
Nick Mathewson
7a12cbc03d
Split out buffers and socks tests into separate modules.
...
No other changes were made here. Keeping everything in
src/test/test.c was a legacy of back when we had all our unit tests in
one big file.
Doing this now because I'm adding an ext_or_command test.
2013-08-15 12:03:36 -04:00
Nick Mathewson
9d8ffa91ce
Add a clientmap_entry_free().
...
Remove a nedless strdup/free pair.
2013-08-15 12:03:36 -04:00
Nick Mathewson
34d02484c0
Fix hash functions for transport_name in client entry
2013-08-15 12:03:35 -04:00
Nick Mathewson
50136b6698
Use memdup_nulterm and check for NULs in handle_cmd_transport
2013-08-15 12:03:35 -04:00
Nick Mathewson
550af7be0a
Fix a variety of issues in 4773
...
memwipe some stack-allocated stuff
Add DOCDOC comments for state machines
Use memdup_nulterm as appropriate
Check for NULs in useraddr
Add a macro so that <= AUTH_MAX has a meaning.
2013-08-15 12:03:35 -04:00
Nick Mathewson
6dd8ff0ad9
Break up <??> differently, and explain why
2013-08-15 12:03:35 -04:00
Nick Mathewson
e4a241af11
Add guards to ext_orport.h, rename get_file to get_file_name
2013-08-15 12:03:34 -04:00
Nick Mathewson
6568424410
Use only uintptr_t for the value of transport_count
2013-08-15 12:03:34 -04:00
George Kadianakis
6ad535e6dc
If a single client connects with multiple transports, note all transports.
2013-08-15 12:03:34 -04:00
George Kadianakis
cb54e44587
Fix a number of issues with the #5040 code.
...
- Don't leak if a transport proxy sends us a TRANSPORT command more
than once.
- Don't use smartlist_string_isin() in geoip_get_transport_history().
(pointed out by Nick)
- Use the 'join' argument of smartlist_join_strings() instead of
trying to write the separator on our own.
(pointed out by Nick)
- Document 'ext_or_transport' a bit better.
(pointed out by Nick)
- Be a bit more consistent with the types of the values of 'transport_counts'.
(pointed out by Nick)
2013-08-15 12:03:34 -04:00
George Kadianakis
85c556a4c2
Trivially change unittests to make them more readable.
...
Pluggable transport names are now in alphabetical order like they
appear in the bridge-ip-transports string.
2013-08-15 12:03:34 -04:00
George Kadianakis
b2c7379aec
Make check-spaces happy.
2013-08-15 12:03:34 -04:00
George Kadianakis
f8a9591d31
Fix some unittests that broke when we added bridge-ip-transports.
2013-08-15 12:03:33 -04:00
George Kadianakis
f4b36bee7e
Add a unittest for the bridge-ip-transports extra-info line.
2013-08-15 12:03:33 -04:00
Cristian Toader
863dd4d4b3
received feedback and fixed (partly) the socket filters
2013-08-15 00:23:51 +03:00
Cristian Toader
372e0f91fd
added comments for sandbox.h
2013-08-15 00:09:07 +03:00
Cristian Toader
e2a7b484f4
partial libevent open fix
2013-08-14 23:03:38 +03:00
Cristian Toader
8a85a48b9d
attempt to add stat64 filename filters; failed due to getaddrinfo..
2013-08-12 21:14:43 +03:00
Nick Mathewson
9abbfef2f7
Merge remote-tracking branch 'karsten/geoip-manual-update-aug2013'
2013-08-12 09:47:30 -04:00
Nick Mathewson
5d706dd27a
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-08-12 09:47:17 -04:00
Nick Mathewson
4361795145
Merge remote-tracking branch 'asn/bug9363_take2'
2013-08-12 09:46:54 -04:00
Nick Mathewson
3433b7ce39
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
2013-08-12 09:45:07 -04:00
Nick Mathewson
64410cc888
Merge remote-tracking branch 'origin/maint-0.2.2' into maint-0.2.3
2013-08-12 09:44:36 -04:00
Karsten Loesing
41bf8fa889
Update to the August 2013 GeoIP database.
2013-08-12 15:26:36 +02:00
Karsten Loesing
fa62d966c9
Add 2, update 1, and remove 3 manual A1 substitutions.
2013-08-12 15:22:14 +02:00
Roger Dingledine
49fd76be05
Merge branch 'maint-0.2.4'
2013-08-10 18:30:20 -04:00
Nick Mathewson
d5cfbf96a2
Fix an uninitialized-read when parsing v3 introduction requests.
...
Fortunately, later checks mean that uninitialized data can't get sent
to the network by this bug. Unfortunately, reading uninitialized heap
*can* (in some cases, with some allocators) cause a crash if you get
unlucky and go off the end of a page.
Found by asn. Bugfix on 0.2.4.1-alpha.
2013-08-10 17:49:51 -04:00
Cristian Toader
44a4464cf6
fixed memory leak, added array filter support
2013-08-10 18:04:48 +03:00
Cristian Toader
89b39db003
updated filters to work with orport
2013-08-09 19:07:20 +03:00
Cristian Toader
b3a8c08a92
orport progress (not functional), nickm suggested fixes
2013-08-07 13:13:12 +03:00
Nick Mathewson
031e695aa5
Use SOCKET_OK/TOR_INVALID_SOCKET in socketpair replacement code
2013-08-06 16:41:53 -04:00
George Kadianakis
0c4baa016f
Also test that server transports get written to Tor's state.
2013-08-05 21:05:39 +03:00
George Kadianakis
00a7d1af9f
test_pt_configure_proxy(): verify the internals of the managed proxy.
2013-08-05 21:05:35 +03:00
Nick Mathewson
b9f9110ac7
Don't allow all ORPort values to be NoAdvertise
...
Fix for bug #9366
2013-08-05 12:14:48 -04:00
Cristian Toader
a960e56c68
multi-configuration support using sandbox_t struct
2013-08-05 16:01:31 +03:00
Cristian Toader
356b646976
added execve and multi-configuration support
2013-08-05 15:40:23 +03:00
Cristian Toader
d897690fc7
fixes suggested by nickm
2013-08-05 14:17:46 +03:00
Arlo Breault
506a01bda8
Use size_t for length in replaycache_add_test_and_elapsed()
...
For consistency with the rest of buffer lengths in Tor.
See #8960
2013-08-04 09:29:22 -04:00
Andrea Shepard
468e44a0ef
Fix tor_get_lines_from_handle() for make check-spaces
2013-08-02 18:49:57 -07:00
Nick Mathewson
9ac0a681ce
Unit test for smartlist_ints_eq
...
(This was the only wholly untested function in containers.c)
2013-08-02 13:45:25 -04:00
Nick Mathewson
362f60e2d4
Try to make the win32 ersatz_socketpair pass.
2013-08-02 11:04:30 -04:00
Nick Mathewson
48a4ef3f6a
Fixed "unused parameter cloexec" warnings on windows
2013-08-02 10:52:57 -04:00
Nick Mathewson
bcc39c4666
Unit test for tor_{ersatz_,}socketpair.
...
This catches tor_accept as well.
2013-08-02 10:36:36 -04:00
Nick Mathewson
d6adf05582
Split the socketpair replacement code into its own function for testing
2013-08-02 10:36:01 -04:00
Nick Mathewson
b8d9c84037
Simple unit test for tor_open_socket_with_extensions
2013-08-02 10:05:17 -04:00
Nick Mathewson
e25eb35f11
Actually use the cloexec argument in the !defined(SOCK_CLOEXEC) case
2013-08-02 10:04:21 -04:00
Peter Retzlaff
ebd4ab1506
Prepare patch for ticket 5129 for merging.
...
- Preserve old eventdns code.
- Add function to close sockets cross-platform, without accounting.
- Add changes/ file.
2013-08-02 09:35:24 -04:00
Nick Mathewson
83a859e24c
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-07-31 21:49:30 -04:00
Nick Mathewson
0a0f93d277
Merge remote-tracking branch 'arma/bug9354' into maint-0.2.4
2013-07-31 21:48:48 -04:00
Nick Mathewson
5405688223
Fix compilation on Windows
...
(Bugfix on tests for #9288 fix; bug not in any released Tor)
2013-07-31 14:19:29 -04:00
George Kadianakis
5a5147dd2e
Fix invalid-read when a managed proxy configuration fails.
2013-07-31 13:56:07 -04:00
Nick Mathewson
904a58d10f
Merge branch 'bug9288_rebased'
...
Conflicts:
src/test/test_pt.c
2013-07-31 13:51:15 -04:00
Nick Mathewson
8a0eedbbb0
Fix mixed declaration/statement warning
2013-07-31 13:36:17 -04:00
Nick Mathewson
22a074caa7
Update pt/configure_proxy until it stops segfaulting
2013-07-31 13:34:16 -04:00
George Kadianakis
99bb6d2937
Modifications to transports.c for the unit tests to work.
...
Both 'managed_proxy_list' and 'unconfigured_proxies_n' are global
src/or/transports.c variables that are not initialized properly when
unit tests are run.
2013-07-31 13:34:16 -04:00
George Kadianakis
aaf79eb4d3
Write unit tests for configure_proxy().
2013-07-31 13:34:16 -04:00
George Kadianakis
2e7c531fdc
Prepare some mock functions to test #9288 .
2013-07-31 13:34:16 -04:00
George Kadianakis
6e40806025
Fix invalid-read when a managed proxy configuration fails.
2013-07-31 13:34:16 -04:00
Cristian Toader
dde3ed385b
removed access, set_robust_list, set_thread_area, set_tid_address, uname; added sb_poll
2013-07-31 12:05:10 +03:00
Cristian Toader
313cbe6e24
sigprocmask, epoll_ctl, prctl, mprotect, flock, futex, mremap
2013-07-31 11:35:25 +03:00
Cristian Toader
f0840ed4c9
epoll_ctl
2013-07-31 00:27:14 +03:00
Cristian Toader
5fc0e13db8
fcntl64
2013-07-30 23:52:54 +03:00
Cristian Toader
686cf4c0ff
clean stable version
2013-07-30 23:43:42 +03:00
Cristian Toader
c1f5f1842e
fully switched to function pointers; problems with socketcall parameters
2013-07-30 23:20:08 +03:00
Cristian Toader
442f256f25
switched to a design using filters as function pointer arrays
2013-07-30 21:23:30 +03:00
Cristian Toader
5baea85189
removed open flags (postponed), added mmap2 flags
2013-07-30 19:37:28 +03:00
Cristian Toader
871e5b35a8
small filter changes; openat as separate function
2013-07-30 19:25:56 +03:00
Roger Dingledine
ff6bb13c02
NumDirectoryGuards now tracks NumEntryGuards by default
...
Now a user who changes only NumEntryGuards will get the behavior she
expects. Fixes bug 9354; bugfix on 0.2.4.8-alpha.
2013-07-30 12:05:39 -04:00
Cristian Toader
8022def6f0
added openat parameter filter
2013-07-29 16:30:39 +03:00
Cristian Toader
6d5b0367f6
Changes as suggested by nickm
...
- char* to const char* and name refactoring
- workaround for accept4 syscall
2013-07-29 14:46:47 +03:00
Cristian Toader
8f9d3da194
Investigated access4 syscall problem, small changes to filter.
2013-07-26 19:53:05 +03:00
Nick Mathewson
d5a5a6a253
Allow {,k,kilo,m,mega,g,giga,t,tera}bit{,s} in torrc
...
Patch from CharlieB for ticket #9214
2013-07-26 16:07:11 +02:00
Nick Mathewson
221a0159b8
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-07-26 15:42:10 +02:00
Nick Mathewson
11f1b7d9df
Avoid assertion failure on unexepcted address family in DNS reply.
...
Fixes bug 9337; bugfix on 0.2.4.7-alpha.
2013-07-26 15:33:46 +02:00
Cristian Toader
626a2b23de
integrated context for dynamic filters
2013-07-25 14:08:02 +03:00
Cristian Toader
3dfe1c0639
initia stages of runtime dynamic filters
2013-07-25 13:25:20 +03:00
Cristian Toader
abe082e7d0
dynamic parameter filter bug fixes
2013-07-24 17:15:57 +03:00
Cristian Toader
962d814e52
dynamic parameter filter (prototype, not tested)
2013-07-24 17:06:06 +03:00
Nick Mathewson
5d4b5018be
Fix bug9309, and n_noncanonical count/continue code
...
When we moved channel_matches_target_addr_for_extend() into a separate
function, its sense was inverted from what one might expect, and we
didn't have a ! in one place where we should have.
Found by skruffy.
2013-07-23 05:16:56 -07:00
Cristian Toader
e1410f20d7
added support for multiple parameters
2013-07-23 14:22:31 +03:00
Cristian Toader
c15d09293b
added experimental support for open syscall path param
2013-07-23 14:01:53 +03:00
Nick Mathewson
1d2e8020b7
Fix bug9309, and n_noncanonical count/continue code
...
When we moved channel_matches_target_addr_for_extend() into a separate
function, its sense was inverted from what one might expect, and we
didn't have a ! in one place where we should have.
Found by skruffy.
2013-07-23 11:52:10 +02:00
Cristian Toader
8b12170f23
added support for numeric parameters, tested with rt_sigaction
2013-07-23 10:49:56 +03:00
Cristian Toader
7cf1dbfd51
changed paramfilter type to intptr_t
2013-07-23 10:14:25 +03:00
Nick Mathewson
f6d8bc9389
Refactor the assertion-failure code into a function
2013-07-19 13:40:20 -04:00
Nick Mathewson
5343ee1a06
Add a signal-safe decimal formatting function
2013-07-19 13:26:25 -04:00
Nick Mathewson
8f0755fa85
Whoops; check in test_circuitmux.c
2013-07-19 12:05:38 -04:00
Nick Mathewson
34ad7642c8
Regression test for destroy cell queue
...
This exercises the code that crashed and caused #9296 .
2013-07-19 10:17:00 -04:00
Nick Mathewson
18845c5507
Initialize destroy_cell_queue.
...
Likely fix for the crash bug of #9296 , which was introduced through a
combination of #7912 and #8586 . Bugfix not in any released Tor.
2013-07-19 09:49:35 -04:00
Nick Mathewson
e1d3b44495
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-07-18 23:17:57 -04:00
Nick Mathewson
17a960734a
Merge remote-tracking branch 'public/bug9295_023' into maint-0.2.4
2013-07-18 23:17:05 -04:00
Nick Mathewson
5977435629
tmp
2013-07-18 23:08:36 -04:00
George Kadianakis
05306ad74f
Write extra-info bridge-ip-transports lines.
2013-07-18 14:59:57 -04:00
George Kadianakis
e765d6ed84
Make a channel getter method to retrieve transport names.
2013-07-18 14:59:57 -04:00
George Kadianakis
0ec4e5a698
Add transport information to the GeoIP database.
2013-07-18 14:59:57 -04:00
George Kadianakis
210210f219
Make the Extended ORPort understand the TRANSPORT command.
2013-07-18 14:59:56 -04:00
George Kadianakis
895709db07
Fix logging severities and remove some trivial XXXs.
2013-07-18 14:59:56 -04:00
George Kadianakis
c46f1b810d
More Extended ORPort code improvements.
...
* Change name of init_ext_or_auth_cookie_authentication().
* Add a small comment.
2013-07-18 14:59:56 -04:00
George Kadianakis
d8f74cc439
Move Extended ORPort code to its own module.
...
Move the code from the connection_or module to ext_orport.
This commit only moves code: it shouldn't modify anything.
2013-07-18 14:59:56 -04:00
George Kadianakis
2207525a69
Satisfy check-spaces.
2013-07-18 14:59:56 -04:00
George Kadianakis
e2e0d09dab
Various Extended ORPort code improvements.
...
* Add documentation.
* Free ext_or_auth_correct_client_hash.
* Use VPORT(ExtORPort) instead of V(ExtORPOrt).
See dfe03d36c8
for details.
2013-07-18 14:59:56 -04:00
George Kadianakis
85b7c73168
Move USERADDR handling to a dedicated function.
2013-07-18 14:59:56 -04:00
George Kadianakis
4a55e39997
Implement Extended ORPort authentication.
2013-07-18 14:59:56 -04:00
George Kadianakis
93b9f85d41
Prepare codebase for the implementation of Extended ORPort auth.
2013-07-18 14:59:56 -04:00
George Kadianakis
d303228eca
Create the Extended ORPort authentication cookie file.
2013-07-18 14:59:55 -04:00
George Kadianakis
ba30d635c5
Document code and change the Extended ORPort command numbers.
2013-07-18 14:59:55 -04:00
Nick Mathewson
8bf0382b22
Skeleton ExtORPort implementation. Needs testing, documentation.
...
Does not implement TransportControlPort yet.
2013-07-18 14:59:55 -04:00
Nick Mathewson
f45e1fbd5b
Start of a unit test for options_validate.
...
I added this so I could write a unit test for ServerTransportOptions,
but it incidentally exercises the succeed-on-defaults case of
options_validate too.
2013-07-18 14:40:12 -04:00
Cristian Toader
8dfa5772e7
(undo) git test..
2013-07-18 18:28:55 +03:00
Cristian Toader
b0725c964b
git test..
2013-07-18 18:28:10 +03:00
Nick Mathewson
1e78100b25
Add a test for n_cells_in_circuit_queues
2013-07-18 11:23:45 -04:00
Nick Mathewson
ae64197195
Unit tests for cell queues.
...
This removes some INLINE markers from functions that probably didn't
need them.
2013-07-18 11:23:45 -04:00
Nick Mathewson
1047e7dcb0
Use TOR_SIMPLEQ for packed_cell_t
2013-07-18 11:23:45 -04:00
Cristian Toader
e7e2efb717
Added getter for protected parameter
2013-07-18 18:21:37 +03:00
Cristian Toader
673349c42e
Repair of some of the lost parameter filters history
2013-07-18 18:03:10 +03:00
Nick Mathewson
27ec1fafe4
Remove a redundant declaration
2013-07-18 08:56:02 -04:00
Nick Mathewson
e6c0fb2b6d
Fix a wide line in test_pt.c
2013-07-18 08:49:52 -04:00
Nick Mathewson
d7ccb6a3b1
Merge branch 'bug8978_rebase_2'
...
Conflicts:
src/test/test_pt.c
2013-07-18 08:48:20 -04:00
Nick Mathewson
b551988ef4
Merge branch 'bug8929_rebase_2'
2013-07-18 08:45:13 -04:00
Nick Mathewson
8a01a7c35b
Improve test coverage of 8929 code
2013-07-18 08:45:03 -04:00
Nick Mathewson
31871f7d77
Fix memory leaks in test_config_parse_transport_options_line
2013-07-18 08:45:03 -04:00
Nick Mathewson
713ff2f5ef
Document what "escape" means in tor_escape_str_for_pt_args
2013-07-18 08:45:03 -04:00
George Kadianakis
c71809d403
Insert the environment variable only if we have options to pass.
2013-07-18 08:45:03 -04:00
George Kadianakis
1ee3a0cf44
Place the options in the environment after processing them properly.
2013-07-18 08:45:03 -04:00
George Kadianakis
1a0cf08841
Rename tor_escape_str_for_socks_arg() to something more generic.
...
Since we are going to be using that function to also escape parameters
passed to transport proxies using environment variables.
2013-07-18 08:45:03 -04:00
George Kadianakis
ea72958f25
Pass characters to be escaped to tor_escape_str_for_socks_arg().
...
This is in preparation for using tor_escape_str_for_socks_arg() to
escape server-side pluggable transport parameters.
2013-07-18 08:45:02 -04:00
George Kadianakis
6cfc2b5d73
Write unit tests for the ServerTransportOptions parsing function.
2013-07-18 08:45:02 -04:00
George Kadianakis
08d9807125
Write function that parses ServerTransportOptions torrc lines.
...
And use it to validate them.
2013-07-18 08:45:02 -04:00
Nick Mathewson
e02b6b99f2
Add a basic unit test for pt_get_extra_info_descriptor_string.
2013-07-18 08:43:53 -04:00
Nick Mathewson
dd18789a9c
Add a unit test for smethod lines with arguments.
2013-07-18 08:43:52 -04:00
George Kadianakis
924946aaaf
Write transport ARGS to extra-info descriptor.
2013-07-18 08:43:52 -04:00
George Kadianakis
8bb2ba13c1
Extract ARGS from SMETHOD line and attach them to transport.
2013-07-18 08:43:52 -04:00
Nick Mathewson
f797ac465f
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-07-16 14:49:41 -04:00
Nick Mathewson
c36bdbd535
Re-do a cast in order to make old buggy freebsd gcc happy
...
Fix for #9254 . Bugfix on 0.2.4.14-alpha.
This is not actually a bug in the Tor code.
2013-07-16 14:48:12 -04:00
Nick Mathewson
4824f3ad93
Merge remote-tracking branch 'asn/bug9265'
2013-07-16 09:55:51 -04:00
Nick Mathewson
74356aaeec
Remove an unused variable in test_replaycache_scrub
2013-07-16 09:53:44 -04:00
Andrea Shepard
459d827193
Add more replaycache.c unit tests, bringing coverage to 100% for that file
2013-07-16 06:02:22 -07:00
Andrea Shepard
9b3a166b44
Eliminate an impossible case in replaycache_scrub_if_needed_internal()
2013-07-16 06:01:50 -07:00
George Kadianakis
4ccd4b5c51
Test deeper in test_pt_parsing().
...
We used to test parse_{c,s}method_line() without actually testing that
the resulting transport_t was well formed.
2013-07-16 14:07:03 +03:00
Nick Mathewson
55f5caf096
Appease "make check-spaces"
2013-07-15 17:35:56 -04:00
Nick Mathewson
85178e2e93
Use format_hex_number_sigsafe to format syscalls in sandbox.c
...
This way, we don't have to use snprintf, which is not guaranteed to
be signal-safe.
(Technically speaking, strlen() and strlcpy() are not guaranteed to
be signal-safe by the POSIX standard. But I claim that they are on
every platform that supports libseccomp2, which is what matters
here.)
2013-07-15 13:07:09 -04:00
Nick Mathewson
9fda7e8cd1
Lightly refactor and test format_hex_number_sigsafe
...
Better tests for upper bounds, and for failing cases.
Also, change the function's interface to take a buffer length rather
than a maximum length, and then NUL-terminate: functions that don't
NUL-terminate are trouble waiting to happen.
2013-07-15 12:52:29 -04:00
Nick Mathewson
18136afbbb
HEX_ERRNO_SIZE is no longer the correct upper limit for format_hex_number_sigsafe
2013-07-15 12:40:07 -04:00
Nick Mathewson
22977b7c1d
Expose format_hex_number_..., and rename it to ..._sigsafe().
...
There are some other places in the code that will want a signal-safe
way to format numbers, so it shouldn't be static to util.c.
2013-07-15 12:26:55 -04:00
Nick Mathewson
449b2b7c58
Don't build format_helper_exit_status on win32
...
The only thing that used format_helper_exit_status on win32 was the
unit tests. This caused an error when we tried to leave a static
format_helper_exit_status lying around in a production object file.
The easiest solution is to admit that this way of dealing with process
exit status is Unix-only.
2013-07-15 12:17:23 -04:00
Nick Mathewson
1556b0cb12
Merge remote-tracking branch 'linus/unused_param'
2013-07-15 12:02:46 -04:00
Nick Mathewson
c0391bae75
Merge remote-tracking branch 'public/fancy_test_tricks'
...
Conflicts:
src/common/include.am
Conflict was from adding testsupport.h near where sandbox.h had
already been added.
2013-07-15 12:02:18 -04:00
Linus Nordberg
d0c0f050df
Avoid compiler warning 'unused param'.
...
Fixes #9261 .
2013-07-15 15:46:36 +02:00
Peter Palfrader
2cb59be999
Fix two pre-coffee typos
2013-07-15 09:43:37 -04:00
Peter Palfrader
783c52b6df
Reject relative control socket paths and emit a warning.
...
Previously we would accept relative paths, but only if they contained a
slash somewhere (not at the end).
Otherwise we would silently not work. Closes : #9258 . Bugfix on
0.2.3.16-alpha.
2013-07-15 09:04:17 -04:00
Peter Palfrader
5cc52b242e
Document get_parent_directory more
2013-07-15 09:04:17 -04:00
Roger Dingledine
6848e29307
cosmetic cleanups
2013-07-14 02:49:34 -04:00
Roger Dingledine
de7cdc0d94
put sandbox.h in the tarball, so the tarball builds
2013-07-13 20:31:18 -04:00