diff options
Diffstat (limited to 'src/transport/transport_api.c')
-rw-r--r-- | src/transport/transport_api.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/transport/transport_api.c b/src/transport/transport_api.c index 292aca5f0..ac7c55599 100644 --- a/src/transport/transport_api.c +++ b/src/transport/transport_api.c | |||
@@ -419,6 +419,23 @@ neighbour_find (struct GNUNET_TRANSPORT_Handle *h, | |||
419 | } | 419 | } |
420 | 420 | ||
421 | 421 | ||
422 | |||
423 | static void | ||
424 | outbound_bw_tracker_update (void *cls) | ||
425 | { | ||
426 | struct Neighbour *n = cls; | ||
427 | struct GNUNET_TIME_Relative delay; | ||
428 | if (NULL == n->hn) | ||
429 | return; | ||
430 | |||
431 | delay = GNUNET_BANDWIDTH_tracker_get_delay (&n->out_tracker, | ||
432 | n->th->notify_size + n->traffic_overhead); | ||
433 | GNUNET_CONTAINER_heap_update_cost (n->h->ready_heap, | ||
434 | n->hn, delay.rel_value_us); | ||
435 | schedule_transmission (n->h); | ||
436 | } | ||
437 | |||
438 | |||
422 | /** | 439 | /** |
423 | * Add neighbour to our list | 440 | * Add neighbour to our list |
424 | * | 441 | * |
@@ -439,6 +456,7 @@ neighbour_add (struct GNUNET_TRANSPORT_Handle *h, | |||
439 | n->is_ready = GNUNET_YES; | 456 | n->is_ready = GNUNET_YES; |
440 | n->traffic_overhead = 0; | 457 | n->traffic_overhead = 0; |
441 | GNUNET_BANDWIDTH_tracker_init (&n->out_tracker, | 458 | GNUNET_BANDWIDTH_tracker_init (&n->out_tracker, |
459 | outbound_bw_tracker_update, n, | ||
442 | GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT, | 460 | GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT, |
443 | MAX_BANDWIDTH_CARRY_S); | 461 | MAX_BANDWIDTH_CARRY_S); |
444 | GNUNET_assert (GNUNET_OK == | 462 | GNUNET_assert (GNUNET_OK == |