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:
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);
}