From d1e0e486e9eafa7ba44e3ed49ce1b92fec9c7201 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 6 Sep 2017 14:55:58 -0400 Subject: [PATCH] Stop clearing the is_client flag on channel directly --- src/or/channel.c | 14 ++++++++++++++ src/or/channel.h | 1 + src/or/command.c | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/or/channel.c b/src/or/channel.c index 9f8a03683f..ea113903af 100644 --- a/src/or/channel.c +++ b/src/or/channel.c @@ -4096,6 +4096,20 @@ channel_mark_client(channel_t *chan) chan->is_client = 1; } +/** + * 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 * diff --git a/src/or/channel.h b/src/or/channel.h index 2d0ec39924..a5a87de136 100644 --- 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 index 2c82984901..46d3b6291c 100644 --- 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); }