Parcourir la source

some more debugging aids

svn:r2929
Roger Dingledine il y a 20 ans
Parent
commit
671d84dc2f
3 fichiers modifiés avec 13 ajouts et 3 suppressions
  1. 1 1
      src/or/connection_edge.c
  2. 1 0
      src/or/or.h
  3. 11 2
      src/or/relay.c

+ 1 - 1
src/or/connection_edge.c

@@ -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

+ 1 - 0
src/or/or.h

@@ -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). */

+ 11 - 2
src/or/relay.c

@@ -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)