Nick Mathewson
baf489fc08
Fix: our directory.c code expects header constants to end with a :
2017-05-04 08:57:34 -04:00
Nick Mathewson
e1d31f2a2f
Update the consdiff directory code based on #22143 fixes
...
These are mostly just identifier renames, except for one place in
routerparse.c where we switch to using a correct hash.
2017-05-04 08:49:02 -04:00
Nick Mathewson
a8eccb6363
Turn DEFAULT_IF_MODIFIED_SINCE_DELAY into a const
2017-05-04 08:37:41 -04:00
Nick Mathewson
c12d2cb2dc
Request (and try to use) consensus diffs.
2017-05-04 08:37:41 -04:00
Nick Mathewson
912b0641e9
Generate X-Or-Diff-From-Consensus headers correctly.
2017-05-04 08:37:41 -04:00
Nick Mathewson
94ae99067f
Remove excess indentation from previous commit.
...
Review this with 'diff -b' to confirm
2017-05-04 08:37:41 -04:00
Nick Mathewson
afa39cef6c
Extract the consensus-only part of directory_get_from_dirserver
...
Right now it just sets an if-modified-since header, but it's about
to get even bigger.
This patch avoids changing indentation; the next patch will be
whitespace fixes.
2017-05-04 08:37:41 -04:00
Nick Mathewson
57710c1587
New function to add additional headers to a directory request
2017-05-04 08:37:41 -04:00
Nick Mathewson
0418357ffd
Serve consensus diffs on request.
2017-05-04 08:37:41 -04:00
Nick Mathewson
e5f82969ca
Support writing Content-Encoding headers other than deflate
...
Right now this only sends "deflate" or "identity", but there's more
to come.
2017-05-04 08:37:41 -04:00
Nick Mathewson
e051c47e98
Remove old unused indentation from handle_get_current_consensus
...
This commit removes a pair of meaningless braces, and changes
whitespace only.
2017-05-04 08:37:41 -04:00
Nick Mathewson
e0c937f316
Reindent the just-extracted directory response handler functions
2017-05-02 13:11:44 -04:00
Nick Mathewson
db86b9194d
Break connection_dir_client_reached_eof() into smaller functions
...
This was a >630-line function, which doesn't make anybody happy. It
was also mostly composed of a bunch of if-statements that handled
different directory responses differently depending on the original
purpose of the directory connection. The logical refactoring here
is to move the body of each switch statement into a separate handler
function, and to invoke those functions from a separate switch
statement.
This commit leaves whitespace mostly untouched, for ease of review.
I'll reindent in the next commit.
2017-05-02 13:06:25 -04:00
Nick Mathewson
480dab4f2f
Use a cast to try to avoid a tautalogical comparison warning
2017-04-27 11:58:26 -04:00
Nick Mathewson
10a4f9cd07
Merge branch 'parse_accept_encoding'
2017-04-27 11:31:31 -04:00
Nick Mathewson
2903c329aa
Move the "supported compression bitmask" into compress.[ch]
2017-04-27 11:30:51 -04:00
Nick Mathewson
33a2fd065d
Merge branch 'dirreq'
2017-04-27 10:08:32 -04:00
Nick Mathewson
52316f9969
Include UPLOAD_RENDDESC_V2 in PURPOSE_IS_UPLOAD
...
This was only used in one place before, and it's safe to update it.
2017-04-27 09:27:00 -04:00
Nick Mathewson
65ff0f8267
Bitmask out the compression methods that we do not support
2017-04-25 19:07:17 -04:00
Nick Mathewson
fec3050ea9
Tests for parse_accept_encoding
2017-04-25 19:01:05 -04:00
Nick Mathewson
fd48b757d3
Parse recognized entries from the Accept-Encoding header.
2017-04-25 19:01:05 -04:00
Nick Mathewson
d8ff01b2b4
Refactor directory_command_should_use_begindir to use directory_request_t
2017-04-21 15:55:23 -04:00
Nick Mathewson
2a99bf008d
move the definition of directory_command_should_use_begindir
2017-04-21 15:54:50 -04:00
Nick Mathewson
cc677e88d4
Refactor directory_send_command to take a directory_request_t
2017-04-21 15:49:10 -04:00
Nick Mathewson
900d36e3b1
Rename, revise, and document directory_request_is_dir_specified.
2017-04-21 15:42:09 -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
4ae65bb5d3
Refactor directory_get_from_dirserver to use request API.
2017-04-21 14:40:48 -04:00
Nick Mathewson
eee733be33
Refactor directory_post_to_dirservers to use requests
2017-04-21 14:35:42 -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
b8c9f229d7
Rename write_to_buf_zlib()
to write_to_buf_compress()
.
...
See https://bugs.torproject.org/21663
2017-04-18 01:23:39 +02:00
Alexander Færøy
4b9349192d
Rename zlib_state
to compress_state
in dir_connection_t
.
...
This patch renames the `zlib_state` field in `dir_connection_t` to
`compress_state`.
See https://bugs.torproject.org/21663
2017-04-18 01:10:25 +02:00
Alexander Færøy
3c4459bcbf
Refactor the streaming compression code.
...
This patch refactors our streaming compression code to allow us to
extend it with non-zlib/non-gzip based compression schemas.
See https://bugs.torproject.org/21663
2017-04-17 14:57:37 +02:00
Alexander Færøy
44cb86adbe
Rename tor_gzip_{compress,uncompress}
to tor_{compress,uncompress}
.
...
To allow us to use the API name `tor_compress` and `tor_uncompress` as
the main entry-point for all compression/uncompression and not just gzip
and zlib.
See https://bugs.torproject.org/21663
2017-04-17 14:29:10 +02: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
003a7fe2a3
Add nonfatal asserts for return val of dirserv_flushed_some
2017-03-28 19:55:04 +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
Nick Mathewson
7505f452c8
Run the copyright update script.
2017-03-15 16:13:17 -04:00
Nick Mathewson
1421f75331
Merge branch 'maint-0.3.0'
2017-02-27 11:03:25 -05:00
Nick Mathewson
2b3518b81f
Merge remote-tracking branch 'teor/bug20711' into maint-0.3.0
2017-02-27 11:00:02 -05:00
Nick Mathewson
65b012c90b
Fix a wide line
2017-02-27 10:58:26 -05:00
Nick Mathewson
135a0c2054
Fix a "directive within macro arguments" warning
2017-02-27 10:58:19 -05:00
Nick Mathewson
0e7d2882f9
Merge remote-tracking branch 'ahf/bugs/21206'
2017-02-27 10:53:12 -05:00
Alexander Færøy
3848d23643
Save number of sent/received RELAY_DATA cells for directory connections.
...
This patch makes us store the number of sent and received RELAY_DATA
cells used for directory connections. We log the numbers after we have
received an EOF in connection_dir_client_reached_eof() from the
directory server.
2017-02-16 15:11:53 +00:00
David Goulet
3336f26e60
hs: Avoid a strlen(NULL) if descriptor is not found in cache
...
Instead of returning 404 error code, this led to a NULL pointer being used and
thus a crash of tor.
Fixes #21471
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-02-15 10:27:41 -05:00
Alexander Færøy
89334a040d
Remove unused variable in directory_command_should_use_begindir()
...
This patch removes the unused router_purpose variable in
directory_command_should_use_begindir().
2017-02-10 23:01:52 +00:00