Browse Source

Restore 8093 log messages to WARN severity, but rate limit

See #8093 for discussion
Nick Mathewson 11 years ago
parent
commit
f5820a1bf1
2 changed files with 7 additions and 2 deletions
  1. 3 0
      changes/bug8093.part2
  2. 4 2
      src/or/relay.c

+ 3 - 0
changes/bug8093.part2

@@ -0,0 +1,3 @@
+  o Minor features:
+    - Return the "unexpected sendme" warnings to a warn severity, but make
+      them rate limited. Related to ticket #8093.

+ 4 - 2
src/or/relay.c

@@ -1494,7 +1494,8 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ,
         if (layer_hint) {
           if (layer_hint->package_window + CIRCWINDOW_INCREMENT >
                 CIRCWINDOW_START_MAX) {
-            log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL,
+            static struct ratelim_t exit_warn_ratelim = RATELIM_INIT(600);
+            log_fn_ratelim(&exit_warn_ratelim, LOG_WARN, LD_PROTOCOL,
                    "Unexpected sendme cell from exit relay. "
                    "Closing circ.");
             return -END_CIRC_REASON_TORPROTOCOL;
@@ -1506,7 +1507,8 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ,
         } else {
           if (circ->package_window + CIRCWINDOW_INCREMENT >
                 CIRCWINDOW_START_MAX) {
-            log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL,
+            static struct ratelim_t client_warn_ratelim = RATELIM_INIT(600);
+            log_fn_ratelim(&client_warn_ratelim, LOG_WARN, LD_PROTOCOL,
                    "Unexpected sendme cell from client. "
                    "Closing circ (window %d).",
                    circ->package_window);