Browse Source

Merge remote-tracking branch 'dgoulet/ticket19254_032_01'

Nick Mathewson 6 years ago
parent
commit
962b0b849b
2 changed files with 25 additions and 6 deletions
  1. 3 0
      changes/feature19254
  2. 22 6
      src/or/control.c

+ 3 - 0
changes/feature19254

@@ -0,0 +1,3 @@
+  o Minor features (controller):
+    - Adds a timestamp field to the CIRC_BW and STREAM_BW bandwidth
+      events. Closes ticket 19254. Patch by "DonnchaC".

+ 22 - 6
src/or/control.c

@@ -5587,15 +5587,20 @@ control_event_stream_bandwidth(edge_connection_t *edge_conn)
 {
   circuit_t *circ;
   origin_circuit_t *ocirc;
+  struct timeval now;
+  char tbuf[ISO_TIME_USEC_LEN+1];
   if (EVENT_IS_INTERESTING(EVENT_STREAM_BANDWIDTH_USED)) {
     if (!edge_conn->n_read && !edge_conn->n_written)
       return 0;
 
+    tor_gettimeofday(&now);
+    format_iso_time_nospace_usec(tbuf, &now);
     send_control_event(EVENT_STREAM_BANDWIDTH_USED,
-                       "650 STREAM_BW "U64_FORMAT" %lu %lu\r\n",
+                       "650 STREAM_BW "U64_FORMAT" %lu %lu %s\r\n",
                        U64_PRINTF_ARG(edge_conn->base_.global_identifier),
                        (unsigned long)edge_conn->n_read,
-                       (unsigned long)edge_conn->n_written);
+                       (unsigned long)edge_conn->n_written,
+                       tbuf);
 
     circ = circuit_get_by_edge_conn(edge_conn);
     if (circ && CIRCUIT_IS_ORIGIN(circ)) {
@@ -5617,6 +5622,8 @@ control_event_stream_bandwidth_used(void)
   if (EVENT_IS_INTERESTING(EVENT_STREAM_BANDWIDTH_USED)) {
     smartlist_t *conns = get_connection_array();
     edge_connection_t *edge_conn;
+    struct timeval now;
+    char tbuf[ISO_TIME_USEC_LEN+1];
 
     SMARTLIST_FOREACH_BEGIN(conns, connection_t *, conn)
     {
@@ -5626,11 +5633,14 @@ control_event_stream_bandwidth_used(void)
         if (!edge_conn->n_read && !edge_conn->n_written)
           continue;
 
+        tor_gettimeofday(&now);
+        format_iso_time_nospace_usec(tbuf, &now);
         send_control_event(EVENT_STREAM_BANDWIDTH_USED,
-                           "650 STREAM_BW "U64_FORMAT" %lu %lu\r\n",
+                           "650 STREAM_BW "U64_FORMAT" %lu %lu %s\r\n",
                            U64_PRINTF_ARG(edge_conn->base_.global_identifier),
                            (unsigned long)edge_conn->n_read,
-                           (unsigned long)edge_conn->n_written);
+                           (unsigned long)edge_conn->n_written,
+                           tbuf);
 
         edge_conn->n_written = edge_conn->n_read = 0;
     }
@@ -5646,6 +5656,8 @@ int
 control_event_circ_bandwidth_used(void)
 {
   origin_circuit_t *ocirc;
+  struct timeval now;
+  char tbuf[ISO_TIME_USEC_LEN+1];
   if (!EVENT_IS_INTERESTING(EVENT_CIRC_BANDWIDTH_USED))
     return 0;
 
@@ -5655,11 +5667,15 @@ control_event_circ_bandwidth_used(void)
     ocirc = TO_ORIGIN_CIRCUIT(circ);
     if (!ocirc->n_read_circ_bw && !ocirc->n_written_circ_bw)
       continue;
+    tor_gettimeofday(&now);
+    format_iso_time_nospace_usec(tbuf, &now);
     send_control_event(EVENT_CIRC_BANDWIDTH_USED,
-                       "650 CIRC_BW ID=%d READ=%lu WRITTEN=%lu\r\n",
+                       "650 CIRC_BW ID=%d READ=%lu WRITTEN=%lu "
+                       "TIME=%s\r\n",
                        ocirc->global_identifier,
                        (unsigned long)ocirc->n_read_circ_bw,
-                       (unsigned long)ocirc->n_written_circ_bw);
+                       (unsigned long)ocirc->n_written_circ_bw,
+                       tbuf);
     ocirc->n_written_circ_bw = ocirc->n_read_circ_bw = 0;
   }
   SMARTLIST_FOREACH_END(circ);