]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
mainloop: Modernize a bit connection_dir_is_global_write_low()
authorDavid Goulet <dgoulet@torproject.org>
Tue, 28 Jan 2020 13:55:20 +0000 (08:55 -0500)
committerDavid Goulet <dgoulet@torproject.org>
Tue, 11 Feb 2020 14:35:46 +0000 (09:35 -0500)
Signed-off-by: David Goulet <dgoulet@torproject.org>
src/core/mainloop/connection.c
src/core/mainloop/connection.h

index 9a07a62c29995d02067e738b0e49ac0673ff0d6b..a157c0f3fbccd3aca5ca678508c0d0a3fb50239e 100644 (file)
@@ -3051,7 +3051,7 @@ connection_mark_all_noncontrol_connections(void)
  * uses pluggable transports, since we should then limit it even if it
  * comes from an internal IP address. */
 static int
-connection_is_rate_limited(connection_t *conn)
+connection_is_rate_limited(const connection_t *conn)
 {
   const or_options_t *options = get_options();
   if (conn->linked)
@@ -3190,7 +3190,10 @@ connection_bucket_write_limit(connection_t *conn, time_t now)
  * shouldn't send <b>attempt</b> bytes of low-priority directory stuff
  * out to <b>conn</b>.
  *
- * There are a lot of parameters we could use here:
+ * If we are a directory authority, always answer dir requests thus true is
+ * always returned.
+ *
+ * Note: There are a lot of parameters we could use here:
  * - global_relayed_write_bucket. Low is bad.
  * - global_write_bucket. Low is bad.
  * - bandwidthrate. Low is bad.
@@ -3202,27 +3205,27 @@ connection_bucket_write_limit(connection_t *conn, time_t now)
  *   mean is "total directory bytes added to outbufs recently", but
  *   that's harder to quantify and harder to keep track of.
  */
-int
-connection_dir_is_global_write_low(connection_t *conn, size_t attempt)
+bool
+connection_dir_is_global_write_low(const connection_t *conn, size_t attempt)
 {
   size_t smaller_bucket =
     MIN(token_bucket_rw_get_write(&global_bucket),
         token_bucket_rw_get_write(&global_relayed_bucket));
   if (authdir_mode(get_options()))
-    return 0; /* there's always room to answer v2 if we're an auth dir */
+    return false; /* there's always room to answer v2 if we're an auth dir */
 
   if (!connection_is_rate_limited(conn))
-    return 0; /* local conns don't get limited */
+    return false; /* local conns don't get limited */
 
   if (smaller_bucket < attempt)
-    return 1; /* not enough space. */
+    return true; /* not enough space. */
 
   {
     const time_t diff = approx_time() - write_buckets_last_empty_at;
     if (diff <= 1)
-      return 1; /* we're already hitting our limits, no more please */
+      return true; /* we're already hitting our limits, no more please */
   }
-  return 0;
+  return false;
 }
 
 /** When did we last tell the accounting subsystem about transmitted
index 30cf65e4e67d04af239170921f13e71e2b591c65..668c7400426e2ca32161b4c663d7604ccdb9fd6c 100644 (file)
@@ -196,8 +196,8 @@ void connection_mark_all_noncontrol_listeners(void);
 void connection_mark_all_noncontrol_connections(void);
 
 ssize_t connection_bucket_write_limit(struct connection_t *conn, time_t now);
-int connection_dir_is_global_write_low(struct connection_t *conn,
-                                       size_t attempt);
+bool connection_dir_is_global_write_low(const struct connection_t *conn,
+                                        size_t attempt);
 void connection_bucket_init(void);
 void connection_bucket_adjust(const or_options_t *options);
 void connection_bucket_refill_all(time_t now,