aboutsummaryrefslogtreecommitdiff
path: root/src/or/directory.c
Commit message (Expand)AuthorAge
* 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
| * | | Merge remote-tracking branch 'public/bug3122_memcmp_022' into maint-0.2.2Nick Mathewson2011-05-12
| |\ \ \ | | |/ / | |/| |
* | | | Merge remote-tracking branch 'public/bug3122_memcmp_023'Nick Mathewson2011-05-12
|\ \ \ \
| * \ \ \ Merge remote-tracking branch 'public/bug3122_memcmp_022' into bug3122_memcmp_023•••Conflicts in various places, mainly node-related. Resolved them in favor of HEAD, with copying of tor_mem* operations from bug3122_memcmp_022. src/common/Makefile.am src/or/circuitlist.c src/or/connection_edge.c src/or/directory.c src/or/microdesc.c src/or/networkstatus.c src/or/router.c src/or/routerlist.c src/test/test_util.c Nick Mathewson2011-05-11
| |\ \ \ \ | | | |/ / | | |/| |
| | * | | Merge remote-tracking branch 'public/3122_memcmp_squashed' into bug3122_memcm...•••Conflicts throughout. All resolved in favor of taking HEAD and adding tor_mem* or fast_mem* ops as appropriate. src/common/Makefile.am src/or/circuitbuild.c src/or/directory.c src/or/dirserv.c src/or/dirvote.c src/or/networkstatus.c src/or/rendclient.c src/or/rendservice.c src/or/router.c src/or/routerlist.c src/or/routerparse.c src/or/test.c Nick Mathewson2011-05-11
| | |\ \ \ | | | | |/ | | | |/|
| | | * | Hand-conversion and audit phase of memcmp transition•••Here I looked at the results of the automated conversion and cleaned them up as follows: If there was a tor_memcmp or tor_memeq that was in fact "safe"[*] I changed it to a fast_memcmp or fast_memeq. Otherwise if there was a tor_memcmp that could turn into a tor_memneq or tor_memeq, I converted it. This wants close attention. [*] I'm erring on the side of caution here, and leaving some things as tor_memcmp that could in my opinion use the data-dependent fast_memcmp variant. Nick Mathewson2011-05-11
| | | * | Automated conversion of memcmp to tor_memcmp/tor_mem[n]eq•••This commit is _exactly_ the result of perl -i -pe 's/\bmemcmp\(/tor_memcmp\(/g' src/*/*.[ch] perl -i -pe 's/\!\s*tor_memcmp\(/tor_memeq\(/g' src/*/*.[ch] perl -i -pe 's/0\s*==\s*tor_memcmp\(/tor_memeq\(/g' src/*/*.[ch] perl -i -pe 's/0\s*!=\s*tor_memcmp\(/tor_memneq\(/g' src/*/*.[ch] git checkout src/common/di_ops.[ch] git checkout src/or/test.c git checkout src/common/test.h Nick Mathewson2011-05-11
* | | | | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-05-12
|\ \ \ \ \ | |/ / / / |/| | | / | | |_|/ | |/| |
| * | | Merge branch 'bug1352' into maint-0.2.2Nick Mathewson2011-05-12
| |\ \ \ | | |/ / | |/| |
| | * | Rate-limit v2 networkstatus download fail warnings•••This fixes part of 1352. We don't care deeply about these warnings, since v2 networkstatuses aren't a big deal. Nick Mathewson2011-04-28
| | * | Rename connection_dir_download_networkstatus_failed: be clear that it means v2Nick Mathewson2011-04-28
* | | | Merge remote-tracking branch 'origin/maint-0.2.2'•••Conflicts: src/or/directory.c Nick Mathewson2011-05-09
|\| | |
| * | | Only authorities should automatically download v2 networkstatus documents•••Clients and relays haven't used them since early 0.2.0.x. The only remaining use by authorities learning about new relays ahead of scedule; see proposal 147 for what we intend to do about that. We're leaving in an option (FetchV2Networkstatus) to manually fetch v2 networkstatuses, because apparently dnsel and maybe bwauth want them. This fixes bug 3022. Nick Mathewson2011-04-28
| |/ /
* | | Fix check-spaces issues in masterNick Mathewson2011-05-05
* | | Code to make clients fetch and use microdescriptors for circuit building•••To turn this on, set UseMicrodescriptors to "1" (or "auto" if you want it on-if-you're-a-client). It should go auto-by-default once 0.2.3.1-alpha is released. Because of our node logic, directory caches will never use microdescriptors when they have the right routerinfo available. Nick Mathewson2011-05-05
* | | Replace _AUTHORITY enum values with _DIRINFO values (automted)Nick Mathewson2011-05-05
* | | Automated rename from authority_type_t to dirinfo_type_t•••We were already overloading this type to mean "a directory that can serve us X" in addition to "a directory that is an authority for X." Nick Mathewson2011-05-05
* | | Merge maint-0.2.2 for the bug1090-part1-squashed branch•••Resolved conflicts in: doc/tor.1.txt src/or/circuitbuild.c src/or/circuituse.c src/or/connection_edge.c src/or/connection_edge.h src/or/directory.c src/or/rendclient.c src/or/routerlist.c src/or/routerlist.h These were mostly releated to the routerinfo_t->node_t conversion. Nick Mathewson2011-04-27
|\| |
| * | handle excludenodes for dir fetch/post•••If we're picking a random directory node, never pick an excluded one. But if we've chosen a specific one (or all), allow it unless strictnodes is set (in which case warn so the user knows it's their fault). When warning that we won't connect to a strictly excluded node, log what it was we were trying to do at that node. When ExcludeNodes is set but StrictNodes is not set, we only use non-excluded nodes if we can, but fall back to using excluded nodes if none of those nodes is usable. Roger Dingledine2011-04-26
* | | Merge remote-tracking branch 'origin/maint-0.2.2'•••Conflicts: src/common/address.c src/common/compat_libevent.c src/common/memarea.c src/common/util.h src/or/buffers.c src/or/circuitbuild.c src/or/circuituse.c src/or/connection.c src/or/directory.c src/or/networkstatus.c src/or/or.h src/or/routerlist.c Nick Mathewson2011-04-07
|\| |
| * | Remove workaround code for bug539•••We fixed bug 539 (where directories would say "503" but send data anyway) back in 0.2.0.16-alpha/0.1.2.19. Because most directory versions were affected, we added workaround to make sure that we examined the contents of 503-replies to make sure there wasn't any data for them to find. But now that such routers are nonexistent, we can remove this code. (Even if somebody fired up an 0.1.2.19 directory cache today, it would still be fine to ignore data in its erroneous 503 replies.) Nick Mathewson2011-03-25
| * | Triage the XXX022 and XXX021 comments remaining in the code•••Remove some, postpone others, leave some alone. Now the only remaining XXX022s are ones that seem important to fix or investigate. Nick Mathewson2011-03-25
* | | Merge remote-tracking branch 'public/bug2381'Nick Mathewson2011-04-06
|\ \ \
| * | | Fix infinite recursion when connect() fails in microdesc consensus fetch•••The underlying fix is to stop indicating requests "ns" consensuses by putting NULL in their requested_resource field: we already had a specialized meaning for requested_resource==NULL, which was (more or less) "Treat a failure here as a network failure, since it's too early to possibly be a resource or directory failure." Overloading the two meant that very early microdesc consensus download failures would get treated as ns consensus download failures, so the failure count there would get incremented, but the microdesc download would get retried immediately in an infinite loop. Fix for bug2381. Diagnosed by mobmix. Nick Mathewson2011-02-23