Преглед на файлове

Improve "Tried to establish rendezvous on non-OR or non-edge circuit"

Instead of putting it all in one warning message, log what exactly
was wrong with the circuit.

Resolves ticket 12997.
Nick Mathewson преди 11 години
родител
ревизия
4a6f5bb2dd
променени са 2 файла, в които са добавени 12 реда и са изтрити 2 реда
  1. 3 0
      changes/bug12997
  2. 9 2
      src/or/rendmid.c

+ 3 - 0
changes/bug12997

@@ -0,0 +1,3 @@
+  o Minor features:
+    - Log more specific warnings when we get an ESTABLISH_RENDEZVOUS cell
+      on a cannibalized or non-OR circuit. Resolves ticket 12997.

+ 9 - 2
src/or/rendmid.c

@@ -224,9 +224,16 @@ rend_mid_establish_rendezvous(or_circuit_t *circ, const uint8_t *request,
   log_info(LD_REND, "Received an ESTABLISH_RENDEZVOUS request on circuit %u",
            (unsigned)circ->p_circ_id);
 
-  if (circ->base_.purpose != CIRCUIT_PURPOSE_OR || circ->base_.n_chan) {
+  if (circ->base_.purpose != CIRCUIT_PURPOSE_OR) {
+    log_warn(LD_PROTOCOL,
+             "Tried to establish rendezvous on non-OR circuit with purpose %s",
+             circuit_purpose_to_string(circ->base_.purpose));
+    goto err;
+  }
+
+  if (circ->base_.n_chan) {
     log_warn(LD_PROTOCOL,
-             "Tried to establish rendezvous on non-OR or non-edge circuit.");
+             "Tried to establish rendezvous on non-edge circuit");
     goto err;
   }