[tor-commits] [tor/master] Refactor control_event_bootstrap() somewhat

nickm at torproject.org nickm at torproject.org
Tue Sep 11 19:55:44 UTC 2018


commit 15c24d669f86715c3c24d1a50b377bd8ac65b0a7
Author: Taylor Yu <catalyst at torproject.org>
Date:   Tue Aug 28 14:31:51 2018 -0500

    Refactor control_event_bootstrap() somewhat
    
    Move the mostly-invariant part of control_event_boostrap() into a
    helper control_event_bootstrap_core().  The helper doesn't modify any
    state beyond doing logging and control port notifications.
---
 src/feature/control/control.c | 36 +++++++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 11 deletions(-)

diff --git a/src/feature/control/control.c b/src/feature/control/control.c
index 3de5fa9e1..4395cbd2c 100644
--- a/src/feature/control/control.c
+++ b/src/feature/control/control.c
@@ -7095,6 +7095,29 @@ static int bootstrap_problems = 0;
  */
 #define BOOTSTRAP_PCT_INCREMENT 5
 
+/** Do the actual logging and notifications for
+ * control_event_bootstrap().  Doesn't change any state beyond that.
+ */
+static void
+control_event_bootstrap_core(int loglevel, bootstrap_status_t status,
+                             int progress)
+{
+  char buf[BOOTSTRAP_MSG_LEN];
+  const char *tag, *summary;
+
+  bootstrap_status_to_string(status, &tag, &summary);
+
+  tor_log(loglevel, LD_CONTROL,
+          "Bootstrapped %d%%: %s", progress ? progress : status, summary);
+  tor_snprintf(buf, sizeof(buf),
+               "BOOTSTRAP PROGRESS=%d TAG=%s SUMMARY=\"%s\"",
+               progress ? progress : status, tag, summary);
+  tor_snprintf(last_sent_bootstrap_message,
+               sizeof(last_sent_bootstrap_message),
+               "NOTICE %s", buf);
+  control_event_client_status(LOG_NOTICE, "%s", buf);
+}
+
 /** Called when Tor has made progress at bootstrapping its directory
  * information and initial circuits.
  *
@@ -7105,8 +7128,6 @@ static int bootstrap_problems = 0;
 void
 control_event_bootstrap(bootstrap_status_t status, int progress)
 {
-  const char *tag, *summary;
-  char buf[BOOTSTRAP_MSG_LEN];
   int loglevel = LOG_NOTICE;
 
   if (bootstrap_percent == BOOTSTRAP_STATUS_DONE)
@@ -7131,15 +7152,8 @@ control_event_bootstrap(bootstrap_status_t status, int progress)
       loglevel = LOG_INFO;
   }
 
-  tor_log(loglevel, LD_CONTROL,
-          "Bootstrapped %d%%: %s", progress ? progress : status, summary);
-  tor_snprintf(buf, sizeof(buf),
-               "BOOTSTRAP PROGRESS=%d TAG=%s SUMMARY=\"%s\"",
-               progress ? progress : status, tag, summary);
-  tor_snprintf(last_sent_bootstrap_message,
-               sizeof(last_sent_bootstrap_message),
-               "NOTICE %s", buf);
-  control_event_client_status(LOG_NOTICE, "%s", buf);
+  control_event_bootstrap_core(loglevel, status, progress);
+
   if (status > bootstrap_percent) {
     bootstrap_percent = status; /* new milestone reached */
   }





More information about the tor-commits mailing list