diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-05-31 12:05:31 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-05-31 12:05:31 +0000 |
commit | bdcce563642ca7576f95625a56dcd62bf9079f81 (patch) | |
tree | d956cf0fe339c76a5423a82f5b7218b55fdfdc13 /src/util/bandwidth.c | |
parent | 073dc58f510c96fe869cb9ad907c69cf7078092d (diff) | |
download | gnunet-bdcce563642ca7576f95625a56dcd62bf9079f81.tar.gz gnunet-bdcce563642ca7576f95625a56dcd62bf9079f81.zip |
fix
Diffstat (limited to 'src/util/bandwidth.c')
-rw-r--r-- | src/util/bandwidth.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/util/bandwidth.c b/src/util/bandwidth.c index 2b533128d..124cede9b 100644 --- a/src/util/bandwidth.c +++ b/src/util/bandwidth.c | |||
@@ -262,10 +262,7 @@ GNUNET_BANDWIDTH_tracker_get_delay (struct GNUNET_BANDWIDTH_Tracker *av, | |||
262 | size_t size) | 262 | size_t size) |
263 | { | 263 | { |
264 | struct GNUNET_TIME_Relative ret; | 264 | struct GNUNET_TIME_Relative ret; |
265 | struct GNUNET_TIME_Absolute now; | 265 | int64_t bytes_needed; |
266 | uint64_t delta_avail; | ||
267 | uint64_t delta_time; | ||
268 | uint64_t bytes_needed; | ||
269 | 266 | ||
270 | if (av->available_bytes_per_s__ == 0) | 267 | if (av->available_bytes_per_s__ == 0) |
271 | { | 268 | { |
@@ -277,10 +274,8 @@ GNUNET_BANDWIDTH_tracker_get_delay (struct GNUNET_BANDWIDTH_Tracker *av, | |||
277 | return GNUNET_TIME_UNIT_FOREVER_REL; | 274 | return GNUNET_TIME_UNIT_FOREVER_REL; |
278 | } | 275 | } |
279 | update_tracker (av); | 276 | update_tracker (av); |
280 | now = GNUNET_TIME_absolute_get (); | 277 | bytes_needed = size + av->consumption_since_last_update__; |
281 | delta_time = now.value - av->last_update__.value; | 278 | if (bytes_needed <= 0) |
282 | delta_avail = (delta_time * ((unsigned long long) av->available_bytes_per_s__) + 500LL) / 1000LL; | ||
283 | if (delta_avail >= size) | ||
284 | { | 279 | { |
285 | #if DEBUG_BANDWIDTH | 280 | #if DEBUG_BANDWIDTH |
286 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 281 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
@@ -290,7 +285,6 @@ GNUNET_BANDWIDTH_tracker_get_delay (struct GNUNET_BANDWIDTH_Tracker *av, | |||
290 | #endif | 285 | #endif |
291 | return GNUNET_TIME_UNIT_ZERO; | 286 | return GNUNET_TIME_UNIT_ZERO; |
292 | } | 287 | } |
293 | bytes_needed = size - delta_avail; | ||
294 | ret.value = 1000LL * bytes_needed / (unsigned long long) av->available_bytes_per_s__; | 288 | ret.value = 1000LL * bytes_needed / (unsigned long long) av->available_bytes_per_s__; |
295 | #if DEBUG_BANDWIDTH | 289 | #if DEBUG_BANDWIDTH |
296 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 290 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |