aboutsummaryrefslogtreecommitdiff
path: root/src/transport/transport_api.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/transport_api.c')
-rw-r--r--src/transport/transport_api.c18
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
423static void
424outbound_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 ==