From 78dd2de49c1a017718367e36082142abcc0a9dab Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Tue, 7 Feb 2012 12:26:45 +0100 Subject: [PATCH] Reset negative bytes_written values to 0 to work around bogus upload bandwidth values being sent to the control port --- src/or/main.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/src/or/main.c b/src/or/main.c index e2480dc..6d260b6 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -1574,6 +1574,15 @@ second_elapsed_callback(periodic_timer_t *timer, void *arg) connection_get_rate_limit_totals(&cur_read, &cur_written); bytes_written = (size_t)(cur_written - stats_prev_n_written); bytes_read = (size_t)(cur_read - stats_prev_n_read); + + if (cur_written < stats_prev_n_written) { + log_err(LD_GENERAL,"Resetting bytes_written from %lld/%u to 0. " + "cur_written: %lld, stats_prev_n_written: %lld", + (long long)bytes_written, (uint32_t)bytes_written, + (long long)cur_written, (long long)stats_prev_n_written); + bytes_written = 0; + } + stats_n_bytes_read += bytes_read; stats_n_bytes_written += bytes_written; if (accounting_is_enabled(options) && seconds_elapsed >= 0) -- 1.7.9