aboutsummaryrefslogtreecommitdiff
path: root/src/or/directory.c
Commit message (Expand)AuthorAge
* 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 Mathewson2012-06-15
* Update copyright dates to 2012; add a few missing copyright statementsNick Mathewson2012-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 Mathewson2012-06-04
* Resolve all currently pending DOCDOC items in masterNick Mathewson2012-06-04
* When downloading bridge descs from a bridge authority, always be anonymousNick Mathewson2012-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 Mathewson2012-04-17
* Merge branch 'maint-0.2.2'•••Conflicts: src/or/config.c Roger Dingledine2012-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 Dingledine2012-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 Mathewson2012-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 Mathewson2012-04-01
* | Roger notes that address and addr are two different things.Karsten Loesing2012-02-09
* | Count IPv6 connections in bridge and entry stats.Karsten Loesing2012-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 Dingledine2012-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 Mathewson2012-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 Mathewson2012-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 Mathewson2012-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 Mathewson2012-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 Hahn2011-12-04
* | Merge branch 'feature2553-v4-rebased'Nick Mathewson2011-11-30
|\ \
| * | Add ifdefs to disable #3332 assertionsRobert Ransom2011-11-30
* | | Use correct address family where necessary for bridges on IPv6.Linus Nordberg2011-11-30
* | | Add some logging and comments.Linus Nordberg2011-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 Mathewson2011-11-30
|/ /
* | Merge branch 'maint-0.2.2'Roger Dingledine2011-09-28
|\|
| * bug 4115: make bridges use begindir for their dir fetches•••removes another avenue for enumerating bridges. Roger Dingledine2011-09-28
* | Report reason for generating descriptor in an HTTP header•••Suggested by arma; based on 3327. Nick Mathewson2011-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 Mathewson2011-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 Mathewson2011-09-07
|\ \
| * | Move entry-only fields from edge_connection_t to entry_connection_t•••Also, refactor the code accordingly. Nick Mathewson2011-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 Mathewson2011-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 Mathewson2011-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 Mathewson2011-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 Mathewson2011-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 Mathewson2011-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 Mathewson2011-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 Mathewson2011-07-01
* | Merge remote-tracking branch 'rransom-tor/bug3332-v2'Nick Mathewson2011-06-15
|\ \
| * | Assert that HS operations are not performed using single-hop circuits•••(with fixes by Nick Mathewson to unbreak the build) Robert Ransom2011-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 Mathewson2011-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 Mathewson2011-05-30
|\|
| * Merge branch 'bug3045' into maint-0.2.2•••Conflicts: src/or/circuitbuild.c Nick Mathewson2011-05-30
| |\
| | * Log descriptions of nodes, not just nicknames.•••This patch introduces a few new functions in router.c to produce a more helpful description of a node than its nickame, and then tweaks nearly all log messages taking a nickname as an argument to call these functions instead. There are a few cases where I left the old log messages alone: in these cases, the nickname was that of an authority (whose nicknames are useful and unique), or the message already included an identity and/or an address. I might have missed a couple more too. This is a fix for bug 3045. Nick Mathewson2011-05-15
* | | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-05-28
|\| |
| * | Fix GCC 4.6's new -Wunused-but-set-variable warnings.•••Most instances were dead code; for those, I removed the assignments. Some were pieces of info we don't currently plan to use, but which we might in the future. For those, I added an explicit cast-to-void to indicate that we know that the thing's unused. Finally, one was a case where we were testing the wrong variable in a unit test. That one I fixed. This resolves bug 3208. Nick Mathewson2011-05-23
* | | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-05-16
|\| |
| * | Merge remote-tracking branch 'origin/maint-0.2.1' into maint-0.2.2•••Fixed trivial conflict due to headers moving into their own .h files from or.h. Conflicts: src/or/or.h Nick Mathewson2011-05-16
| |\ \ | | |/ | |/|
| | * Check fetched rendezvous descriptors' service IDsRobert Ransom2011-05-16
* | | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-05-15
|\| |
| * | Merge branch 'bug3026' into maint-0.2.2Nick Mathewson2011-05-15
| |\ \
| | * | bug 3026: do not upload our vote to ourselfNick Mathewson2011-05-12