]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Bug 26117: Move CIRC_BW field accounting.
authorMike Perry <mikeperry-git@torproject.org>
Tue, 15 May 2018 18:44:25 +0000 (18:44 +0000)
committerMike Perry <mikeperry-git@torproject.org>
Tue, 15 May 2018 18:58:24 +0000 (18:58 +0000)
Previously, we used the AF_UNSPEC check to represent valid connected cell
data as a result of the lack of return. This was incorrect.

src/or/relay.c

index 15aa5557b4a354da372aca22eeb551d3fddd4230..4a089329864f6be1e8ab346d6b590e0b39bd634c 100644 (file)
@@ -1339,9 +1339,6 @@ connection_edge_process_relay_cell_not_open(
                                 entry_conn->chosen_exit_name, ttl);
 
       remap_event_helper(entry_conn, &addr);
-
-      /* This is valid data at this point. Count it */
-      circuit_read_valid_data(TO_ORIGIN_CIRCUIT(circ), rh->length);
     }
     circuit_log_path(LOG_INFO,LD_APP,TO_ORIGIN_CIRCUIT(circ));
     /* don't send a socks reply to transparent conns */
@@ -1380,6 +1377,9 @@ connection_edge_process_relay_cell_not_open(
       entry_conn->pending_optimistic_data = NULL;
     }
 
+    /* This is valid data at this point. Count it */
+    circuit_read_valid_data(TO_ORIGIN_CIRCUIT(circ), rh->length);
+
     /* handle anything that might have queued */
     if (connection_edge_package_raw_inbuf(conn, 1, NULL) < 0) {
       /* (We already sent an end cell if possible) */