aboutsummaryrefslogtreecommitdiff
path: root/src/util/bandwidth.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-05-31 12:05:31 +0000
committerChristian Grothoff <christian@grothoff.org>2010-05-31 12:05:31 +0000
commitbdcce563642ca7576f95625a56dcd62bf9079f81 (patch)
treed956cf0fe339c76a5423a82f5b7218b55fdfdc13 /src/util/bandwidth.c
parent073dc58f510c96fe869cb9ad907c69cf7078092d (diff)
downloadgnunet-bdcce563642ca7576f95625a56dcd62bf9079f81.tar.gz
gnunet-bdcce563642ca7576f95625a56dcd62bf9079f81.zip
fix
Diffstat (limited to 'src/util/bandwidth.c')
-rw-r--r--src/util/bandwidth.c12
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,