[tor-commits] [tor/maint-0.2.5] src/or/connection.c: expose bucket_millis_empty for bufferevents test

nickm at torproject.org nickm at torproject.org
Wed Jul 16 09:00:59 UTC 2014


commit d504a4e36f571a5b6ed84529d3781d08df82f117
Author: Anthony G. Basile <blueness at gentoo.org>
Date:   Thu Jun 26 11:15:36 2014 -0400

    src/or/connection.c: expose bucket_millis_empty for bufferevents test
    
    Currently tor fails to build its test when enabled with bufferevents
    because an #ifndef USE_BUFFEREVENTS hides bucket_millis_empty() and
    friends.  This is fine if we don't run tests, but if we do, we need
    these functions in src/or/libtor-testing.a when linking src/test/test.
    
    This patch moves the functions outside the #ifndef and exposes them.
    
    See downstream bug:
    
    	https://bugs.gentoo.org/show_bug.cgi?id=510124
---
 src/or/connection.c |   60 +++++++++++++++++++++++++--------------------------
 1 file changed, 30 insertions(+), 30 deletions(-)

diff --git a/src/or/connection.c b/src/or/connection.c
index 0b03092..4788bdf 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -2650,14 +2650,6 @@ record_num_bytes_transferred(connection_t *conn,
 }
 #endif
 
-#ifndef USE_BUFFEREVENTS
-/** Last time at which the global or relay buckets were emptied in msec
- * since midnight. */
-static uint32_t global_relayed_read_emptied = 0,
-                global_relayed_write_emptied = 0,
-                global_read_emptied = 0,
-                global_write_emptied = 0;
-
 /** Helper: convert given <b>tvnow</b> time value to milliseconds since
  * midnight. */
 static uint32_t
@@ -2667,6 +2659,28 @@ msec_since_midnight(const struct timeval *tvnow)
          ((uint32_t)tvnow->tv_usec / (uint32_t)1000L));
 }
 
+/** Helper: return the time in milliseconds since <b>last_empty_time</b>
+ * when a bucket ran empty that previously had <b>tokens_before</b> tokens
+ * now has <b>tokens_after</b> tokens after refilling at timestamp
+ * <b>tvnow</b>, capped at <b>milliseconds_elapsed</b> milliseconds since
+ * last refilling that bucket.  Return 0 if the bucket has not been empty
+ * since the last refill or has not been refilled. */
+uint32_t
+bucket_millis_empty(int tokens_before, uint32_t last_empty_time,
+                    int tokens_after, int milliseconds_elapsed,
+                    const struct timeval *tvnow)
+{
+  uint32_t result = 0, refilled;
+  if (tokens_before <= 0 && tokens_after > tokens_before) {
+    refilled = msec_since_midnight(tvnow);
+    result = (uint32_t)((refilled + 86400L * 1000L - last_empty_time) %
+             (86400L * 1000L));
+    if (result > (uint32_t)milliseconds_elapsed)
+      result = (uint32_t)milliseconds_elapsed;
+  }
+  return result;
+}
+
 /** Check if a bucket which had <b>tokens_before</b> tokens and which got
  * <b>tokens_removed</b> tokens removed at timestamp <b>tvnow</b> has run
  * out of tokens, and if so, note the milliseconds since midnight in
@@ -2680,6 +2694,14 @@ connection_buckets_note_empty_ts(uint32_t *timestamp_var,
     *timestamp_var = msec_since_midnight(tvnow);
 }
 
+#ifndef USE_BUFFEREVENTS
+/** Last time at which the global or relay buckets were emptied in msec
+ * since midnight. */
+static uint32_t global_relayed_read_emptied = 0,
+                global_relayed_write_emptied = 0,
+                global_read_emptied = 0,
+                global_write_emptied = 0;
+
 /** We just read <b>num_read</b> and wrote <b>num_written</b> bytes
  * onto <b>conn</b>. Decrement buckets appropriately. */
 static void
@@ -2838,28 +2860,6 @@ connection_bucket_refill_helper(int *bucket, int rate, int burst,
   }
 }
 
-/** Helper: return the time in milliseconds since <b>last_empty_time</b>
- * when a bucket ran empty that previously had <b>tokens_before</b> tokens
- * now has <b>tokens_after</b> tokens after refilling at timestamp
- * <b>tvnow</b>, capped at <b>milliseconds_elapsed</b> milliseconds since
- * last refilling that bucket.  Return 0 if the bucket has not been empty
- * since the last refill or has not been refilled. */
-uint32_t
-bucket_millis_empty(int tokens_before, uint32_t last_empty_time,
-                    int tokens_after, int milliseconds_elapsed,
-                    const struct timeval *tvnow)
-{
-  uint32_t result = 0, refilled;
-  if (tokens_before <= 0 && tokens_after > tokens_before) {
-    refilled = msec_since_midnight(tvnow);
-    result = (uint32_t)((refilled + 86400L * 1000L - last_empty_time) %
-             (86400L * 1000L));
-    if (result > (uint32_t)milliseconds_elapsed)
-      result = (uint32_t)milliseconds_elapsed;
-  }
-  return result;
-}
-
 /** Time has passed; increment buckets appropriately. */
 void
 connection_bucket_refill(int milliseconds_elapsed, time_t now)





More information about the tor-commits mailing list