Nick Mathewson
b25b8150c2
Remember in our state file how long we've spent since user activity
...
Rather than initializing the "Dormant" status to "off" and the "last
activity" count to "now", initialize them based on our state file:
stay dormant if we were dormant, or remember the amount of time
we've spent inactive.
2018-12-04 11:59:11 -05:00
Nick Mathewson
31a6d9f499
Add tests for parsing each routerstatus flag.
2018-12-03 13:40:08 -05:00
Nick Mathewson
92af8e5113
Add a framework for testing set_routerstatus_from_routerinfo().
...
Additionally, use it to test that is_staledesc is set correctly.
Eventually we'll want to test all the other flags, but I'm aiming
for only adding coverage on the changed code here.
2018-12-03 13:22:23 -05:00
Nick Mathewson
417a324a85
Make input argument const in set_routerstatus_from_routerinfo.
2018-12-03 12:34:29 -05:00
Nick Mathewson
32213fa9ad
Keep list of dirauth flags in sync between dirvote.c and fuzz_vrs.c
...
Suggested by Teor on PR
2018-12-03 12:18:45 -05:00
rl1987
db9ab3754a
Print error message we get from socket.connect_ex when it fails
2018-12-03 14:49:33 +02:00
rl1987
25f3b82445
More logging for #28229
2018-12-03 14:40:37 +02:00
rl1987
9369152aae
Check that new listener connection is actually listening
2018-12-03 14:28:32 +02:00
Nick Mathewson
0d9dc13e08
Merge remote-tracking branch 'tor-github/pr/544'
2018-12-02 19:50:04 -05:00
Nick Mathewson
8221b5d587
Merge remote-tracking branch 'tor-github/pr/559'
2018-12-02 19:38:40 -05:00
teor
612b21b8ea
comment: replace cached-routers with cached-descriptors
...
cached-routers has been gone for a long time
2018-12-03 10:19:34 +10:00
Nick Mathewson
0015d00842
Use tor_strdup() in place of malloc+strncpy+terminate.
2018-12-01 20:46:06 -05:00
Nick Mathewson
8accf71c44
Merge remote-tracking branch 'tor-github/pr/556'
2018-12-01 20:35:38 -05:00
Nick Mathewson
2b2b97484a
Merge branch 'ticket27490a_squashed'
2018-12-01 20:32:18 -05:00
Neel Chauhan
ad031b64ce
Add regression test for ClientAutoIPv6ORPort
2018-12-01 14:55:57 -05:00
Neel Chauhan
81f2828d67
In fascist_firewall_use_ipv6(), say we can use IPv6 if ClientAutoIPv6ORPort is 1
2018-12-01 14:55:57 -05:00
Neel Chauhan
822cb93cab
Add new option ClientAutoIPv6ORPort to switch between IPv4 and IPv6 OR ports
2018-12-01 14:55:57 -05:00
rl1987
353d2a091d
Fix coverage build
2018-12-01 14:31:17 -05:00
rl1987
39e158db36
tor-resolve: Rework SOCKS5 response parsing with trunnel
2018-12-01 14:31:17 -05:00
rl1987
8b9d6581f6
tor-resolve: Rework SOCKS5 method negotiation client part with trunnel
2018-12-01 14:31:17 -05:00
rl1987
1051969a1d
tor-resolve: parse SOCKS4a reply
2018-12-01 14:31:17 -05:00
rl1987
d49baa77b5
Allow socks4_server_reply version to be 0 (for tor-resolve)
2018-12-01 14:31:17 -05:00
rl1987
83af6d6149
tor-resolve: Use trunnel code for SOCKS5 request generation
2018-12-01 14:31:17 -05:00
rl1987
30582b940e
tor-resolve: link tor-resolve binary with trunnel lib
2018-12-01 14:31:17 -05:00
rl1987
a2bb172225
tor-resolve: generate SOCKS4a request with trunnel
2018-12-01 14:31:17 -05:00
Nick Mathewson
701eaef980
Move net.inet.ip.random_id code to lib/net/
2018-12-01 11:36:03 -05:00
Nick Mathewson
d4d4a4b2dd
Merge remote-tracking branch 'tor-github/pr/527'
2018-12-01 11:30:53 -05:00
Nick Mathewson
51d94cea33
Merge branch 'maint-0.3.5'
2018-12-01 11:26:55 -05:00
Nick Mathewson
1a97379e5e
Merge remote-tracking branch 'tor-github/pr/554' into maint-0.3.5
2018-12-01 11:26:52 -05:00
Nick Mathewson
7e9985b75a
Merge remote-tracking branch 'tor-github/pr/536'
2018-12-01 11:24:02 -05:00
Nick Mathewson
af9dc12fab
Merge branch 'maint-0.3.5'
2018-12-01 11:20:10 -05:00
rl1987
945c4dfda0
Also log a Tor log entry when it has a substring we are waiting for
2018-12-01 11:18:03 -05:00
rl1987
4c4ed413ee
1 ms. resolution for Tor logs
2018-12-01 11:18:03 -05:00
rl1987
0bb25931dc
Log everything from tor down to debug loglevel
2018-12-01 11:18:03 -05:00
rl1987
320f5f30b3
In test_rebind.py, log stuff with timestamps
2018-12-01 11:18:03 -05:00
Nick Mathewson
e3a19b1c78
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-12-01 11:15:09 -05:00
Nick Mathewson
cf3f7753c3
Merge branch 'maint-0.3.5'
2018-12-01 11:15:09 -05:00
Nick Mathewson
e82023d2f7
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-12-01 11:15:09 -05:00
Taylor Yu
7685f8ad35
Use table lookup for bootstrap_status_to_string
...
It also no longer distinguishes the case of internal-only paths, which
was often wrong anyway. Closes ticket 27402.
2018-11-30 16:54:01 -06:00
Taylor Yu
1fe6507d29
Split bootstrap event reporting out of control.c
...
Part of ticket 27402.
2018-11-30 16:49:44 -06:00
Neel Chauhan
d18a167ff3
sr: Switch from tor_assert() to BUG()
...
Closes #19566
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-11-30 12:16:18 -05:00
David Goulet
a51dad4272
test: Fix a warning underflow in rend_cache/clean
...
Because the test is adding entries to the "rend_cache" directly, the
rend_cache_increment_allocation() was never called which made the
rend_cache_clean() call trigger that underflow warning:
rend_cache/clean: [forking] Nov 29 09:55:04.024 [warn] rend_cache_decrement_allocation(): Bug: Underflow in rend_cache_decrement_allocation (on Tor 0.4.0.0-alpha-dev 2240fe63feb9a8cf)
The test is still good and valid.
Fixes #28660
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-11-29 10:02:50 -05:00
Alexander Færøy
2b41b857bd
Add LD_PROCESS as log domain.
...
See: https://bugs.torproject.org/28179
2018-11-27 19:31:08 +01:00
Alexander Færøy
31b3a6577c
Add buf_flush_to_pipe() and buf_read_from_pipe().
...
This patch adds two new functions: buf_flush_to_pipe() and
buf_read_from_pipe(), which makes use of our new buf_flush_to_fd() and
buf_read_from_fd() functions.
See: https://bugs.torproject.org/28179
2018-11-27 19:31:08 +01:00
Alexander Færøy
771930b84c
Refactor buf_read_from_socket() into buf_read_from_fd().
...
This patch refactors buf_read_from_socket() into buf_read_from_fd(), and
creates a specialized function for buf_read_from_socket(), which uses
buf_read_from_fd().
See: https://bugs.torproject.org/28179
2018-11-27 19:31:08 +01:00
Alexander Færøy
c71f9df07b
Refactor buf_flush_to_socket() into buf_flush_to_fd().
...
This patch refactors buf_flush_to_socket() into buf_flush_to_fd() and
creates a specialization function for buf_flush_to_socket() that makes
use of buf_flush_to_fd().
See: https://bugs.torproject.org/28179
2018-11-27 19:31:08 +01:00
Alexander Færøy
340260281a
Refactor flush_chunk() to work on pipes as well as sockets.
...
See: https://bugs.torproject.org/28179
2018-11-27 19:31:08 +01:00
Alexander Færøy
5f26ae833e
Refactor read_to_chunk() such that it supports both pipes and sockets.
...
See: https://bugs.torproject.org/28179
2018-11-27 19:31:08 +01:00
Alexander Færøy
2a3eef4404
Remove unused int pid
member of managed_proxy_t
.
...
See: https://bugs.torproject.org/28179
2018-11-27 19:31:08 +01:00
Nick Mathewson
8a15d0f69b
Merge branch 'maint-0.3.5'
2018-11-26 17:25:28 -05:00
Nick Mathewson
feb41b7c30
Merge remote-tracking branch 'teor/bug28096-035-squashed' into maint-0.3.5
2018-11-26 17:24:41 -05:00
Nick Mathewson
c292e505ff
Merge remote-tracking branch 'tor-github/pr/539'
2018-11-26 17:22:37 -05:00
Nick Mathewson
fc1ad9ab65
Merge remote-tracking branch 'tor-github/pr/495'
2018-11-26 17:17:40 -05:00
Nick Mathewson
7d8e0cc9ab
Merge branch 'dormant_v2_squashed'
2018-11-26 16:33:31 -05:00
Nick Mathewson
02843c4a4e
Test for check_network_participation_callback()
2018-11-26 16:32:40 -05:00
Nick Mathewson
55512ef022
Test netstatus.c tracking of user participation status
2018-11-26 16:32:40 -05:00
Nick Mathewson
3743f79695
Add options to control dormant-client feature.
...
The DormantClientTimeout option controls how long Tor will wait before
going dormant. It also provides a way to disable the feature by setting
DormantClientTimeout to e.g. "50 years".
The DormantTimeoutDisabledByIdleStreams option controls whether open but
inactive streams count as "client activity". To implement it, I had to
make it so that reading or writing on a client stream *always* counts as
activity.
Closes ticket 28429.
2018-11-26 16:32:40 -05:00
David Goulet
d37dbb09c2
hs-v3: Do not close RP circuits when deleting an ephemeral service
...
Bug reported on tor-dev@ and here is the detail explanation of the issue:
https://lists.torproject.org/pipermail/tor-dev/2018-November/013558.html
Fixes bug #28619
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-11-26 14:45:53 -05:00
rl1987
e92f900191
Try silencing Coverity false positive CID 1441482
...
Bugfix on 469f47ef8dc8b18104108f0437c860ec88fca6ad; bug not in any released
Tor version.
2018-11-26 17:35:32 +02:00
Nick Mathewson
881b85cf32
Treat the StaleDesc flag as making our descriptor dirty.
...
Relay side of prop293.
2018-11-25 10:12:20 -05:00
Nick Mathewson
36f808c936
Vote on the StaleDesc flag from prop293
...
The StaleDesc flag tells relays that they need to upload a new
descriptor soon, or they will drop out of the consensus.
2018-11-25 10:05:13 -05:00
Nick Mathewson
7da06e43da
No longer exit for missing required protocolversions on an old consensus
...
Specifically, if the consensus is older than the (estimted or
measured) release date for this version of tor, we assume that the
required versions may have changed in between that consensus and
this release.
Implements ticket 27735 and proposal 297.
2018-11-24 20:44:37 -05:00
Nick Mathewson
05dee063c8
Emit router families in canonical form
...
This patch has routers use the same canonicalization logic as
authorities when encoding their family lists. Additionally, they
now warn if any router in their list is given by nickname, since
that's error-prone.
This patch also adds some long-overdue tests for family formatting.
2018-11-24 16:35:58 -05:00
Nick Mathewson
f82eb6269f
Extract get_declared_family() into its own function.
...
This will help as we refactor it.
2018-11-24 12:11:40 -05:00
Nick Mathewson
0a0c612b79
Add a consensus method in which md families get canonicalized.
...
Implements prop298. Closes ticket 28266.
2018-11-24 12:01:09 -05:00
Nick Mathewson
d29e3a02d5
Add a function to canonicalize nodefamilies per prop298
...
This is the same as the regular canonical nodefamily format, except
that unrecognized elements are preserved.
2018-11-24 10:53:38 -05:00
Nick Mathewson
0e9a963b6b
Revise nodefamily.c to match proposal 298
...
Prop298 says that family entries should be formatted with
$hexids in uppercase, nicknames in lower case, $hexid~names
truncated, and everything sorted lexically. These changes implement
that ordering for nodefamily.c.
We don't _strictly speaking_ need to nodefamily.c formatting use
this for prop298 microdesc generation, but it seems silly to have
two separate canonicalization algorithms.
2018-11-24 10:30:15 -05:00
Taylor R Campbell
997a8b0ca7
Create a temporary directory for tor's DataDirectory in test_rebind.
...
Fixes #28562 .
While here, put the argument count test and usage message _before_ we
attempt to read from sys.argv.
2018-11-23 12:51:39 -05:00
teor
805f75182a
Entry Nodes: Test on reasonably live consensuses
...
As well as live consensuses.
Tests for 24661.
2018-11-22 17:47:12 +10:00
teor
390112d07e
Entry Nodes: refactor tests to use macros
...
Part of 24661.
2018-11-22 17:46:52 +10:00
teor
3741f9e524
Fix a comment typo in test_hs_common.c
2018-11-22 16:56:06 +10:00
teor
cebc39bcd5
Test: make unit tests use a reasonably live consensus
...
Cleanup after 24661.
2018-11-22 16:54:46 +10:00
teor
657618ba9b
Entry Nodes: Mark outdated dirservers in reasonably live consensuses
...
Fixes bug 28569; bugfix on Tor 0.3.2.5-alpha.
2018-11-22 16:54:34 +10:00
teor
d1ac5613fc
Entry Nodes: Use a reasonably live consensus to select guards
...
Fixes bug 24661; bugfix on 0.3.0.1-alpha.
2018-11-22 16:54:22 +10:00
teor
ffc7b81b5d
Test: Fix memory leaks and missing unmocks in entry guard tests
...
test_entry_guard_outdated_dirserver_exclusion leaks memory, and is
missing some unmocks.
Fixes 28554; bugfix on 0.3.0.1-alpha.
2018-11-22 16:42:32 +10:00
Nick Mathewson
469f47ef8d
Fix a fun heisenbug in memoize_protover_flags()
...
After we clear the protover map for getting full, we need to
re-create it, since we are about to use it.
This is a bugfix for bug 28558. It is a bugfix for the code from
ticket 27225, which is not in any released Tor. Found by Google
OSS-Fuzz, as issue 11475.
2018-11-21 07:56:33 -05:00
Nick Mathewson
34cadefe34
Merge branch 'maint-0.3.5'
2018-11-20 09:04:35 -05:00
Taylor Yu
0489288aa2
Update control_free_all() for #27169
...
Reset the added bootstrap tracking state introduced by ticket 27169.
Fixes bug 28524; bugfix on 0.3.5.1-alpha.
2018-11-19 15:48:08 -06:00
Fabian Keil
71651ea4aa
Complain if net.inet.ip.random_id is not set on FreeBSD-based servers
...
Apparently a couple of operators haven't gotten the memos [0] yet
and it looks like FreeBSD's default value will not change any time
soon [1].
[0]:
https://lists.torproject.org/pipermail/tor-relays/2014-March/004199.html
https://lists.torproject.org/pipermail/tor-relays/2014-November/005687.html
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=195828
[1]:
https://lists.freebsd.org/pipermail/freebsd-net/2015-April/041942.html
2018-11-19 16:28:00 +01:00
Nick Mathewson
8183640ada
Merge branch 'maint-0.3.5'
2018-11-19 10:18:57 -05:00
Alexander Færøy
3260914db0
Add missing library to build tor-print-ed-signing-cert.
...
To succesful compile tor-print-ed-signing-cert.exe on Windows we
sometimes need to include the @TOR_LIB_GDI@ library.
See: https://bugs.torproject.org/28485
2018-11-19 10:18:44 -05:00
Nick Mathewson
48b08f0592
Merge branch 'ticket27359_v2_squashed'
2018-11-19 08:26:49 -05:00
Nick Mathewson
0e762c0cf5
Test new functions in nodelist.c
2018-11-19 08:26:10 -05:00
Nick Mathewson
4f9548f893
Expose more nodelist.c functions to tests
2018-11-19 08:26:10 -05:00
Nick Mathewson
aa1d767e6b
Aim for 100% test coverage on nodefamily.c
2018-11-19 08:26:10 -05:00
Nick Mathewson
426c9561c5
Use nodefamily_t in microdescriptors.
...
Closes ticket 27359.
2018-11-19 08:26:10 -05:00
Nick Mathewson
83be4d2bbd
Backend for compact node-family representation.
...
This representation is meant to save memory in microdescriptors --
we can't use it in routerinfo_t yet, since those families need to be
encoded losslessly for directory voting to work.
This representation saves memory in three ways:
1. It uses only one allocation per family. (The old way used a
smartlist (2 allocs) plus one strdup per entry.)
2. It stores identity digests in binary, not hex.
3. It keeps families in a canonical format, memoizes, and
reference-counts them.
Part of #27359 .
2018-11-19 08:26:10 -05:00
rl1987
411780d563
Make ROUTERLIST_PRUNING_INTERVAL 1 hr.
2018-11-17 10:19:25 +02:00
Nick Mathewson
942c2da48e
Bump to 0.3.5.5-alpha-dev
2018-11-16 11:32:04 -05:00
Nick Mathewson
35558c39dd
Merge remote-tracking branch 'dgoulet/ticket27471_035_02' into maint-0.3.5
2018-11-16 08:57:56 -05:00
Nick Mathewson
c9906cc3f6
Bump to 0.3.5.5-alpha
2018-11-16 08:28:45 -05:00
Nick Mathewson
fe1fb4b0c3
Merge remote-tracking branch 'public/ticket27686_034' into maint-0.3.4
2018-11-15 17:01:54 -05:00
Nick Mathewson
80a6228aac
Merge branch 'bug25573-034-typefix' into maint-0.3.4
2018-11-15 16:58:16 -05:00
Nick Mathewson
15e752e6b1
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-15 16:54:56 -05:00
Nick Mathewson
cbe04d4550
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-11-15 16:54:16 -05:00
Nick Mathewson
63312e0299
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-15 16:47:25 -05:00
Nick Mathewson
aebe8a82c9
Merge branch 'bug26913_033' into maint-0.3.3
2018-11-15 16:47:22 -05:00
Nick Mathewson
8569166c70
Merge remote-tracking branch 'public/bug24104_029_squashed' into maint-0.2.9
...
Resolved conflicts with the 26269 fix in 015fcd0e11
.
2018-11-15 16:43:50 -05:00
Nick Mathewson
1e6ffeaeaa
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-15 16:37:41 -05:00
Nick Mathewson
34e4d5a783
Merge remote-tracking branch 'dgoulet/bug27550_033_01' into maint-0.3.3
2018-11-15 16:37:02 -05:00
Nick Mathewson
31cc0d2c0b
Merge branch 'maint-0.3.5'
2018-11-15 16:11:29 -05:00
Nick Mathewson
4b6b58ed8e
Merge branch 'bug27740_035_fix' into maint-0.3.5
2018-11-15 16:11:06 -05:00
Nick Mathewson
53ccdb6945
Make sure that we are always a net participant when being a server
...
Otherwise, if we're dormant, and we set ORPort, nothing makes us become
non-dormant.
2018-11-15 11:17:27 -05:00
Nick Mathewson
2f28cd1dc8
Rename and fix docs on FLUSH_ON_DISABLE
...
Also rename "...flush_and_disable()" to "...schedule_and_disable()"
2018-11-15 11:17:22 -05:00
Nick Mathewson
d0e6abd087
Reset dormancy status when the clock jumps.
2018-11-15 11:17:22 -05:00
Nick Mathewson
ce6209cee4
Add a periodic event to become dormant.
...
This event makes us become dormant if we have seen no activity in a
long time.
Note that being any kind of a server, or running an onion service,
always counts as being active.
Note that right now, just having an open stream that Tor
did not open on its own (for a directory request) counts as "being
active", so if you have an idle ssh connection, that will keep Tor
from becoming dormant.
Many of the features here should become configurable; I'd like
feedback on which.
2018-11-15 11:17:22 -05:00
Nick Mathewson
2c15b65381
Make the NET_PARTICIPANT role dependent on user activity
...
This patch implements all of 28337, except for the part where we
turn off the role if we've been idle for a long time.
2018-11-15 11:17:22 -05:00
Nick Mathewson
ccbb36048f
write_stats_file() is indeed NET_PARTICIPANT; remove comment.
2018-11-15 11:17:22 -05:00
Nick Mathewson
dc21f1f662
reset_padding_counts is only once per 24h; it can be all.
2018-11-15 11:17:22 -05:00
Nick Mathewson
4bf79fa4fa
Turn second_elapsed_callback into a normal periodic event.
2018-11-15 11:17:22 -05:00
Nick Mathewson
303e5c70e0
Move the responsibility for delayed shutdown into the mainloop
...
This is part of 28422, so we don't have to call
consider_hibernation() once per second when we're dormant.
This commit does not remove delayed shutdown from hibernate.c: it
uses it as a backup shutdown mechanism, in case the regular shutdown
timer mechanism fails for some reason.
2018-11-15 11:17:22 -05:00
Nick Mathewson
e535ec8542
Remove run_scheduled_events() as a separate function.
...
(There was nothing else in second_elapsed_callbck() that couldn't go
here.)
2018-11-15 11:17:22 -05:00
Nick Mathewson
a0380b705d
Move control_per_second_events() into a callback with its own role
...
Part of making extra-dormant mode work; closes ticket 28421.
2018-11-15 11:17:22 -05:00
Nick Mathewson
db53bfe8f7
Annotate 1/s callback elements with NET_PARTICIPANT status.
2018-11-15 11:17:22 -05:00
Nick Mathewson
b9a88bd53a
Add new "ALL" and "NET_PARTICIPANT" roles for periodic events
...
The previous "ALL" role was the OR of a bunch of other roles,
which is a mistake: it's better if "ALL" means "all".
The "NET_PARTICIPANT" role refers to the anything that is actively
building circuits, downloading directory information, and
participating in the Tor network. For now, it is set to
!net_is_disabled(), but we're going to use it to implement a new
"extra dormant mode".
Closes ticket 28336.
2018-11-15 11:17:22 -05:00
Nick Mathewson
6d84972eb8
Add a function to schedule a periodic event once, then disable it
2018-11-15 11:17:22 -05:00
Nick Mathewson
2070765c7c
Use macros to make the periodic event table less verbose.
2018-11-15 11:17:22 -05:00
teor
44ced9b750
Merge branch 'bug28096-029-squashed' into bug28096-035-squashed
...
Move the get_uname() changes from src/common/compat.c to
src/lib/osinfo/uname.c
2018-11-15 12:23:29 +10:00
teor
2fbc58cf07
Windows: fix uname on recent Windows versions
...
Correctly identify Windows 8.1, Windows 10, and Windows Server 2008
and later from their NT versions.
On recent Windows versions, the GetVersionEx() function may report
an earlier Windows version than the running OS. To avoid user
confusion, add "[or later]" to Tor's version string on affected
versions of Windows.
Remove Windows versions that were never supported by the
GetVersionEx() function.
Stop duplicating the latest Windows version in get_uname().
Fixes bug 28096; bugfix on 0.2.2.34; reported by Keifer Bly.
2018-11-15 12:19:11 +10:00
Nick Mathewson
eaff47352a
Make sure sandbox-related getaddrinfo() functions always exist.
2018-11-14 16:12:29 -05:00
Nick Mathewson
e420154ce7
Add an include to main.c
2018-11-14 16:07:36 -05:00
Nick Mathewson
6ca29ea409
Add libtor-buf-testing to build.rs
2018-11-14 16:07:36 -05:00
Nick Mathewson
4ecd5da306
Add .may_include to ext/timeouts.
2018-11-14 16:07:36 -05:00
Nick Mathewson
d32795bb6e
Make "ext" participate in may_include.
...
Also, resolve a circular dependency involving the use of lib/log by
csiphash.c.
2018-11-14 16:07:36 -05:00
Nick Mathewson
e429e31ad1
Normalize .may_include to always have paths, and paths to include
2018-11-14 16:07:35 -05:00
Nick Mathewson
c0a7527eb8
Remove dependency on lib/net from lib/sandbox.
...
This was trivial, and the easiest way to remove the remaining
.may_include circularities.
2018-11-14 16:07:03 -05:00
Nick Mathewson
f6b8c7da66
Move buffers.c out of lib/containers to resolve a circularity.
2018-11-14 16:07:03 -05:00
Nick Mathewson
c9f9c9bc49
Make memarea use smartlist_core, not container.
2018-11-14 16:07:03 -05:00
Nick Mathewson
12175987fc
Merge branch 'maint-0.3.5'
2018-11-14 15:43:49 -05:00
Nick Mathewson
d598d834f5
Merge branch 'ticket27750_034_01_squashed' into maint-0.3.5
2018-11-14 15:43:46 -05:00
David Goulet
c99f220f78
conn: Close the read side of a closing connection when write limit is reached
...
In conn_close_if_marked(), we can decide to keep a connection open that still
has data to flush on the wire if it is being rate limited on the write side.
However, in this process, we were also looking at the read() side which can
still have token in its bucket and thus not stop the reading. This lead to a
BUG() introduced in 0.3.4.1-alpha that was expecting the read side to be
closed due to the rate limit but which only applies on the write side.
This commit removes any bandwidth check on the read side and simply stop the
read side on the connection regardless of the bucket state. If we keep the
connection open to flush it out before close, we should not read anything.
Fixes #27750
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-11-14 15:42:52 -05:00
Nick Mathewson
cec58ae55c
Merge branch 'maint-0.3.5'
2018-11-14 07:56:52 -05:00
Nick Mathewson
a58b19465d
Merge remote-tracking branch 'teor/bug28441-035' into maint-0.3.5
2018-11-14 07:56:48 -05:00
Nick Mathewson
1043532a51
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-14 07:55:07 -05:00
Nick Mathewson
3deb01e1a4
Merge branch 'maint-0.3.5'
2018-11-14 07:55:07 -05:00
Nick Mathewson
eba989bf0e
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-11-14 07:55:07 -05:00
Nick Mathewson
db3acb3aa3
Work around check-spaces.
2018-11-14 07:54:57 -05:00
Martin Kepplinger
7ba1f39116
libtorrunner: fix memory leak in child() error path
...
This avoids leaking memory in case libtorrunner's child() function fails.
2018-11-14 07:49:51 -05:00
Nick Mathewson
586c3a7c90
Merge branch 'maint-0.3.5'
2018-11-14 07:42:56 -05:00
teor
16ca6fdfdb
log: stop talking about the Named flag in log messages
...
Clients have ignored the Named flag since 0.3.2.
Fixes bug 28441; bugfix on 0.3.2.1-alpha.
2018-11-14 18:16:34 +10:00
teor
9daf06d171
comment: circuit_list_path_impl() does not check Named any more
2018-11-14 18:06:14 +10:00
teor
a7aa3f76ec
comment: Fix a typo in nodes_in_same_family()
2018-11-14 18:06:05 +10:00
Nick Mathewson
a6a7a1f3ed
Merge branch 'maint-0.3.5'
2018-11-13 16:48:26 -05:00
Nick Mathewson
021187f915
Merge branch 'bug28183_029' into maint-0.3.5
2018-11-13 16:48:21 -05:00
David Goulet
342f2b1873
Merge branch 'tor-github/pr/501'
2018-11-13 10:48:23 -05:00
David Goulet
8fb318860e
Merge branch 'maint-0.3.5'
2018-11-13 10:43:03 -05:00
David Goulet
6f2151be9a
Merge branch 'tor-github/pr/487' into maint-0.3.5
2018-11-13 10:37:25 -05:00
Neel Chauhan
ec93385cb2
Comment for rend_cache_failure in feature/rend/rendcache.c: "usuable" should be "usable"
2018-11-13 10:33:51 -05:00
Nick Mathewson
42be1c668b
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-13 08:27:29 -05:00
Nick Mathewson
d000e798ac
Merge branch 'maint-0.3.5'
2018-11-13 08:27:29 -05:00
Nick Mathewson
ae4c94bb64
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-11-13 08:27:29 -05:00
Nick Mathewson
54d1a2d805
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-11-13 08:27:17 -05:00
Nick Mathewson
1a11702a9a
Fix a compiler warning in aes.c.
...
Apparently some freebsd compilers can't tell that 'c' will never
be used uninitialized.
Fixes bug 28413; bugfix on 0.2.9.3-alpha when we added support for
longer AES keys to this function.
2018-11-12 15:39:28 -05:00
Nick Mathewson
0e5378feec
seccomp2: Add "shutdown" to the list of permitted system calls.
...
We don't use this syscall, but openssl apparently does.
(This syscall puts a socket into a half-closed state. Don't worry:
It doesn't shut down the system or anything.)
Fixes bug 28183; bugfix on 0.2.5.1-alpha where the sandbox was
introduced.
2018-11-12 08:23:58 -05:00
Nick Mathewson
1fce9d1296
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-11 18:05:45 -05:00
Nick Mathewson
d1e9285b1d
Merge branch 'maint-0.3.5'
2018-11-11 18:05:45 -05:00
Nick Mathewson
896d0ebb99
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-11-11 18:05:45 -05:00
Nick Mathewson
93b6d41374
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-11-11 18:05:45 -05:00
Nick Mathewson
46796623f9
Fix a bug in usage of SSL_set1_groups_list()
...
Apparently, even though the manpage says it returns an int, it
can return a long instead and cause a warning.
Bug not in any released Tor. Part of #28399
2018-11-11 18:03:50 -05:00
rl1987
100136ca86
Create new periodic event for pruning old info about Tor routers
2018-11-11 20:31:24 +02:00
Nick Mathewson
e27dff08a3
Merge branch 'maint-0.3.5'
2018-11-11 11:57:54 -05:00
Nick Mathewson
6b2ff4fff8
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-11 11:57:53 -05:00
Nick Mathewson
76ed869ff9
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-11-11 11:57:53 -05:00
Nick Mathewson
d0c3723c38
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-11-11 11:57:52 -05:00
Karsten Loesing
5ba3d09a89
Update geoip and geoip6 to the November 6 2018 database.
2018-11-11 11:25:59 +01:00
Nick Mathewson
91355c0fac
Annotate subsystem list with their levels.
2018-11-09 22:17:18 -05:00
Nick Mathewson
bf4f55a13d
Merge branch 'subsystems'
2018-11-09 15:01:49 -05:00
Nick Mathewson
60d1081236
Log before performing a subsystem operation
2018-11-09 11:56:26 -05:00
Nick Mathewson
ba722e4799
Add list of levels in subsystem_list.c
2018-11-09 11:15:27 -05:00
Nick Mathewson
c6336727ca
Rename subsystem callback functions to make them consistent
2018-11-09 11:12:12 -05:00
Nick Mathewson
e80595f562
fixup! Make initialization for the "err" library into a subsystem.
...
Check for failure to install backtrace handler.
2018-11-09 11:00:31 -05:00
Nick Mathewson
61695e3d62
Document that subsystem callbacks are optional.
2018-11-09 10:58:20 -05:00
Nick Mathewson
4fe4bcf8a1
Explain that configuration should happen elsewhere, but not init.
2018-11-09 10:55:18 -05:00
Nick Mathewson
5d73f87ced
Merge branch 'maint-0.3.5'
2018-11-09 10:49:48 -05:00
Nick Mathewson
591a189fa4
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-09 10:49:47 -05:00
Nick Mathewson
2ac2d0a426
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-11-09 10:49:47 -05:00
Nick Mathewson
c06b7f090c
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-11-09 10:49:47 -05:00
Nick Mathewson
1ba1a1ceca
Always declare groups when building with openssl 1.1.1 APIs
...
Failing to do on clients was causing TLS 1.3 negotiation to fail.
Fixes bug 28245; bugfix on 0.2.9.15, when we added TLS 1.3 support.
2018-11-09 10:10:25 -05:00
Nick Mathewson
6560346a45
Bump version to 0.3.5.4-alpha-dev.
2018-11-08 09:00:59 -05:00
Nick Mathewson
8e3bae566a
Merge branch 'maint-0.3.5'
2018-11-07 16:27:26 -05:00
Nick Mathewson
212bd9778b
Make the hibernate.c changes for systemd compile.
2018-11-07 16:27:20 -05:00
Nick Mathewson
f229c4e66a
Bump to 0.3.5.4-alpha
2018-11-07 14:40:26 -05:00
Nick Mathewson
c7b6ed1d80
Merge remote-tracking branch 'tor-github/pr/271'
2018-11-07 11:21:13 -05:00
Roger Dingledine
6e828ced56
simplify now that it uses tor's copyright and license
2018-11-07 11:02:26 -05:00
Nick Mathewson
9e48d9a920
Change version on master to 0.4.0.0-alpha-dev.
2018-11-07 10:54:03 -05:00
Nick Mathewson
9807da9c20
Merge branch 'ticket27225_squashed'
2018-11-07 10:47:29 -05:00
Nick Mathewson
6d93820499
Memoize summarize_protover_flags()
...
Our tests showed that this function is responsible for a huge number
of our malloc/free() calls. It's a prime candidate for being
memoized.
Closes ticket 27225.
2018-11-07 10:47:07 -05:00
Nick Mathewson
a7a060a637
Switch ctassert.h to 3bsd (with permission)
2018-11-07 10:37:02 -05:00
Neel Chauhan
f89f14802e
At intro points, don't close circuits on NACKs
2018-11-06 17:04:08 -05:00
Nick Mathewson
770653ff45
Allow lib/cc to include its own files.
2018-11-06 16:59:39 -05:00
Nick Mathewson
d9508d8ede
Change copyright statement (with permission)
2018-11-06 15:42:18 -05:00
Nick Mathewson
6b706bcf19
Remove a tab.
2018-11-06 15:41:32 -05:00
Nick Mathewson
3c9dd9ef2d
Add parentheses to the ctassert macro expansions
2018-11-06 15:41:14 -05:00
Nick Mathewson
e69a4ad6b3
Add a user of CTASSERT().
2018-11-06 15:39:58 -05:00
Taylor R Campbell
1a6060fa42
New macro CTASSERT(condition) to assert condition at compile-time.
...
To get it, use: #include "lib/cc/ctassert.h"
2018-11-06 15:36:58 -05:00
Nick Mathewson
c8892b53ec
Merge remote-tracking branch 'tor-github/pr/466'
2018-11-06 15:35:45 -05:00
Nick Mathewson
8020d6fb05
Merge remote-tracking branch 'tor-github/pr/464'
2018-11-06 15:33:25 -05:00
Nick Mathewson
ba28704b29
Merge branch 'maint-0.3.5'
2018-11-06 15:22:11 -05:00
Nick Mathewson
c60f3ea607
Merge remote-tracking branch 'tor-github/pr/474' into maint-0.3.5
2018-11-06 15:21:45 -05:00
Nick Mathewson
bb9044381e
Merge branch 'maint-0.3.5'
2018-11-06 15:20:01 -05:00