]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
some more debugging aids
authorRoger Dingledine <arma@torproject.org>
Sun, 21 Nov 2004 09:39:01 +0000 (09:39 +0000)
committerRoger Dingledine <arma@torproject.org>
Sun, 21 Nov 2004 09:39:01 +0000 (09:39 +0000)
svn:r2929

src/or/connection_edge.c
src/or/or.h
src/or/relay.c

index 7a79bab63e2cb61c75c8b6b2c39c006894ee6635..ecd2b0d0ee627244476ecd79658b10a3ac05ea7f 100644 (file)
@@ -52,7 +52,7 @@ int connection_edge_process_inbuf(connection_t *conn, int package_partial) {
     return 0;
 #else
     /* eof reached, kill it. */
-    log_fn(LOG_INFO,"conn (fd %d) reached eof. Closing.", conn->s);
+    log_fn(LOG_INFO,"conn (fd %d) reached eof (stream size %d). Closing.", conn->s, (int)conn->stream_size);
     connection_edge_end(conn, END_STREAM_REASON_DONE, conn->cpath_layer);
     if(!conn->marked_for_close) {
       /* only mark it if not already marked. it's possible to
index d5825f3b75a375e712a494cdcb5353c7af5a3853..fdcd3200a2197efe6cf9cd649a3683246b2ea717 100644 (file)
@@ -547,6 +547,7 @@ struct connection_t {
                                            * querying for? (DIR/AP only) */
 
 /* Used only by edge connections: */
+  size_t stream_size; /**< Used for debugging. */
   uint16_t stream_id;
   struct connection_t *next_stream; /**< Points to the next stream at this
                                      * edge, if any (Edge only). */
index 69ca8ce85a964e100ca2ad80763e8906fb6e977c..01d8edf84fd773b875d909005460102349fda6fa 100644 (file)
@@ -702,6 +702,10 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ,
       }
 
       stats_n_data_bytes_received += rh.length;
+      if(conn->type == CONN_TYPE_AP) {
+        log_fn(LOG_DEBUG,"%d: stream size now %d.", conn->s, (int)conn->stream_size);
+        conn->stream_size += rh.length;
+      }
       connection_write_to_buf(cell->payload + RELAY_HEADER_SIZE,
                               rh.length, conn);
       connection_edge_consider_sending_sendme(conn);
@@ -713,9 +717,10 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ,
         return 0;
       }
 /* XXX add to this log_fn the exit node's nickname? */
-      log_fn(LOG_INFO,"end cell (%s) for stream %d. Removing stream.",
+      log_fn(LOG_INFO,"%d: end cell (%s) for stream %d. Removing stream. Size %d.",
+        conn->s,
         connection_edge_end_reason(cell->payload+RELAY_HEADER_SIZE, rh.length),
-        conn->stream_id);
+        conn->stream_id, (int)conn->stream_size);
 
 #ifdef HALF_OPEN
       conn->done_sending = 1;
@@ -899,6 +904,10 @@ repeat_connection_edge_package_raw_inbuf:
 
   log_fn(LOG_DEBUG,"(%d) Packaging %d bytes (%d waiting).", conn->s,
          (int)length, (int)buf_datalen(conn->inbuf));
+  if (conn->type == CONN_TYPE_EXIT) {
+    conn->stream_size += length;
+    log_fn(LOG_DEBUG,"%d: Stream size now %d.", conn->s, (int)conn->stream_size);
+  }
 
   if(connection_edge_send_command(conn, circ, RELAY_COMMAND_DATA,
                                payload, length, conn->cpath_layer) < 0)