Adjust control_reason when adjusting reason (related to 7902)

This commit is contained in:
Nick Mathewson 2013-01-16 12:52:15 -05:00
parent d1b5ae903f
commit e53e6caac5

View File

@ -710,7 +710,7 @@ connection_ap_process_end_not_open(
struct in_addr in; struct in_addr in;
node_t *exitrouter; node_t *exitrouter;
int reason = *(cell->payload+RELAY_HEADER_SIZE); int reason = *(cell->payload+RELAY_HEADER_SIZE);
int control_reason = reason | END_STREAM_REASON_FLAG_REMOTE; int control_reason;
edge_connection_t *edge_conn = ENTRY_TO_EDGE_CONN(conn); edge_connection_t *edge_conn = ENTRY_TO_EDGE_CONN(conn);
(void) layer_hint; /* unused */ (void) layer_hint; /* unused */
@ -738,6 +738,8 @@ connection_ap_process_end_not_open(
reason = END_STREAM_REASON_MISC; reason = END_STREAM_REASON_MISC;
} }
control_reason = reason | END_STREAM_REASON_FLAG_REMOTE;
if (edge_reason_is_retriable(reason) && if (edge_reason_is_retriable(reason) &&
/* avoid retry if rend */ /* avoid retry if rend */
!connection_edge_is_rendezvous_stream(edge_conn)) { !connection_edge_is_rendezvous_stream(edge_conn)) {