aboutsummaryrefslogtreecommitdiff
path: root/src/or
Commit message (Collapse)AuthorAge
...
| * | | | | | Clean up a couple more bug1138 issues mentioned by roger on code reviewNick Mathewson2010-09-12
| | | | | | |
| * | | | | | Handle null conn->requested_resource rather than assertRobert Hogan2010-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Per arma's comments in bug1138
| * | | | | | Nick points out:Robert Hogan2010-09-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor_assert(!conn->_base.purpose == DIR_PURPOSE_FETCH_EXTRAINFO) != tor_assert(conn->_base.purpose != DIR_PURPOSE_FETCH_EXTRAINFO) !!
| * | | | | | Amend per Sebastian's comments:Robert Hogan2010-09-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Move checks for extra_info to callers - Change argument name from failed to descs - Use strlen("fp/") instead of a magic number - I passed on the suggestion to rename functions from *_failed() to *_handle_failure(). There are a lot of these so for now just follow the house style.
| * | | | | | Fall back to direct descriptor request to bridges whenRobert Hogan2010-08-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | requests to authorities fail due to a network error. Bug#1138 "When a Tor client starts up using a bridge, and UpdateBridgesFromAuthority is set, Tor will go to the authority first and look up the bridge by fingerprint. If the bridge authority is filtered, Tor will never notice that the bridge authority lookup failed. So it will never fall back." Add connection_dir_bridge_routerdesc_failed(), a function for unpacking the bridge information from a failed request, and ensure connection_dir_request_failed() calls it if the failed request was for a bridge descriptor. Test: 1. for ip in `grep -iR 'router ' cached-descriptors|cut -d ' ' -f 3`; do sudo iptables -A OUTPUT -p tcp -d $ip -j DROP; done 2. remove all files from user tor directory 3. Put the following in torrc: UseBridges 1 UpdateBridgesFromAuthority 1 Bridge 85.108.88.19:443 7E1B28DB47C175392A0E8E4A287C7CB8686575B7 4. Launch tor - it should fall back to downloading descriptors directly from the bridge. Initial patch reviewed and corrected by mingw-san.
* | | | | | | Make authorities download consensuses if appropriateNick Mathewson2010-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An authority should never download a consensus if it has a live one, but when it doesn't, it should admit that it's not going to get one, and see if anybody else can give it one. Fixes 1300, fix on 0.2.0.9-alpha
* | | | | | | fix regression introduced by 1a65bdd2Roger Dingledine2010-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | noticed while reviewing hoganrobert/bug1138
* | | | | | | be more consistent in using streamid_tNick Mathewson2010-09-08
| | | | | | |
* | | | | | | Merge branch 'bug1653'Nick Mathewson2010-09-08
|\ \ \ \ \ \ \
| * | | | | | | Fix a missing stream_id argument; found by "tracktor"Nick Mathewson2010-09-03
| | | | | | | |
| * | | | | | | Fix behavior of adding a cell to a blocked queue.Nick Mathewson2010-09-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We frequently add cells to stream-blocked queues for valid reasons that don't mean we need to block streams. The most obvious reason is if the cell arrives over a circuit rather than from an edge: we don't block circuits, no matter how full queues get. The next most obvious reason is that we allow CONNECTED cells from a newly created stream to get delivered just fine. This patch changes the behavior so that we only iterate over the streams on a circuit when the cell in question came from a stream, and we only block the stream that generated the cell, so that other streams can still get their CONNECTEDs in.
| * | | | | | | Detect if we try to put a cell onto a supposedly blocked cell queue.Nick Mathewson2010-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When this happens, run through the streams on the circuit and make sure they're all blocked. If some aren't, that's a bug: block them all and log it! If they all are, where did the cell come from? Log it! (I suspect that this actually happens pretty frequently, so I'm making these log messages appear at INFO.)
| * | | | | | | Decide whether to ignore SENDMEs based on streams_blocked, not queue sizeNick Mathewson2010-08-18
| | | | | | | |
| * | | | | | | Avoid over-filling cell queues when we receive a SENDMEyetonetime2010-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not start reading on exit streams when we get a SENDME unless we have space in the appropriate circuit's cell queue. Draft fix for bug 1653. (commit message by nickm)
* | | | | | | | Merge remote branch 'origin/maint-0.2.1'Nick Mathewson2010-09-08
|\ \ \ \ \ \ \ \
| * | | | | | | | Remove a needless keep_open_until_flushedNick Mathewson2010-09-08
| | | | | | | | |
| * | | | | | | | Close a non-open OR connection *only* after KeepalivePeriod.Nick Mathewson2010-09-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we introduced the code to close non-open OR connections after KeepalivePeriod had passed, we replaced some code that said if (!connection_is_open(conn)) { /* let it keep handshaking forever */ } else if (do other tests here) { ... with new code that said if (!connection_is_open(conn) && past_keepalive) { /* let it keep handshaking forever */ } else if (do other tests here) { ... This was a mistake, since it made all the other tests start applying to non-open connections, thus causing bug 1840, where non-open connections get closed way early. Fixes bug 1840. Bugfix on 0.2.1.26 (commit 67b38d50).
* | | | | | | | | Merge remote branch 'public/win_unicode_fixes'Nick Mathewson2010-09-06
|\ \ \ \ \ \ \ \ \ | |_|_|_|_|_|_|_|/ |/| | | | | | | |
| * | | | | | | | Make the windows build succeed with or without -DUNICODE enabled.Nick Mathewson2010-08-20
| | |_|_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should keep WinCE working (unicode always-on) and get Win98 working again (unicode never-on). There are two places where we explicitly use ASCII-only APIs, still: in ntmain.c and in the unit tests. This patch also fixes a bug in windoes tor_listdir that would cause the first file to be listed an arbitrary number of times that was also introduced with WinCE support. Should fix bug 1797.
* | | | | | | | Merge branch 'ratelim'Nick Mathewson2010-08-31
|\ \ \ \ \ \ \ \
| * | | | | | | | Fix some issues in rate-limiting noticed by SebastianNick Mathewson2010-08-31
| | | | | | | | |
| * | | | | | | | Add a generic rate-limited log mechanism, and use it in a few placesNick Mathewson2010-08-18
| | |_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | Incidentally fixes bug 1042.
* | | | | | | | Fix a compile warning on OpenBSDSebastian Hahn2010-08-22
| |/ / / / / / |/| | | | | |
* | | | | | | Warn for bad combination of cookie optionsSebastian Hahn2010-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting CookieAuthFileGroupReadable but without setting CookieAuthFile makes no sense, because unix directory permissions for the data directory prevent the group from accessing the file anyways.
* | | | | | | Fix up compilation on windows.Nick Mathewson2010-08-19
| |_|_|_|/ / |/| | | | |
* | | | | | delay geoip stats even more for relays-turned-bridgesRoger Dingledine2010-08-18
|/ / / / /
* | | | | Merge commit 'origin/maint-0.2.1'Nick Mathewson2010-08-18
|\| | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/or/reasons.c
| * | | | Backport END_STREAM_REASON_NOROUTE for client use.Sebastian Hahn2010-08-18
| | | | | | | | | | | | | | | | | | | | (Partial backport of 150ed553dfce9, 161b275028e90, and 4c948ffd6.)
* | | | | Merge commit 'karsten/dirbytes2'Nick Mathewson2010-08-18
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/or/rephist.h
| * | | | | Correctly report written bytes on linked connections.Karsten Loesing2010-08-18
| | | | | |
| * | | | | Count bytes we spend on answering directory requests.Karsten Loesing2010-08-18
| | | | | |
* | | | | | Remove unused function declarationsSebastian Hahn2010-08-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also remove some #if 0'd code from the unit tests for buffers. The code was killed in e6794e58081af773073c266e23fe3ab2ebecdb7e (5 years ago), and is now broken anyways.
* | | | | | Merge branch 'maint-0.2.1'Nick Mathewson2010-08-17
|\ \ \ \ \ \ | | |/ / / / | |/| | | | | | | | | | | | | | | | Resolved conflict in src/or/networkstatus.c
| * | | | | Scale CONSENSUS_MIN_SECONDS_BEFORE_CACHING by voting intervalNick Mathewson2010-08-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the voting interval was short enough, the two-minutes delay of CONSENSUS_MIN_SECONDS_BEFORE_CACHING would confuse bridges to the point where they would assert before downloading a consensus. It it was even shorter (<4 minutes, I think), caches would assert too. This patch fixes that by having replacing the two-minutes value with MIN(2 minutes, interval/16). Bugfix for 1141; the cache bug could occur since 0.2.0.8-alpha, so I'm calling this a bugfix on that. Robert Hogan diagnosed this. Done as a patch against maint-0.2.1, since it makes it hard to run some kinds of testing networks.
* | | | | | Merge commit 'public/warn1125'Nick Mathewson2010-08-16
|\ \ \ \ \ \
| * | | | | | Make buf_shrink_freelists warn, not crash, when n_to_skip is too highNick Mathewson2010-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This mitigates bug 1125, but doesn't fix its root cause (whatever that is).
* | | | | | | Fix compilation with --with-dmallocKarsten Loesing2010-08-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes 1832; bugfix on 0.2.2.6-alpha
* | | | | | | 161b2750 didn't really retry the stream. this does.Roger Dingledine2010-08-16
| | | | | | |
* | | | | | | Make Sebastian's bug1831 branch build with --enable-gcc-warningsNick Mathewson2010-08-15
| | | | | | |
* | | | | | | Merge commit 'sebastian/bug1831'Nick Mathewson2010-08-15
|\ \ \ \ \ \ \
| * | | | | | | Fix misplaced labelsSebastian Hahn2010-08-16
| | | | | | | |
| * | | | | | | Fix a memory leak in dirvote_compute_consensuses()Sebastian Hahn2010-08-16
| | | | | | | |
| * | | | | | | Fix a memory leakSebastian Hahn2010-08-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It happened in dirvote_add_signatures_to_pending_consesus().
| * | | | | | | Refactor circuit_build_times_parse_stateSebastian Hahn2010-08-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the msg parameter to pass an error message out. This wasn't needed and made it harder to detect a memory leak.
| * | | | | | | Fix a memory leak in circuit_build_times_parse_stateSebastian Hahn2010-08-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Thanks weasel for noticing.
* | | | | | | | Make Sebastian's misc-reasons branch compile; frob the changes fileNick Mathewson2010-08-15
| | | | | | | |
* | | | | | | | Merge commit 'sebastian/misc-reason'Nick Mathewson2010-08-15
|\ \ \ \ \ \ \ \
| * | | | | | | | Retry streams that ended with NOROUTE errorSebastian Hahn2010-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also add the NOROUTE reason to control-spec.
| * | | | | | | | Introduce END_STREAM_REASON_NOROUTESebastian Hahn2010-08-03
| | | | | | | | |
| * | | | | | | | Handle EHOSTUNREACH in errno_to_stream_end_reason()Sebastian Hahn2010-08-03
| | |_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to not recognize it and returned END_STREAM_REASON_MISC. Instead, return END_STREAM_REASON_INTERNAL.