| Commit message (Expand) | Author | Age |
* | Completely refactor how FILENAME_PRIVATE works•••We previously used FILENAME_PRIVATE identifiers mostly for
identifiers exposed only to the unit tests... but also for
identifiers exposed to the benchmarker, and sometimes for
identifiers exposed to a similar module, and occasionally for no
really good reason at all.
Now, we use FILENAME_PRIVATE identifiers for identifiers shared by
Tor and the unit tests. They should be defined static when we
aren't building the unit test, and globally visible otherwise. (The
STATIC macro will keep us honest here.)
For identifiers used only by the unit tests and never by Tor at all,
on the other hand, we wrap them in #ifdef TOR_UNIT_TESTS.
This is not the motivating use case for the split test/non-test
build system; it's just a test example to see how it works, and to
take a chance to clean up the code a little.
| Nick Mathewson | 2013-07-10 |
* | Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4 | Nick Mathewson | 2013-06-10 |
|\ |
|
| * | Fix (Open?)BSD fast-connect bug with optimistic data.•••There's an assertion failure that can occur if a connection has
optimistic data waiting, and then the connect() call returns 0 on the
first attempt (rather than -1 and EINPROGRESS). That latter behavior
from connect() appears to be an (Open?)BSDism when dealing with remote
addresses in some cases. (At least, I've only seen it reported with
the BSDs under libevent, even when the address was 127.0.0.1. And
we've only seen this problem in Tor with OpenBSD.)
Fixes bug 9017; bugfix on 0.2.3.1-alpha, which first introduced
optimistic data. (Although you could also argue that the commented-out
connection_start_writing in 155c9b80 back in 2002 is the real source
of the issue.)
| Nick Mathewson | 2013-06-10 |
* | | Fix bug 8846: better log message on IP version confusion | Nick Mathewson | 2013-05-17 |
* | | Controller: Add CACHED keyword to ADDRMAP events (#8596 part 2/2)•••Add keyword CACHED="YES"/"NO" to ADDRMAP control events to indicate whether the
DNS response will be cached or not.
| Desoxy | 2013-04-03 |
* | | Controller: Always send ADDRMAP event after RESOLVE command (#8596 part 1/2)•••Since 7536c40 only DNS results for real SOCKS requests are added to the cache,
but not DNS results for DNSPort queries or control connection RESOLVE queries.
Only cache additions would trigger ADDRMAP events on successful resolve.
Change it so that DNS results received after a RESOLVE command also generate
ADDRMAP events.
| Desoxy | 2013-04-03 |
* | | Bug 8477: Don't warn if fromerly GENERAL circuits still have streams.•••This can happen in various cases of network failure.
| Mike Perry | 2013-03-29 |
* | | Merge remote-tracking branch 'public/bug6174' into maint-0.2.4 | Nick Mathewson | 2013-03-18 |
|\ \ |
|
| * | | Stop frobbing timestamp_dirty as our sole means to mark circuits unusable•••In a number of places, we decrement timestamp_dirty by
MaxCircuitDirtiness in order to mark a stream as "unusable for any
new connections.
This pattern sucks for a few reasons:
* It is nonobvious.
* It is error-prone: decrementing 0 can be a bad choice indeed.
* It really wants to have a function.
It can also introduce bugs if the system time jumps backwards, or if
MaxCircuitDirtiness is increased.
So in this patch, I add an unusable_for_new_conns flag to
origin_circuit_t, make it get checked everywhere it should (I looked
for things that tested timestamp_dirty), and add a new function to
frob it.
For now, the new function does still frob timestamp_dirty (after
checking for underflow and whatnot), in case I missed any cases that
should be checking unusable_for_new_conns.
Fixes bug 6174. We first used this pattern in 516ef41ac1fd26f338c,
which I think was in 0.0.2pre26 (but it could have been 0.0.2pre27).
| Nick Mathewson | 2013-02-19 |
* | | | Make stream events for RESOLVE lookups more consistent•••Fixes 8203; patch by Desoxy
| Nick Mathewson | 2013-03-18 |
* | | | Fix 8447: use %u to format circid_t.•••Now that circid_t is 4 bytes long, the default integer promotions will
leave it alone when sizeof(int) == 4, which will leave us formatting an
unsigned as an int. That's technically undefined behavior.
Fixes bug 8447 on bfffc1f0fc7616a25c32da2eb759dade4651659e. Bug not
in any released Tor.
| Nick Mathewson | 2013-03-10 |
|/ / |
|
* | | fix a wide line | Nick Mathewson | 2013-02-19 |
* | | Downgrade an assert to LD_BUG•••This should prevent crashes on further recurrence of 8065, and help
diagnose such if they occur
| Nick Mathewson | 2013-02-19 |
* | | Refactor code that rolls back the use state•••Also document it better.
Mention this refactoring in the comments for the path state machine.
| Mike Perry | 2013-02-01 |
* | | Roll back the path_state for circs if we detatch a stream.•••An adversary could let the first stream request succeed (ie the resolve), but
then tag and timeout the remainder (via cell dropping), forcing them on new
circuits.
Rolling back the state will cause us to probe such circuits, which should lead
to probe failures in the event of such tagging due to either unrecognized
cells coming in while we wait for the probe, or the cipher state getting out
of sync in the case of dropped cells.
| Mike Perry | 2013-01-18 |
* | | Implement Path use bias accounting.•••Path use bias measures how often we can actually succeed using the circuits we
actually try to use. It is a subset of path bias accounting, but it is
computed as a separate statistic because the rate of client circuit use may
vary depending on use case.
| Mike Perry | 2013-01-18 |
* | | Implement proposal 204: ignore subdomains in hidden service addresses•••The implementation is pretty straightforward: parse_extended_hostname() is
modified to drop any leading components from an address like
'foo.aaaaaaaaaaaaaaaa.onion'.
| Jérémy Bobbio | 2013-01-16 |
* | | Aftermath of isin->contains renaming•••Fix wide lines and comments, and add a changes file
| Nick Mathewson | 2013-01-16 |
* | | Rename *_isin to *_contains•••This is an automatically generated commit, from the following perl script,
run with the options "-w -i -p".
s/smartlist_string_num_isin/smartlist_contains_int_as_string/g;
s/smartlist_string_isin((?:_case)?)/smartlist_contains_string$1/g;
s/smartlist_digest_isin/smartlist_contains_digest/g;
s/smartlist_isin/smartlist_contains/g;
s/digestset_isin/digestset_contains/g;
| Nick Mathewson | 2013-01-16 |
* | | Update the copyright date to 201. | Nick Mathewson | 2013-01-16 |
* | | Bug 7691: Send a probe cell down certain types of circs.•••In general, if we tried to use a circ for a stream, but then decided to place
that stream on a different circuit, we need to probe the original circuit
before deciding it was a "success".
We also need to do the same for cannibalized circuits that go unused.
| Mike Perry | 2013-01-08 |
* | | Fix a crash bug when running an node without IPv6-exit support.•••Fixes bug 7814; bugfix on 0.2.4.7-alpha.
| Nick Mathewson | 2012-12-29 |
* | | Fix compilation warning: must not format u64 as long. | Nick Mathewson | 2012-12-25 |
* | | Merge remote-tracking branch 'mikeperry/209-path-bias-changes' | Nick Mathewson | 2012-12-25 |
|\ \ |
|
| * | | Changes from Nick's code review 'part 1'•••I think this is actually his third code review of this branch so far.
| Mike Perry | 2012-12-18 |
| * | | Space fixes. | Mike Perry | 2012-12-09 |
| * | | Allow any valid 'end' cell to mean a circuit was used successfully.•••Also improve some log messages.
| Mike Perry | 2012-12-08 |
| * | | Refactor path use bias code into own function.•••Also, improve and log some failure cases.
| Mike Perry | 2012-12-07 |
| * | | Note a strange case for SOCKS streams. | Mike Perry | 2012-12-07 |
| * | | Prop 209: Add in hidserv path bias counts for usage. | Mike Perry | 2012-12-07 |
| * | | Prop 209: Add path bias counts for timeouts and other mechanisms.•••Turns out there's more than one way to block a tagged circuit.
This seems to successfully handle all of the normal exit circuits. Hidden
services need additional tweaks, still.
| Mike Perry | 2012-12-07 |
* | | | Per-listener option to prefer IPv6 automaps when possible. | Nick Mathewson | 2012-12-17 |
* | | | Build and test most of the machinery needed for IPv6 virtualaddrmaps•••With an IPv6 virtual address map, we can basically hand out a new
IPv6 address for _every_ address we connect to. That'll be cool, and
will let us maybe get around prop205 issues.
This uses some fancy logic to try to make the code paths in the ipv4
and the ipv6 case as close as possible, and moves to randomly
generated addresses so we don't need to maintain those stupid counters
that will collide if Tor restarts but apps don't.
Also has some XXXX items to fix to make this useful. More design
needed.
| Nick Mathewson | 2012-12-17 |
* | | | Refactor the code to check if an address is matched by automapsuffixes | Nick Mathewson | 2012-12-17 |
* | | | Fixed an unused-variable warning | Nick Mathewson | 2012-12-17 |
* | | | Implement option to turn off DNS cache modification by a client port•••(This is part 3 of making DNS cache use enabled/disabled on a
per-client port basis. This implements the UseCacheIPv[46]DNS options)
| Nick Mathewson | 2012-12-17 |
* | | | Implement option to turn off DNS cache use on a client port•••(This is part 2 of making DNS cache use enabled/disabled on a
per-client port basis. This implements the CacheIPv[46]DNS options,
but not the UseCachedIPv[46] ones.)
| Nick Mathewson | 2012-12-17 |
|/ / |
|
* | | Fix some wide lines | Nick Mathewson | 2012-12-07 |
* | | Merge branch 'win64-7260'•••Conflicts:
src/or/dns.c
| Nick Mathewson | 2012-12-07 |
|\ \ |
|
| * | | Add a TOR_SOCKET_T_FORMAT construction for logging sockets.•••We need this since win64 has a 64-bit SOCKET type.
Based on a patch from yayooo for 7260, forward-ported to 0.2.4.
| Nick Mathewson | 2012-11-02 |
* | | | Merge remote-tracking branch 'asn/bug7592_take2' | Nick Mathewson | 2012-12-04 |
|\ \ \ |
|
| * | | | Return connection_exit_connect() if payload creation failed.•••Fixes bug #7592; bugfix on 882b389668067a29bb539d0f5bd5cb2f83b93012.
The bug is not present in any released versions of Tor.
| George Kadianakis | 2012-12-05 |
* | | | | fix some typos | Roger Dingledine | 2012-12-03 |
|/ / / |
|
* | | | Fix up some comments in connection_edge.c | Nick Mathewson | 2012-11-15 |
* | | | Accept reverse resolve requests for IPv6 addresses | Nick Mathewson | 2012-11-14 |
* | | | Add some missing doxygen for ipv6 exit code | Nick Mathewson | 2012-11-14 |
* | | | Actually send back correctly-formed IPv6 CONNECTED cells•••We had some old code to send back connected cells for IPv6 addresses,
but it was wrong. Fortunately, it was also unreachable.
| Nick Mathewson | 2012-11-14 |
* | | | Implement a PreferIPv6 flag for SocksPorts | Nick Mathewson | 2012-11-14 |
* | | | Change signature of router_compare_to_my_exit_policy so dns can use it•••Also, fix the function so it actually looks at our ipv6 exit policy.
| Nick Mathewson | 2012-11-14 |
* | | | Whitespace cleanup | Nick Mathewson | 2012-11-14 |