aboutsummaryrefslogtreecommitdiff
path: root/src/or
Commit message (Expand)AuthorAge
* Prefer measured bandwidths over advertised when computing things for votes on...Andrea Shepard2013-02-27
* Fix a comment in tor_main.c•••We don't use subversion or src/*/makefile.am any longer Nick Mathewson2013-02-25
* fix a wide lineNick Mathewson2013-02-19
* Merge branch 'bug8065_v2'Nick Mathewson2013-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 Mathewson2013-02-19
* | Merge branch 'bug2286_unit_test_squashed'Nick Mathewson2013-02-19
|\ \ | |/ |/|
| * Refactor storing of measured_bw versus Unmeasured=1.•••This patch moves the measured_bw field and the has_measured_bw field into vote_routerstatus_t, since only votes have 'Measured=XX' set on their weight line. I also added a new bw_is_unmeasured flag to routerstatus_t to represent the Unmeasured=1 flag on a w line. Previously, I was using has_measured_bw for this, which was quite incorrect: has_measured_bw means that the measured_bw field is set, and it's probably a mistake to have it serve double duty as meaning that 'baandwidth' represents a measured value. While making this change,I also found a harmless but stupid bug in dirserv_read_measured_bandwidths: It assumes that it's getting a smartlist of routerstatus_t, when really it's getting a smartlist of vote_routerstatus_t. C's struct layout rules mean that we could never actually get an error because of that, but it's still quite incorrect. I fixed that, and in the process needed to add two more sorting and searching helpers. Finally, I made the Unmeasured=1 flag get parsed. We don't use it for anything yet, but someday we might. This isn't complete yet -- the new 2286 unit test doesn't build. Nick Mathewson2013-02-19
| * Add unit test for unmeasured bandwidth clipping in consensusAndrea Shepard2013-02-19
| * Note some annoyinc copy-and-paste codeNick Mathewson2013-02-19
| * Tweak consensus method 17 based on arma's comments•••Instead of capping whenever a router has fewer than 3 measurements, we cap whenever a router has fewer than 3 measurements *AND* there are at least 3 authorities publishing measured bandwidths. We also generate bandwidth lines with a new "Unmeasured=1" flag, meaning that we didn't have enough observations for a node to use measured bandwidth values in the authority's input, whether we capped it or not. Nick Mathewson2013-02-19
| * New consensus method: clip the maximum votable unmeasured bw•••If we're deciding on a node's bandwidth based on "Bandwidth=" declarations, clip it to "20" or to the maxunmeasuredbw parameter, if it's voted on. This adds a new consensus method. This is "part A" of bug 2286 Nick Mathewson2013-02-05
* | touchups on 78582760Roger Dingledine2013-02-19
* | Revise some comments in router.c•••Avoid the phrase "legally valid" (as opposed to valid but not legal)? And document what functions really do. Fix for bug 6935. Nick Mathewson2013-02-19
* | Fix a bug that roger found in the wide_circ_id codeNick Mathewson2013-02-15
* | Merge remote-tracking branch 'public/bug8207'Nick Mathewson2013-02-15
|\ \
| * | Make hidden service authorization work again.•••The refactoring in commit 471ab340325 wasn't complete enough: we were checking the auth_len variable, but never actually setting it, so it would never seem that authentication had been provided. This commit also removes a bunch of unused variables from rend_service_introduce, whose unusedness we hadn't noticed because we were wiping them at the end of the function. Fix for bug 8207; bugfix on 0.2.4.1-alpha. Nick Mathewson2013-02-11
* | | Merge remote-tracking branch 'public/wide_circ_ids'•••Conflicts: src/or/channel.h src/or/connection_or.c src/or/cpuworker.c Nick Mathewson2013-02-15
|\ \ \
| * | | Replace magic constants for wide_circ_ids with inline function callsNick Mathewson2013-02-09
| * | | Implement proposal-214 rules for CircID checking.Nick Mathewson2012-11-06
| * | | Add a pointless 2-byte memset in cell_pack•••There is probably no code that can write the 2 bytes at the end of the packed_cell_t when the cell is only a 512-byte cell, but let's not get overconfident there. Nick Mathewson2012-11-06
| * | | Allow a v4 link protocol for 4-byte circuit IDs.•••Implements proposal 214. Needs testing. Nick Mathewson2012-11-06
* | | | make check-spacesNick Mathewson2013-02-15
* | | | Merge remote-tracking branch 'public/feature4994-rebased'Nick Mathewson2013-02-15
|\ \ \ \
| * | | | Restore the entry/dirguard distinction.•••We shouldn't be calling choose_random_entry() for directory conncetions; that's what choose_random_dirguard() is for. Nick Mathewson2013-02-12
| * | | | generalize choose_random_entry()'s dirinfo parameter•••Now we can specify to skip bridges that wouldn't be able to answer the type of dir fetch we're launching. It's still the responsibility of the rest of the code to prevent us from launching a given dir fetch if we have no bridges that could handle it. Roger Dingledine2013-02-02
| * | | | use microdescriptors if *any* of our bridges can handle them•••Now as we move into a future where most bridges can handle microdescs we will generally find ourselves using them, rather than holding back just because one of our bridges doesn't use them. Roger Dingledine2013-02-02
* | | | | Authorities were adding downtime for every relay every restart•••Stop marking every relay as having been down for one hour every time we restart a directory authority. These artificial downtimes were messing with our Stable and Guard flag calculations. Fixes bug 8218 (introduced by the fix for 1035). Bugfix on 0.2.2.23-alpha. Roger Dingledine2013-02-14
* | | | | Merge remote-tracking branch 'arma/bug1992'Nick Mathewson2013-02-14
|\ \ \ \ \
| * | | | | get rid of the new caching notion in resolve_my_address()•••and replace it with the good old-fashioned two functions approach Roger Dingledine2013-02-12
| * | | | | simplify timing checks•••now that both timers are on the same schedule, there's no point tracking separate timers. Roger Dingledine2013-02-11
| * | | | | Check for IP address change every minute, not 15 minutes•••Relays used to check every 10 to 60 seconds, as an accidental side effect of calling directory_fetches_from_authorities() when considering doing a directory fetch. The fix for bug 1992 removes that side effect. At the same time, bridge relays never had the side effect, leading to confused bridge operators who tried crazy tricks to get their bridges to notice IP address changes (see ticket 1913). The new behavior is to reinstate an every-60-seconds check for both public relays and bridge relays, now that the side effect is gone. Roger Dingledine2013-02-11
| * | | | | Stop trying to resolve our hostname so often•••For example, we were doing a resolve every time we think about doing a directory fetch. Now we reuse the cached answer in some cases. Fixes bugs 1992 (bugfix on 0.2.0.20-rc) and 2410 (bugfix on 0.1.2.2-alpha). Roger Dingledine2013-02-11
| * | | | | Teach resolve_my_address() to return a cached answer•••I didn't make any of the callers use this feature yet. Roger Dingledine2013-02-11
* | | | | | Fix two more coverity-spotted leaks in master.•••One is a probably-impossible leak if we fail to sign a consensus; another occurs when we can't look up the user we're trying to chown our sockets to. Nick Mathewson2013-02-11
* | | | | | Avoid null-pointer deref in pathbias_is_new_circ_attempt•••Coverity is worried about this (CID 980653). It hasn't happened in testing, but we might as well make sure it can't happen. Nick Mathewson2013-02-11
|/ / / / /
* | | | | Fix a nigh-impossible overflow in cpuworker.c•••When we compute the estimated microseconds we need to handle our pending onionskins, we could (in principle) overflow a uint32_t if we ever had 4 million pending onionskins before we had any data about how onionskins take. Nevertheless, let's compute it properly. Fixes bug 8210; bugfix on 0.2.4.10. Found by coverity; this is CID 980651. Nick Mathewson2013-02-11
* | | | | oops; add a missing semicolonNick Mathewson2013-02-11
* | | | | Merge remote-tracking branch 'public/bug7816_023'Nick Mathewson2013-02-11
|\ \ \ \ \
| * | | | | Fix another memory leak•••This one occurs when changing configuration options. Found by coverity. Nick Mathewson2013-02-11
* | | | | | Merge remote-tracking branch 'public/bug8208'Nick Mathewson2013-02-11
|\ \ \ \ \ \
| * | | | | | Check whether ei is non-NULL before altering it.•••This fixes a crash bug if we fail to generate an extrainfo descriptor. Fixes bug 8208; bugfix on 0.2.3.16-alpha. Nick Mathewson2013-02-11
* | | | | | | Suppress a coverity false positive in connection_edge_package_raw_inbuf•••Coverity is worried that we're checking entry_conn in some cases, but not in the case where we set entry_conn->pending_optimistic_data. This commit should calm it down (CID 718623). Nick Mathewson2013-02-11
| |_|_|_|/ / |/| | | | |
* | | | | | Fix a copy-and-paste issue found by coverity•••Fixes CID 980650; bugfix on 0.2.4.10-alpha. Nick Mathewson2013-02-11
* | | | | | Merge remote-tracking branch 'public/bug8158'Nick Mathewson2013-02-11
|\ \ \ \ \ \
| * | | | | | Add doxygen for bug8158 functionsNick Mathewson2013-02-08
| * | | | | | Coalesce identical adjacent microdescriptor vote lines.Nick Mathewson2013-02-08
| * | | | | | Refactor generating the m lines in a vote into its own functionNick Mathewson2013-02-08
* | | | | | | Avoid generating extra spaces when explaining how we guessed our addressNick Mathewson2013-02-11
* | | | | | | Refactor resolve_my_address() so logs are more accurate / helpful•••It returns the method by which we decided our public IP address (explicitly configured, resolved from explicit hostname, guessed from interfaces, learned by gethostname). Now we can provide more helpful log messages when a relay guesses its IP address incorrectly (e.g. due to unexpected lines in /etc/hosts). Resolves ticket 2267. While we're at it, stop sending a stray "(null)" in some cases for the server status "EXTERNAL_ADDRESS" controller event. Resolves bug 8200. Roger Dingledine2013-02-11
* | | | | | | log the hostname that resolve_my_address() used to guess our IPRoger Dingledine2013-02-11