Nick Mathewson
a0bc164af5
Extract {or,origin}_circuit_t into their own headers
2018-06-15 11:34:33 -04:00
Nick Mathewson
1416f54d1e
Split dir_connection_t into its own header
2018-06-15 10:31:21 -04:00
Nick Mathewson
ff6f49f033
Rename find_dl_schedule to find_dl_min_delay.
...
(We no longer need two separate functions here.)
2018-04-22 15:55:09 -04:00
Nick Mathewson
2d7b5c6fe5
Change the type of "download schedule" from smartlist to int.
...
This is done as follows:
* Only one function (find_dl_schedule()) actually returned a
smartlist. Now it returns an int.
* The CSV_INTERVAL type has been altered to ignore everything
after the first comma, and to store the value before the first
comma in an int.
2018-04-22 15:55:09 -04:00
Nick Mathewson
b8ff7407a7
remove the max_failures argument from download_status_is_ready.
2018-01-31 15:03:47 -05:00
Nick Mathewson
5b55e15707
Remove all the old max_delay logic.
...
We had tests for it, but it was always INT_MAX.
2018-01-25 16:05:20 -05:00
Nick Mathewson
e0049ef022
Remove the old ("deterministic") download schedule.
...
We haven't meant to use it since we introduced the random
exponential schedule.
Closes ticket 23814.
2018-01-25 15:51:13 -05:00
Nick Mathewson
17dcce3fe1
Fix wide lines introduced by previous patch.
2017-12-08 14:47:19 -05:00
Nick Mathewson
285632a61b
Replace all FREE_AND_NULL* uses to take a type and a free function.
...
This commit was made mechanically by this perl script:
\#!/usr/bin/perl -w -i -p
next if /^#define FREE_AND_NULL/;
s/\bFREE_AND_NULL\((\w+),/FREE_AND_NULL\(${1}_t, ${1}_free_,/;
s/\bFREE_AND_NULL_UNMATCHED\(/FREE_AND_NULL\(/;
2017-12-08 14:47:19 -05:00
Nick Mathewson
176ad729d9
Change the free macro convention in the rest of src/or/*.h
2017-12-08 14:47:19 -05:00
Nick Mathewson
fcdec00685
Merge branch 'maint-0.3.2'
2017-11-17 09:59:26 -05:00
George Kadianakis
7e52947d57
Intoduce unittest for skipping outdated dirservers.
2017-11-17 09:57:46 -05:00
Nick Mathewson
2cee26b164
Merge branch 'bug23817_031' into maint-0.3.2
2017-11-17 09:56:53 -05:00
George Kadianakis
7fc64f02a3
Introduce cache for outdated microdesc dirservers.
...
We gonna use this cache to avoid dirservers without outdated md info.
2017-11-17 09:52:40 -05:00
Nick Mathewson
c2c1fa6b95
Merge branch 'maint-0.3.2'
2017-11-08 08:13:14 -05:00
Nick Mathewson
e5a83062ed
Merge branch 'bug23816_029_squashed' into maint-0.3.2
2017-11-08 08:11:22 -05:00
Nick Mathewson
cb29687e93
Replace our random-exponential-delay algorithm.
...
This patch has implementations of the "decorrelated" and "full"
algorithms from https://www.awsarchitectureblog.com/2015/03/backoff.html
2017-11-08 07:56:16 -05:00
George Kadianakis
8c8d3b90f7
Add a unittest that reveals the offending case of #23862 .
2017-10-25 20:22:52 +03:00
Nick Mathewson
c1deabd3b0
Run our #else/#endif annotator on our source code.
2017-09-15 16:24:44 -04:00
Nick Mathewson
73b0e2e6fd
Merge branch 'http_tunnel_squashed'
2017-09-05 14:34:29 -04:00
Nick Mathewson
eda79c2f78
Export http-command parsing functions.
2017-09-05 14:34:09 -04:00
George Kadianakis
b1cb16867e
Fix compilation warning on old clangs.
2017-08-28 15:00:09 +03:00
David Goulet
31da3898e7
prop224: Add directory_request_fetch_set_hs_ident()
...
Needed by the client when fetching a descriptor. This function checks the
directory purpose and hard assert if it is not for fetching.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-08-24 13:03:28 -04:00
George Kadianakis
6eb9de1b8c
test: Add tests for fetching descs and handling SOCKS conns.
...
- Add tests that ensure that SOCKS requests for v2/v3 addresses get
intercepted and handled.
- Add test that stores and lookups an HS descriptor in the client-side cache.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-08-24 13:03:28 -04:00
George Kadianakis
f93b77a18c
prop224: Add client code to handle fetched HS descriptors.
...
This code handles received HS descriptors by storing them in the
client-side HS cache.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-08-24 13:03:28 -04:00
George Kadianakis
0bf8587858
Do more type checking when setting HS idents.
...
I repurposed the old directory_request_set_hs_ident() into a new
directory_request_upload_set_hs_ident() which is only used for the
upload purpose and so it can assert on the dir_purpose.
When coding the client-side we can make a second function for fetch.
2017-08-08 20:29:35 -04:00
David Goulet
bce0c6caad
prop224: Directory function to upload descriptor
...
This commit adds a directory command function to make an upload directory
request for a service descriptor.
It is not used yet, just the groundwork.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-08-08 20:29:33 -04:00
Nick Mathewson
948158df33
Merge branch 'bug17750_029_squashed'
2017-07-07 13:28:22 -04:00
teor
32f0cbc0f6
Refactor exponential backoff multipliers into macros
...
There are only so many times you can type "4".
2017-07-07 13:18:04 -04:00
teor
344f5a71c5
Use download_status_get_next_attempt_at() more often
...
This guards against future occurrences of 17750.
2017-07-07 13:18:04 -04:00
teor
c21cfd28f4
Make clients try fallbacks before authorities
...
Make clients wait for 6 seconds before trying to download their
consensus from an authority.
Fixes bug 17750, bugfix on 0.2.8.1-alpha.
2017-07-07 13:18:04 -04:00
Alexander Færøy
9604980733
Log a warning if we receive a disallowed compression method for an anonymous connection.
...
See: https://bugs.torproject.org/22305
2017-05-22 15:52:41 +00:00
Nick Mathewson
9a50c73104
Merge remote-tracking branch 'ahf/bugs/22305'
2017-05-22 10:57:26 -04:00
Alexander Færøy
5a0eab68e1
Ensure that only GZip and Zlib compression is handled for anonymous connections.
...
See: https://bugs.torproject.org/22305
2017-05-22 14:45:12 +00:00
Nick Mathewson
cfe0a45750
Fix a compilation warning about duplicate typedef
2017-05-22 10:39:43 -04:00
George Kadianakis
52498b8183
Set guard state on bridge descriptor fetches.
...
We used to not set the guard state in launch_direct_bridge_descriptor_fetch().
So when a bridge descriptor fetch failed, the guard subsystem would never
learn about the fail (and hence the guard's reachability state would not
be updated).
2017-05-22 15:57:33 +03:00
Alexander Færøy
a3a31fa120
Send "Accept-Encoding" to directory servers.
...
See: https://bugs.torproject.org/21667
2017-05-12 17:18:45 +02:00
Nick Mathewson
57710c1587
New function to add additional headers to a directory request
2017-05-04 08:37:41 -04:00
Nick Mathewson
10a4f9cd07
Merge branch 'parse_accept_encoding'
2017-04-27 11:31:31 -04:00
Nick Mathewson
33a2fd065d
Merge branch 'dirreq'
2017-04-27 10:08:32 -04:00
Nick Mathewson
fec3050ea9
Tests for parse_accept_encoding
2017-04-25 19:01:05 -04:00
Nick Mathewson
d7fab36037
Make directory_request_set_guard_state static.
2017-04-21 15:42:09 -04:00
Nick Mathewson
81045e19eb
Document the new directory_request_t API and add some assertions
2017-04-21 15:42:03 -04:00
Nick Mathewson
3327e675fd
Remove old directory_initiate_command_*() functions.
2017-04-21 15:14:52 -04:00
Nick Mathewson
c300fd7e65
Have directory_get_from_all_authorities use requests.
2017-04-21 14:31:35 -04:00
Nick Mathewson
a55bd00b0f
continue refactoring directory API: remove initiate_command_rend
...
This commit mainly moves the responsibility for directory request
construction one level higher. It also allows a directory request
to contain a pointer to a routerstatus, which will get turned into
the correct contact information at the last minute.
2017-04-21 14:18:06 -04:00
Alexander Færøy
e8b025dfc3
Rename zlib_compression_level_t
to compression_level_t
.
...
See https://bugs.torproject.org/21663
2017-04-17 14:22:13 +02:00
Nick Mathewson
91a6fbcf77
Begin work to turn "directory request" into an object
...
This patch adds the object type, and makes all of the functions
that used to feed into directory_initiate_command_rend() feed into
that type instead.
2017-04-16 18:45:48 -04:00
Nick Mathewson
208c2a5c74
Merge branch 'spooling_squashed'
2017-03-28 19:55:18 +02:00
Nick Mathewson
8aa69a1b69
Refactor the directory spool implementation
...
The old implementation had duplicated code in a bunch of places, and
it interspersed spool-management with resource management. The new
implementation should make it easier to add new resource types and
maintain the spooling code.
Closing ticket 21651.
2017-03-28 19:55:03 +02:00