#if DEBUG_BANDWIDTH
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Bandwidth has %llu bytes available until deadline in %llums\n",
- (unsigned long long) ((b * deadline.value + 500LL) / 1000LL),
- deadline.value);
+ (unsigned long long) ((b * deadline.rel_value + 500LL) / 1000LL),
+ deadline.rel_value);
#endif
- return (b * deadline.value + 500LL) / 1000LL;
+ return (b * deadline.rel_value + 500LL) / 1000LL;
}
#endif
return GNUNET_TIME_UNIT_FOREVER_REL;
}
- ret.value = size * 1000LL / b;
+ ret.rel_value = size * 1000LL / b;
#if DEBUG_BANDWIDTH
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Bandwidth suggests delay of %llu ms for %llu bytes of traffic\n",
- (unsigned long long) ret.value,
+ (unsigned long long) ret.rel_value,
(unsigned long long) size);
#endif
return ret;
uint64_t max_carry;
now = GNUNET_TIME_absolute_get ();
- delta_time = now.value - av->last_update__.value;
+ delta_time = now.abs_value - av->last_update__.abs_value;
delta_avail = (delta_time * ((unsigned long long) av->available_bytes_per_s__) + 500LL) / 1000LL;
av->consumption_since_last_update__ -= delta_avail;
+ av->last_update__ = now;
if (av->consumption_since_last_update__ < 0)
{
left_bytes = - av->consumption_since_last_update__;
max_carry = av->available_bytes_per_s__ * av->max_carry_s__;
+ if (max_carry < GNUNET_SERVER_MAX_MESSAGE_SIZE)
+ max_carry = GNUNET_SERVER_MAX_MESSAGE_SIZE;
+ av->consumption_since_last_update__ = -left_bytes;
if (max_carry > left_bytes)
- av->consumption_since_last_update__ = -max_carry;
+ av->consumption_since_last_update__ = -left_bytes;
+ else
+ av->consumption_since_last_update__ = -max_carry;
}
#if DEBUG_BANDWIDTH
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Tracker %p updated, have %u Bps, last update was %llu ms ago\n",
av,
(unsigned int) av->available_bytes_per_s__,
- (unsigned long long) (now.value - av->last_update__.value));
+ (unsigned long long) delta_time);
#endif
- av->last_update__ = now;
+
}
#endif
return GNUNET_TIME_UNIT_ZERO;
}
- ret.value = 1000LL * bytes_needed / (unsigned long long) av->available_bytes_per_s__;
+ ret.rel_value = 1000LL * bytes_needed / (unsigned long long) av->available_bytes_per_s__;
#if DEBUG_BANDWIDTH
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Tracker %p delay for %u bytes is %llu ms\n",
av,
(unsigned int) size,
- (unsigned long long) ret.value);
+ (unsigned long long) ret.rel_value);
#endif
return ret;
}