| Commit message (Expand) | Author | Age |
* | Use dirreq_id from channel_t when appropriate | Andrea Shepard | 2012-10-08 |
* | Split the routerset code out of routerlist.c | Nick Mathewson | 2012-09-14 |
* | Fix directory self-testing logic•••When I removed version_supports_begindir, I accidentally removed the
mechanism we had been using to make a directory cache self-test its
directory port. This caused bug 6815, which caused 6814 (both in
0.2.4.2-alpha).
To fix this bug, I'm replacing the "anonymized_connection" argument to
directory_initiate_command_* with an enumeration to say how indirectly
to connect to a directory server. (I don't want to reinstate the
"version_supports_begindir" argument as "begindir_ok" or anything --
these functions already take too many arguments.)
For safety, I made sure that passing 0 and 1 for 'indirection' gives
the same result as you would have gotten before -- just in case I
missed any 0s or 1s.
| Nick Mathewson | 2012-09-12 |
* | Merge remote-tracking branch 'origin/maint-0.2.3' | Nick Mathewson | 2012-09-11 |
|\ |
|
| * | Merge remote-tracking branch 'origin/maint-0.2.2' into maint-0.2.3•••Conflicts:
src/test/test_util.c
| Nick Mathewson | 2012-09-11 |
| |\ |
|
| | * | Fix assertion failure in tor_timegm.•••Fixes bug 6811.
| Nick Mathewson | 2012-09-11 |
* | | | Remove version_supports checks for versions before 0.2.2. | Nick Mathewson | 2012-09-07 |
|/ / |
|
* | | Don't infer we have a FooPort from the presence of a FooPort line•••Thanks to the changes we started making with SocksPort and friends
in 0.2.3.3-alpha, any of our code that did "if (options->Sockport)"
became wrong, since "SocksPort 0" would make that test true whereas
using the default SocksPort value would make it false. (We didn't
actually do "if (options->SockPort)" but we did have tests for
TransPort. When we moved DirPort, ORPort, and ControlPort over to
the same system in 0.2.3.9-alpha, the problem got worse, since our
code is littered with checks for DirPort and ORPort as booleans.
This code renames the current linelist-based FooPort options to
FooPort_lines, and adds new FooPort_set options which get set at
parse-and-validate time on the or_options_t. FooPort_set is true
iff we will actually try to open a listener of the given type. (I
renamed the FooPort options rather than leave them alone so that
every previous user of a FooPort would need to get inspected, and so
that any new code that forgetfully uses FooPort will need fail to
compile.)
Fix for bug 6507.
| Nick Mathewson | 2012-08-09 |
* | | Change all SMARTLIST_FOREACH loops of >=10 lines to use BEGIN/END•••The SMARTLIST_FOREACH macro is more convenient than BEGIN/END when
you have a nice short loop body, but using it for long bodies makes
your preprocessor tell the compiler that all the code is on the same
line. That causes grief, since compiler warnings and debugger lines
will all refer to that one line.
So, here's a new style rule: SMARTLIST_FOREACH blocks need to be
short.
| Nick Mathewson | 2012-07-17 |
* | | Check the correct consensus before giving it to the client•••Previously, a directory would check the latest NS consensus for
having the signatures the client wanted, and use that consensus's
valid_until time to set the HTTP lifetime. With this patch, the
directory looks at NS consensus or the microdesc consensus,
depending on what the client asked for.
| Nick Mathewson | 2012-06-15 |
* | | Update copyright dates to 2012; add a few missing copyright statements | Nick Mathewson | 2012-06-04 |
* | | Add about 60 more DOCDOC comments to 0.2.3•••Also, try to resolve some doxygen issues. First, define a magic
"This is doxygen!" macro so that we take the correct branch in
various #if/#else/#endifs in order to get the right documentation.
Second, add in a few grouping @{ and @} entries in order to get some
variables and fields to get grouped together.
| Nick Mathewson | 2012-06-04 |
* | | Resolve all currently pending DOCDOC items in master | Nick Mathewson | 2012-06-04 |
* | | When downloading bridge descs from a bridge authority, always be anonymous | Nick Mathewson | 2012-04-27 |
* | | Don't fetch v2 networkstatuses from caches, even if auths are down•••Fix for 5635; fix on 0.2.2.26-beta, where caches stopped fetching this
information.
| Nick Mathewson | 2012-04-17 |
* | | Merge branch 'maint-0.2.2'•••Conflicts:
src/or/config.c
| Roger Dingledine | 2012-04-01 |
|\| |
|
| * | put a _ before or_options_t elements that aren't configurable•••it's fine with me if we change the current convention, but we should
actually decide to change it if we want to.
| Roger Dingledine | 2012-04-01 |
* | | Merge remote-tracking branch 'origin/maint-0.2.2'•••Conflicts:
src/or/config.c
Conflict was in or_options_free, where two newly added fields had free
calls in the same place.
| Nick Mathewson | 2012-04-01 |
|\| |
|
| * | Do not use strcmp() to compare an http authenticator to its expected value•••This fixes a side-channel attack on the (fortunately unused!)
BridgePassword option for bridge authorities. Fix for bug 5543;
bugfix on 0.2.0.14-alpha.
| Nick Mathewson | 2012-04-01 |
* | | Roger notes that address and addr are two different things. | Karsten Loesing | 2012-02-09 |
* | | Count IPv6 connections in bridge and entry stats. | Karsten Loesing | 2012-02-09 |
* | | Allow 0.2.3.x clients to use 0.2.2.x bridges.•••Previously the client would ask the bridge for microdescriptors, which are
only supported in 0.2.3.x and later, and then fail to bootstrap when it
didn't get the answers it wanted. Fixes bug 4013; bugfix on 0.2.3.2-alpha.
The fix here is to revert to using normal descriptors if any of our
bridges are known to not support microdescs. This is not ideal, a) because
we'll start downloading a microdesc consensus as soon as we get a bridge
descriptor, and that will waste time if we later get a bridge descriptor
that tells us we don't like microdescriptors; and b) by changing our mind
we're leaking to our other bridges that we have an old-version bridge.
The alternate fix would have been to change
we_use_microdescriptors_for_circuits() to ask if *any* of our bridges
can support microdescriptors, and then change the directory logic that
picks a bridge to only select from those that do. For people living in
the future, where 0.2.2.x is obsolete, there won't be a difference.
Note that in either of these potential fixes, we have risk of oscillation
if our one funny-looking bridges goes away / comes back.
| Roger Dingledine | 2012-01-25 |
* | | Rename nonconformant identifiers.•••Fixes bug 4893.
These changes are pure mechanical, and were generated with this
perl script:
/usr/bin/perl -w -i.bak -p
s/crypto_pk_env_t/crypto_pk_t/g;
s/crypto_dh_env_t/crypto_dh_t/g;
s/crypto_cipher_env_t/crypto_cipher_t/g;
s/crypto_digest_env_t/crypto_digest_t/g;
s/aes_free_cipher/aes_cipher_free/g;
s/crypto_free_cipher_env/crypto_cipher_free/g;
s/crypto_free_digest_env/crypto_digest_free/g;
s/crypto_free_pk_env/crypto_pk_free/g;
s/_crypto_dh_env_get_dh/_crypto_dh_get_dh/g;
s/_crypto_new_pk_env_rsa/_crypto_new_pk_from_rsa/g;
s/_crypto_pk_env_get_evp_pkey/_crypto_pk_get_evp_pkey/g;
s/_crypto_pk_env_get_rsa/_crypto_pk_get_rsa/g;
s/crypto_new_cipher_env/crypto_cipher_new/g;
s/crypto_new_digest_env/crypto_digest_new/g;
s/crypto_new_digest256_env/crypto_digest256_new/g;
s/crypto_new_pk_env/crypto_pk_new/g;
s/crypto_create_crypto_env/crypto_cipher_new/g;
s/connection_create_listener/connection_listener_new/g;
s/smartlist_create/smartlist_new/g;
s/transport_create/transport_new/g;
| Nick Mathewson | 2012-01-18 |
* | | Convert instances of tor_malloc+tor_snprintf into tor_asprintf•••These were found by looking for tor_snprintf() instances that were
preceeded closely by tor_malloc(), though I probably converted some
more snprintfs as well.
(In every case, make sure that the length variable (if any) is
removed, renamed, or lowered, so that anything else that might have
assumed a longer buffer doesn't exist.)
| Nick Mathewson | 2012-01-16 |
* | | Convert instances of tor_snprintf+strdup into tor_asprintf•••These were found by looking for tor_snprintf() instances that were
followed closely by tor_strdup(), though I probably converted some
other snprintfs as well.
| Nick Mathewson | 2012-01-16 |
* | | Try to use smartlist_add_asprintf consistently•••(To ensure correctness, in every case, make sure that the temporary
variable is deleted, renamed, or lowered in scope, so we can't have
any bugs related to accidentally relying on the no-longer-filled
variable.)
| Nick Mathewson | 2012-01-16 |
* | | cid 432: Remove dead code if we don't handle a consensus•••Bugfix on 0.2.3.1, fixes the second half of bug 4637.
| Sebastian Hahn | 2011-12-04 |
* | | Merge branch 'feature2553-v4-rebased' | Nick Mathewson | 2011-11-30 |
|\ \ |
|
| * | | Add ifdefs to disable #3332 assertions | Robert Ransom | 2011-11-30 |
* | | | Use correct address family where necessary for bridges on IPv6. | Linus Nordberg | 2011-11-30 |
* | | | Add some logging and comments. | Linus Nordberg | 2011-11-30 |
* | | | Initial hacking for proposal 186.•••This code handles the new ORPort options, and incidentally makes all
remaining port types use the new port configuration systems.
There are some rough edges! It doesn't do well in the case where your
Address says one thing but you say to Advertise another ORPort. It
doesn't handle AllAddrs. It doesn't actually advertise anything besides
the first listed advertised IPv4 ORPort and DirPort. It doesn't do
port forwarding to them either.
It's not tested either, it needs more documentation, and it probably
forgets to put the milk back in the refrigerator.
| Nick Mathewson | 2011-11-30 |
|/ / |
|
* | | Merge branch 'maint-0.2.2' | Roger Dingledine | 2011-09-28 |
|\| |
|
| * | bug 4115: make bridges use begindir for their dir fetches•••removes another avenue for enumerating bridges.
| Roger Dingledine | 2011-09-28 |
* | | Report reason for generating descriptor in an HTTP header•••Suggested by arma; based on 3327.
| Nick Mathewson | 2011-09-07 |
* | | Clean up HTTP request header generation a little•••Use a list of headers rather than trying to printf every header that
might exist.
| Nick Mathewson | 2011-09-07 |
* | | Merge remote-tracking branch 'public/split_entry_conn'•••Conflicts:
src/or/connection.c
src/or/connection_edge.c
src/or/connection_edge.h
src/or/dnsserv.c
Some of these were a little tricky, since they touched code that
changed because of the prop171 fixes.
| Nick Mathewson | 2011-09-07 |
|\ \ |
|
| * | | Move entry-only fields from edge_connection_t to entry_connection_t•••Also, refactor the code accordingly.
| Nick Mathewson | 2011-07-21 |
* | | | Fix a bufferevent-related bug that killed tunneled dirserv conns•••Because tunneled connections are implemented with buffervent_pair,
writing to them can cause an immediate flush. This means that
added to them and then checking to see whether their outbuf is
empty is _not_ an adequate way to see whether you added anything.
This caused a problem in directory server connections, since they
would try spooling a little more data out, and then close the
connection if there was no queued data to send.
This fix should improve matters; it only closes the connection if
there is no more data to spool, and all of the spooling callbacks
are supposed to put the dirconn into dir_spool_none on completion.
This is bug 3814; Sebastian found it; bugfix on 0.2.3.1-alpha.
| Nick Mathewson | 2011-08-26 |
|/ / |
|
* | | Implement sensible isolation for tunneled directory conns•••One-hop dirconn streams all share a session group, and get the
ISO_SESSIONGRP flag: they may share circuits with each other and
nothing else.
Anonymized dirconn streams get a new internal-use-only ISO_STREAM
flag: they may not share circuits with anything, including each other.
| Nick Mathewson | 2011-07-19 |
* | | Only download microdesc consensus from caches that support it•••Bugfix on 0.2.3.1-alpha; found by arma; never got a bug number.
| Nick Mathewson | 2011-07-14 |
* | | Make a function static•••Now that connection_dir_about_to_close() is in directory.c, there's
no reason to expose connection_dir_request_failed().
| Nick Mathewson | 2011-07-11 |
* | | Split connection_about_to_close_connection into separate functions•••This patch does NOTHING but:
- move code
- add declarations and includes as needed to make the new code
work
- declare the new functions.
| Nick Mathewson | 2011-07-11 |
* | | Kill redundant checks around routerset_contains_*()•••All of the routerset_contains*() functions return 0 if their
routerset_t argument is NULL. Therefore, there's no point in
doing "if (ExcludeNodes && routerset_contains*(ExcludeNodes...))",
for example.
This patch fixes every instance of
if (X && routerstatus_contains*(X,...))
Note that there are other patterns that _aren't_ redundant. For
example, we *don't* want to change:
if (EntryNodes && !routerstatus_contains(EntryNodes,...))
Fixes #2797. No bug here; just needless code.
| Nick Mathewson | 2011-07-07 |
* | | Don't shadow parameters with local variables•••This is a little error-prone when the local has a different type
from the parameter, and is very error-prone with both have the same
type. Let's not do this.
Fixes CID #437,438,439,440,441.
| Nick Mathewson | 2011-07-01 |
* | | Merge remote-tracking branch 'rransom-tor/bug3332-v2' | Nick Mathewson | 2011-06-15 |
|\ \ |
|
| * | | Assert that HS operations are not performed using single-hop circuits•••(with fixes by Nick Mathewson to unbreak the build)
| Robert Ransom | 2011-06-14 |
* | | | Make the get_options() return const•••This lets us make a lot of other stuff const, allows the compiler to
generate (slightly) better code, and will make me get slightly fewer
patches from folks who stick mutable stuff into or_options_t.
const: because not every input is an output!
| Nick Mathewson | 2011-06-14 |
|/ / |
|
* | | Merge remote-tracking branch 'origin/maint-0.2.2'•••The conflicts were mainly caused by the routerinfo->node transition.
Conflicts:
src/or/circuitbuild.c
src/or/command.c
src/or/connection_edge.c
src/or/directory.c
src/or/dirserv.c
src/or/relay.c
src/or/rendservice.c
src/or/routerlist.c
| Nick Mathewson | 2011-05-30 |
|\| |
|
| * | Merge branch 'bug3045' into maint-0.2.2•••Conflicts:
src/or/circuitbuild.c
| Nick Mathewson | 2011-05-30 |
| |\ |
|