From: Taylor Yu Date: Tue, 28 Aug 2018 19:31:51 +0000 (-0500) Subject: Refactor control_event_bootstrap() somewhat X-Git-Tag: tor-0.3.5.1-alpha~50^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=15c24d669f86715c3c24d1a50b377bd8ac65b0a7;p=thirdparty%2Ftor.git 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. --- diff --git a/src/feature/control/control.c b/src/feature/control/control.c index 3de5fa9e13..4395cbd2c9 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 */ }