commit 15c24d669f86715c3c24d1a50b377bd8ac65b0a7 Author: Taylor Yu catalyst@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 */ }