aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Merge branch 'bug5263_023'Nick Mathewson2012-06-13
|\
| * Add changes file for bug5263Nick Mathewson2012-06-13
| |
| * Add rate-limited log message to bug5263 fixNick Mathewson2012-06-13
| | | | | | | | | | Initially I said, "I claim that we shouldn't be reading and marked; let's see if I'm right." But Rob finds that it does.
| * Fix busy Libevent loops (infinite loops in Shadow)Rob G. Jansen2012-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a bug causing busy loops in Libevent and infinite loops in the Shadow simulator. A connection that is marked for close, wants to flush, is held open to flush, but is rate limited (the token bucket is empty) triggers the bug. This commit fixes the bug. Details are below. This currently happens on read and write callbacks when the active socket is marked for close. In this case, Tor doesn't actually try to complete the read or write (it returns from those methods when marked), but instead tries to clear the connection with conn_close_if_marked(). Tor will not close a marked connection that contains data: it must be flushed first. The bug occurs when this flush operation on the marked connection can not occur because the connection is rate-limited (its write token bucket is empty). The fix is to detect when rate limiting is preventing a marked connection from properly flushing. In this case, it should be flagged as read/write_blocked_on_bandwidth and the read/write events de-registered from Libevent. When the token bucket gets refilled, it will check the associated read/write_blocked_on_bandwidth flag, and add the read/write event back to Libevent, which will cause it to fire. This time, it will be properly flushed and closed. The reason that both read and write events are both de-registered when the marked connection can not flush is because both result in the same behavior. Both read/write events on marked connections will never again do any actual reads/writes, and are only useful to trigger the flush and close the connection. By setting the associated read/write_blocked_on_bandwidth flag, we ensure that the event will get added back to Libevent, properly flushed, and closed. Why is this important? Every Shadow event occurs at a discrete time instant. If Tor does not properly deregister Libevent events that fire but result in Tor essentially doing nothing, Libevent will repeatedly fire the event. In Shadow this means infinite loop, outside of Shadow this means wasted CPU cycles.
* | Change smartlist_create->smartlist_new in bug4744 branch as merged to masterNick Mathewson2012-06-13
| |
* | Merge branch 'bug4744_squashed'Nick Mathewson2012-06-13
|\ \
| * | Implement the client side of proposal 198Nick Mathewson2012-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a feature removal: we no longer fake any ciphersuite other than the not-really-standard SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA (0xfeff). This change will let servers rely on our actually supporting what we claim to support, and thereby let Tor migrate to better TLS ciphersuites. As a drawback, Tor instances that use old openssl versions and openssl builds with ciphers disabled will no longer give the "firefox" cipher list.
| * | Change our ciphersuite list to match ff8Nick Mathewson2012-05-15
| | |
| * | get_mozilla_ciphers: look at ssl3con.c, not sslenum.cNick Mathewson2012-03-14
| | |
| * | get_mozilla_ciphers: output lowercase hex.Nick Mathewson2012-03-14
| | |
| * | Try to make get_mozilla_ciphers output the right macros in the right orderNick Mathewson2012-03-14
| | |
| * | Have get_mozilla_ciphers take sourcedirs as argumentsNick Mathewson2012-03-14
| | |
| * | Make get_mozilla_ciphers script a little more regexy and readableNick Mathewson2012-03-14
| | |
| * | Script to generate ciphers.inc by ArturoNick Mathewson2012-03-14
| | |
* | | Merge remote-tracking branch 'public/bug3940_redux'Nick Mathewson2012-06-13
|\ \ \
| * | | fixup! An attempt at bug3940 and making AllowDotExit 0 work with MapAddressNick Mathewson2012-06-11
| | | |
| * | | Document ADDRMAPSRC_NONE.Nick Mathewson2012-06-11
| | | |
| * | | Document the new exit_source_out argument to addressmap_rewriteNick Mathewson2012-06-04
| | | |
| * | | An attempt at bug3940 and making AllowDotExit 0 work with MapAddressNick Mathewson2012-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This time, I follow grarpamp's suggestion and move the check for .exit+AllowDotExit 0 to the top of connection_ap_rewrite_and_attach, before any rewriting occurs. This way, .exit addresses are forbidden as they arrive from a socks connection or a DNSPort request, and not otherwise. It _is_ a little more complicated than that, though. We need to treat any .exit addresses whose source is TrackHostExits as meaning that we can retry without that exit. We also need to treat any .exit address that comes from an AutomapHostsOnResolve operation as user-provided (and thus forbidden if AllowDotExits==0), so that transitioning from AllowDotExits==1 to AllowDotExits==0 will actually turn off automapped .exit addresses.
* | | | Merge remote-tracking branch 'public/bug5210'Nick Mathewson2012-06-13
|\ \ \ \
| * | | | Do not try to use -pie on windows; it appears to break badly and weirdlyNick Mathewson2012-06-11
| | | | |
| * | | | Make our compiler-hardening checks robust against MinGWNick Mathewson2012-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First, specify -Werror when we are testing each option; if it causes a warning to appear, we shouldn't be adding it. Second, do not attempt to add these options until after we have found the libraries we want. Previously, I would hit a bug where the linker hardening options worked fine when we weren't linking anything, but failed completely once we added openssl or libevent.
| * | | | Make the option-checker code work with osx clangNick Mathewson2012-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a matter of making gcc and friends squirm more loudly when they get an option they don't like (-pedantic) and making clang shut up with it gets an option it tolerates but doesnt know (-Qunknown-argument). Is there no better way?
| * | | | Try to manually test for whether the compiler hardening flags workNick Mathewson2012-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | Also, make the check for whether they're on by default work; there's no need to mess around with this "$enableval" silliness.
| * | | | fix for bug #5210: enable GCC and LD hardening by defaultFlorent Daigniere2012-03-15
| | | | |
* | | | | Fix another clang compile warningSebastian Hahn2012-06-13
| | | | | | | | | | | | | | | | | | | | We forgot this when we fixed 5969.
* | | | | Merge branch 'task-5849-3-squashed'Nick Mathewson2012-06-13
|\ \ \ \ \
| * | | | | Fix integer overflow in cell stats spotted by atagar.Karsten Loesing2012-06-13
|/ / / / / | | | | | | | | | | | | | | | Fixes #5849.
* | | | | Merge branch 'maint-0.2.2'Roger Dingledine2012-06-13
|\ \ \ \ \ | |_|_|_|/ |/| | | |
| * | | | Update to the June 2012 GeoIP database.Karsten Loesing2012-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Manually removed range 0.116.0.0 to 0.119.255.255 which Maxmind says is assigned to AT. This is very likely a bug in their database, because 0.0.0.0/8 is a reserved range.
* | | | | forward-port the 0.2.2.37 changelogRoger Dingledine2012-06-12
| | | | |
* | | | | fold in changes files so farRoger Dingledine2012-06-12
| | | | |
* | | | | Merge branch 'bug5452'Nick Mathewson2012-06-11
|\ \ \ \ \
| * | | | | Call bug5452 fix a feature; note its trac number in the changes fileNick Mathewson2012-06-11
| | | | | |
| * | | | | Add change file for 5452Andrea Shepard2012-06-11
| | | | | |
| * | | | | Make RECOMMENDED_MIN_CIRCUIT_BUILD_TIMEOUT warning tell the user how to fix it.Andrea Shepard2012-06-11
| | | | | |
| * | | | | Warn if the user has set CircuitBuildTimeout stupidly low and turned off ↵Andrea Shepard2012-06-08
| | | | | | | | | | | | | | | | | | | | | | | | LearnCircuitBuildTimeout
* | | | | | Remove a couple of debugging "echo"s that snuck into configure.inNick Mathewson2012-06-11
| | | | | |
* | | | | | Merge remote-tracking branch 'public/bug4592'Nick Mathewson2012-06-11
|\ \ \ \ \ \
| * | | | | | Treat SW_SERVER_HELLO_B as another sign of an SSL handshakeNick Mathewson2012-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've been only treating SW_SERVER_HELLO_A as meaning that an SSL handshake was happening. But that's not right: if the initial attempt to write a ServerHello fails, we would get a callback in state SW_SERVER_HELLO_B instead. (That's "instead" and not "in addition": any failed attempt to write the hello will fail and cause the info callback not to get written.) Fix for bug 4592; bugfix on 0.2.0.13-alpha.
* | | | | | | Merge remote-tracking branch 'public/bug5598'Nick Mathewson2012-06-11
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/tor.1.txt Conflict was on a formatting issue in the manpage.
| * | | | | | | Change the default for DynamicDHGroups to 0Nick Mathewson2012-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This feature can make Tor relays less identifiable by their use of the mod_ssl DH group, but at the cost of some usability (#4721) and bridge tracing (#6087) regressions. We should try to turn this on by default again if we find that the mod_ssl group is uncommon and/or we move to a different DH group size (see #6088). Before we can do so, we need a fix for bugs #6087 and Resolves ticket #5598 for now.
* | | | | | | | Merge branch 'bug6097'Nick Mathewson2012-06-11
|\ \ \ \ \ \ \ \
| * | | | | | | | Fix mingw build with -DUNICODE -D_UNICODENick Mathewson2012-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a very blunt fix, and mostly just turns some func() calls into FuncA() to make things build again. Fixes bug 6097.
| * | | | | | | | Be more careful calling wcstombsNick Mathewson2012-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function is not guaranteed to NUL-terminate its output. It *is*, however, guaranteed not to generate more than two bytes per multibyte character (plus terminating nul), so the general approach I'm taking is to try to allocate enough space, AND to manually add a NUL at the end of each buffer just in case I screwed up the "enough space" thing. Fixes bug 5909.
* | | | | | | | | Merge branch 'bug2865'Nick Mathewson2012-06-11
|\ \ \ \ \ \ \ \ \ | |_|_|_|/ / / / / |/| | | | | | | |
| * | | | | | | | List defaults consistently in manpageNick Mathewson2012-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nearly everywhere, we end options with "(Default: foo)". But in a few places, we inserted an extra period after or before the close parenthesis, and in a few other places we said "(Defaults to foo)". Let's not do that.
| * | | | | | | | Correct the defaults for the *Statistics optionsNick Mathewson2012-06-07
| | | | | | | | |
* | | | | | | | | changes file and whitespace fix for bug5235 patchNick Mathewson2012-06-08
| | | | | | | | |
* | | | | | | | | Rate-limit 'Weighted bandwidth is 0.000000 ...' message; it can be produced ↵Andrea Shepard2012-06-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in extreme quantities