|
@@ -257,8 +257,13 @@ circuit_receive_relay_cell(cell_t *cell, circuit_t *circ,
|
|
|
log_debug(LD_OR,"Sending to origin.");
|
|
|
if ((reason = connection_edge_process_relay_cell(cell, circ, conn,
|
|
|
layer_hint)) < 0) {
|
|
|
- log_warn(LD_OR,
|
|
|
- "connection_edge_process_relay_cell (at origin) failed.");
|
|
|
+
|
|
|
+ * END_CIRC_AT_ORIGIN is sent back so we can then close the circuit.
|
|
|
+ * Do not log warn as this is an expected behavior for a service. */
|
|
|
+ if (reason != END_CIRC_AT_ORIGIN) {
|
|
|
+ log_warn(LD_OR,
|
|
|
+ "connection_edge_process_relay_cell (at origin) failed.");
|
|
|
+ }
|
|
|
return reason;
|
|
|
}
|
|
|
}
|