[tor-commits] [tor/master] Log find_rp_for_intro_() failures at LOG_PROTOCOL_WARN.

nickm at torproject.org nickm at torproject.org
Wed May 11 16:37:00 UTC 2016


commit b59d79134e1089d310278a70788401835c1e5c10
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Apr 26 20:46:44 2016 -0400

    Log find_rp_for_intro_() failures at LOG_PROTOCOL_WARN.
    
    Closes ticket 18761.
    
    Also fix a whitespace issue.
---
 changes/bug18761     |  3 +++
 src/or/rendservice.c | 15 ++++++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/changes/bug18761 b/changes/bug18761
new file mode 100644
index 0000000..78500a8
--- /dev/null
+++ b/changes/bug18761
@@ -0,0 +1,3 @@
+  o Minor feature (logging):
+    - When rejecting a misformed INTRODUCE2 cell, only log at PROTOCOL_WARN
+      severity. Closes ticket 18761.
diff --git a/src/or/rendservice.c b/src/or/rendservice.c
index 39e5831..6f41f3b 100644
--- a/src/or/rendservice.c
+++ b/src/or/rendservice.c
@@ -1445,6 +1445,7 @@ rend_service_receive_introduction(origin_circuit_t *circuit,
   int status = 0, result;
   const or_options_t *options = get_options();
   char *err_msg = NULL;
+  int err_msg_severity = LOG_WARN;
   const char *stage_descr = NULL;
   int reason = END_CIRC_REASON_TORPROTOCOL;
   /* Service/circuit/key stuff we can learn before parsing */
@@ -1596,8 +1597,10 @@ rend_service_receive_introduction(origin_circuit_t *circuit,
 
   /* Find the rendezvous point */
   rp = find_rp_for_intro(parsed_req, &err_msg);
-  if (!rp)
+  if (!rp) {
+    err_msg_severity = LOG_PROTOCOL_WARN;
     goto log_error;
+  }
 
   /* Check if we'd refuse to talk to this router */
   if (options->StrictNodes &&
@@ -1735,7 +1738,7 @@ rend_service_receive_introduction(origin_circuit_t *circuit,
     }
   }
 
-  log_warn(LD_REND, "%s on circ %u", err_msg,
+  log_fn(err_msg_severity, LD_REND, "%s on circ %u", err_msg,
            (unsigned)circuit->base_.n_circ_id);
  err:
   status = -1;
@@ -1797,7 +1800,7 @@ find_rp_for_intro(const rend_intro_cell_t *intro,
     if (!rp) {
       if (err_msg_out) {
         tor_asprintf(&err_msg,
-                     "Could build extend_info_t for router %s named "
+                     "Couldn't build extend_info_t for router %s named "
                      "in INTRODUCE2 cell",
                      escaped_safe_str_client(rp_nickname));
       }
@@ -1833,8 +1836,10 @@ find_rp_for_intro(const rend_intro_cell_t *intro,
   goto done;
 
  err:
-  if (err_msg_out) *err_msg_out = err_msg;
-  else tor_free(err_msg);
+  if (err_msg_out)
+    *err_msg_out = err_msg;
+  else
+    tor_free(err_msg);
 
  done:
   return rp;





More information about the tor-commits mailing list