tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit d1e0e486e9eafa7ba44e3ed49ce1b92fec9c7201
parent 66aff2d8f35217cc802bd46eeeaf49326d7de4b0
Author: Nick Mathewson <nickm@torproject.org>
Date:   Wed,  6 Sep 2017 14:55:58 -0400

Stop clearing the is_client flag on channel directly

Diffstat:
Msrc/or/channel.c | 14++++++++++++++
Msrc/or/channel.h | 1+
Msrc/or/command.c | 2+-
3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/or/channel.c b/src/or/channel.c @@ -4097,6 +4097,20 @@ channel_mark_client(channel_t *chan) } /** + * Clear the client flag + * + * Mark a channel as being _not_ from a client + */ + +void +channel_clear_client(channel_t *chan) +{ + tor_assert(chan); + + chan->is_client = 0; +} + +/** * Get the canonical flag for a channel * * This returns the is_canonical for a channel; this flag is determined by diff --git a/src/or/channel.h b/src/or/channel.h @@ -671,6 +671,7 @@ int channel_is_local(channel_t *chan); int channel_is_incoming(channel_t *chan); int channel_is_outgoing(channel_t *chan); void channel_mark_client(channel_t *chan); +void channel_clear_client(channel_t *chan); int channel_matches_extend_info(channel_t *chan, extend_info_t *extend_info); int channel_matches_target_addr_for_extend(channel_t *chan, const tor_addr_t *target); diff --git a/src/or/command.c b/src/or/command.c @@ -331,7 +331,7 @@ command_process_create_cell(cell_t *cell, channel_t *chan) // Needed for chutney: Sometimes relays aren't in the consensus yet, and // get marked as clients. This resets their channels once they appear. // Probably useful for normal operation wrt relay flapping, too. - chan->is_client = 0; + channel_clear_client(chan); } else { channel_mark_client(chan); }