Commit graph

1253 commits

Author SHA1 Message Date
Nick Mathewson
d9e211ab70 Use semicolons after HT_PROTOTYPE and HT_GENERATE. 2020-02-10 12:54:43 -05:00
cypherpunks
32b33c0d21 protover: reject unexpected commas
Consistently reject extra commas, instead of only rejecting leading
commas.

Fix on b2b2e1c7f2.
Fixes #27194; bugfix on 0.2.9.4-alpha.
2020-02-09 01:24:47 +00:00
teor
c8ba2c4730
mainloop: Simplify ip_address_changed()
Simplify ip_address_changed() by removing redundant checks
(all exits are relays, and need to rebuild their descriptor when their
IP addresses change).

Rewrite the function comment, and rename the argument, so the function
is easier to understand and use.

Closes 33091.
2020-01-29 18:23:38 +10:00
teor
d873674fb3
connection: Improve function comments
Improve the function comments on connection_finished_connecting(),
to describe what the function actually does.

Part of 33091.
2020-01-29 18:22:21 +10:00
George Kadianakis
ba99287d13 Write unittest that covers cases of INTRODUCE1 handling.
Also fix some memleaks of other OB unittests.
2020-01-28 01:08:41 +02:00
Nick Mathewson
46e6a4819a Define a variant of hs_ntor that takes multiple subcredentials. 2020-01-21 10:31:29 -05:00
Nick Mathewson
4532c7ef6a Turn hs_subcredential_t into a proper struct. 2020-01-21 10:31:29 -05:00
teor
bf2a399fc0
config: Make clients tell dual-stack exits they prefer IPv6
Make Tor clients tell dual-stack exits that they prefer IPv6
connections.

This change is equivalent to setting the PreferIPv6 flag on
SOCKSPorts (and most other listener ports). Tor Browser has
been setting this flag for some time, and we want to remove a
client distinguisher at exits.

Also update the man page, putting all the IP flags in their
non-default forms.

Closes ticket 32637.
2020-01-20 16:36:58 +10:00
Nick Mathewson
5086b16055 Merge remote-tracking branch 'tor-github/pr/1529' 2020-01-17 08:49:56 -05:00
Nick Mathewson
abd9ae48ac Merge branch 'ticket32487_squashed_and_merged' 2020-01-17 07:50:50 -05:00
Nick Mathewson
01fdc3240f Merge branch 'ticket32695_squashed' 2020-01-16 16:42:01 -05:00
Nick Mathewson
ceacda44f1 Remove functions that checked for pre-ipv6 consensus.
We no longer need or need to test:
  * node_awaiting_ipv6()
  * networkstatus_consensus_has_ipv6().
2020-01-16 16:41:53 -05:00
Nick Mathewson
3c89622e39 Merge branch 'ticket32487_squashed' into ticket32487_squashed_and_merged
Resolved conflicts in src/core/include.am
2020-01-16 07:57:37 -05:00
Nick Mathewson
6ba4b5e5da Rename dirclient_modes.h identifiers to start with dirclient_
This is an automated commit, generated by this command:

./scripts/maint/rename_c_identifier.py \
        directory_must_use_begindir dirclient_must_use_begindir \
        directory_fetches_from_authorities dirclient_fetches_from_authorities \
        directory_fetches_dir_info_early dirclient_fetches_dir_info_early \
        directory_fetches_dir_info_later dirclient_fetches_dir_info_later \
        directory_too_idle_to_fetch_descriptors dirclient_too_idle_to_fetch_descriptors
2020-01-16 07:48:17 -05:00
Nick Mathewson
773bcf5629 Move dirclient-related functions out of dirserv, and reenable them
I had incorrectly identified these functions as dircache-only, when
in fact they apply to everyone who acts a directory client.
2020-01-16 07:48:17 -05:00
Nick Mathewson
8a0c739467 Disable feature/dircache files when dircache module is disabled.
To make Tor still work, we define a minimal dircache_stub.c file
that defines the entry points to the module that can actually be
seen by the compiler when we're building with dircache and relay
disabled.
2020-01-16 07:48:17 -05:00
Nick Mathewson
6e12a8f047 Use dir_conn_clear_spool() in connection.c.
This is cleaner than iterating over the spool.
2020-01-16 07:48:17 -05:00
teor
fb541ffca3
Merge branch 'maint-0.4.0' into maint-0.4.1 2020-01-16 10:00:40 +10:00
teor
026f068bb3
Merge branch 'maint-0.3.5' into maint-0.4.0 2020-01-16 10:00:32 +10:00
teor
19954cffd7
Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5 2020-01-16 09:57:27 +10:00
Nick Mathewson
5e70c27e85 Merge remote-tracking branch 'tor-github/pr/1657' 2020-01-15 13:10:14 -05:00
Nick Mathewson
08bbb6b8d9 Merge branch 'ticket32892_043_01_squashed' 2020-01-14 13:31:20 -05:00
David Goulet
59dac38ebe chan: Remove dead var cell handler from channel_t
The variable lenght cells are handled directly by
channel_tls_handle_var_cell() from an OR connection reading its inbuf. The
channel var cell handler (agnostic) was never used.

Closes #32892

Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-01-14 13:31:08 -05:00
Nick Mathewson
73ac1add3f Split core/include.am into per-subdirectory include.am files
Closes ticket 32137.
2020-01-13 09:34:17 -05:00
Nick Mathewson
e45810113b Merge branch 'pre_formatter_cleanups_squashed' 2020-01-09 07:32:39 -05:00
Nick Mathewson
2f7a2c42d2 Include ht.h in all headers that use HT_ENTRY()
Without this change, compilation success depends on include order in
several tricky ways.
2020-01-09 07:30:35 -05:00
Nick Mathewson
8b7eeea39d connection.h: new includes and struct declarations
Using these frees us from several dependencies on include order.
2020-01-09 07:30:35 -05:00
Nick Mathewson
6a6486a7bf hs_circuit: use struct declaration.
This frees us from a dependency on include order.
2020-01-09 07:30:35 -05:00
Nick Mathewson
a48cb9fa43 core/include.am: spelling fix 2020-01-08 20:50:02 -05:00
Nick Mathewson
4f02812242 It's 2020. Update the copyright dates with "make update-copyright" 2020-01-08 18:39:17 -05:00
Nick Mathewson
2d27a3ecc0 Run "make autostyle"; add an endif comment 2020-01-08 18:38:24 -05:00
Nick Mathewson
f2aeaaf71d Add new state to connection_proxy_state_to_string()
Also, add a CTASSERT() to make sure that we don't let this array get
out-of-sync again.

Found by coverity; this is CID 1457528.
2020-01-07 08:09:27 -05:00
Nick Mathewson
1b63eea66c Merge branch 'haxxpop/tcp_proxy_squashed' into tcp_proxy_squshed_and_merged 2020-01-06 13:41:20 -05:00
Suphanat Chunhapanya
de58a49a2d test: HAPRoxy protocol 2020-01-06 13:39:10 -05:00
Suphanat Chunhapanya
119004e87d circuit: Implement haproxy 2020-01-06 13:39:10 -05:00
teor
8c23ac4ae7 Replace several C identifiers.
This is an automated commit, generated by this command:

./scripts/maint/rename_c_identifier.py \
        EXPOSE_CLEAN_BACKTRACE BACKTRACE_PRIVATE \
        TOR_CHANNEL_INTERNAL_ CHANNEL_OBJECT_PRIVATE \
        CHANNEL_PRIVATE_ CHANNEL_FILE_PRIVATE \
        EXPOSE_ROUTERDESC_TOKEN_TABLE ROUTERDESC_TOKEN_TABLE_PRIVATE \
        SCHEDULER_PRIVATE_ SCHEDULER_PRIVATE
2019-12-20 13:27:58 +10:00
teor
cd160291a7
Code Style: Delete headers that are included twice
These changes were created using the "make autostyle" from
32522, and then split into commits.
2019-12-20 09:53:31 +10:00
teor
d8b868e483
Code Style: Delete PRIVATE defines that are never used
Some ".c" files define *_PRIVATE macros, but those macros are
not used in any header file. Delete them.

These changes were created using the "make autostyle" from
32522, and then split into commits.
2019-12-20 09:50:50 +10:00
Nick Mathewson
ffa3499d81 Add config object for dirauth; move one option there.
I've chosen the "AuthDirMaxServersPerAddr" option here for
simplicity, since it is used literally nowhere else besides the dirauth
module.  Once we have all the infrastructure in place for this, we
can move more options into this structure.
2019-12-19 07:54:56 -05:00
Nick Mathewson
5e2318165d Add "stub" files for disabled modules.
These modules are only built when the selected modules are disabled.
The provide stub implementations of the subsystem blocks.  Later,
other stub implementations could move here.

Having real subsystem blocks here will let us handle disabled
configuration options better.
2019-12-19 07:54:56 -05:00
David Goulet
fc32349adc hs-v3: Handle client rendezvous circuit timeout
With v3, the "pending_final_cpath" of a circuit is always NULL which means
that for v3, established client rendezvous circuit waiting for the intro point
to ACK, will always end up timing out quickly.

This can increase the delays to which you connect to a service since in order
to succeed, the rendezvous circuit needs to fully established
(CIRCUIT_PURPOSE_C_REND_JOINED) within the cutoff of the introduction circuit
as well which is these days around 2-3 seconds.

Fixes #32021

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-12-10 18:33:48 +02:00
Nick Mathewson
f63cf2158b Merge branch 'ticket32207' 2019-12-02 11:41:40 -05:00
George Kadianakis
68a00c4951 Merge branch 'tor-github/pr/1573' 2019-11-27 15:36:26 +02:00
David Goulet
cbc495453c hs-v3: Give a cleanup type to hs_circ_cleanup()
By centralizing the circuit cleanup type that is: on close, free and
repurpose, some actions on the circuit can not happen for a certain cleanup
type or for all types.

This passes a cleanup type so the HS subsystem (v2 and v3) can take actions
based on the type of cleanup.

For instance, there is slow code that we do not run on a circuit close but
rather only on free.

Part of #32020

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-27 14:52:09 +02:00
teor
26071aa3be
Merge branch 'maint-0.4.0' into maint-0.4.1 2019-11-25 12:37:07 +10:00
teor
055f5d4d1b
Merge branch 'maint-0.3.5' into maint-0.4.0 2019-11-25 12:36:59 +10:00
teor
c17ab20ac0
Merge remote-tracking branch 'tor-github/pr/1441' into maint-0.4.0 2019-11-25 12:36:41 +10:00
teor
400cee261e
Merge remote-tracking branch 'tor-github/pr/1422' into maint-0.3.5 2019-11-25 12:34:29 +10:00
teor
54c01119ed
Merge remote-tracking branch 'tor-github/pr/1405' into maint-0.3.5 2019-11-25 12:33:55 +10:00
David Goulet
709d7fba11 hs-v3: Return bad address SOCKS5 extended error
If ExtendedErrors is set for the SocksPort, an invalid .onion address now
returns the 0xF6 error code per prop304.

Closes #30022

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-21 13:02:29 +02:00