- else
- {
- if ((quota_allowed * 2) < MEASUREMENT_MAX_QUOTA)
- measure ((current_quota_p1) * 2, (current_quota_p2) * 2);
- else
- measure (MEASUREMENT_MAX_QUOTA, MEASUREMENT_MAX_QUOTA);
- }
-}
-
-static void measure (unsigned long long quota_p1, unsigned long long quota_p2 )
-{
- current_quota_p1 = quota_p1;
- current_quota_p2 = quota_p2;
-#if VERBOSE
- if ((is_asymmetric_send_constant == GNUNET_YES) || (is_asymmetric_recv_constant == GNUNET_YES))
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Starting transport level measurement for %u seconds, receiving peer quota %llu kB/s, sending peer quota %llu kB/s\n", MEASUREMENT_INTERVALL.rel_value / 1000 , current_quota_p1 / 1024, current_quota_p2 / 1024);
- else
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Starting transport level measurement for %u seconds, symmetric quota %llu kB/s\n", MEASUREMENT_INTERVALL.rel_value / 1000 , current_quota_p2 / 1024);
-
-#endif
- GNUNET_TRANSPORT_set_quota (p1.th,
- &p2.id,
- GNUNET_BANDWIDTH_value_init (current_quota_p1 ),
- GNUNET_BANDWIDTH_value_init (current_quota_p1 ),
- GNUNET_TIME_UNIT_FOREVER_REL,
- NULL, NULL);
- GNUNET_TRANSPORT_set_quota (p2.th,
- &p1.id,
- GNUNET_BANDWIDTH_value_init (current_quota_p2),
- GNUNET_BANDWIDTH_value_init (current_quota_p2),
- GNUNET_TIME_UNIT_FOREVER_REL,
- NULL, NULL);
-
- GNUNET_SCHEDULER_cancel (die_task);
- die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT,
- &end_badly,
- NULL);
- if (measurement_counter_task != GNUNET_SCHEDULER_NO_TASK)
- GNUNET_SCHEDULER_cancel (measurement_counter_task);
- measurement_counter_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
- &measurement_counter,
- NULL);
- measurement_task = GNUNET_SCHEDULER_add_delayed (MEASUREMENT_INTERVALL,
- &measurement_end,
- NULL);
- total_bytes_sent = 0;
- last_msg_sent = 0;
- last_msg_recv = 0;
- measurement_running = GNUNET_YES;
- start_time = GNUNET_TIME_absolute_get ();
-
- if (transmit_handle != NULL)
- GNUNET_TRANSPORT_notify_transmit_ready_cancel(transmit_handle);
- transmit_handle = GNUNET_TRANSPORT_notify_transmit_ready (p2.th,
- &p1.id,
- get_size (), 0, SEND_TIMEOUT,
- ¬ify_ready,
- NULL);
-}
-
-static void
-notify_connect (void *cls,
- const struct GNUNET_PeerIdentity *peer,
- struct GNUNET_TIME_Relative latency,
- uint32_t distance)
-{
- if (cls == &p1)
- {
-#if DEBUG_CONNECTIONS
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Peer 1 `%4s' connected to us (%p)!\n", GNUNET_i2s (peer), cls);
-#endif
- connected++;
- }
- else
- {
-#if DEBUG_CONNECTIONS
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Peer 2 `%4s' connected to us (%p)!\n", GNUNET_i2s (peer), cls);
-#endif
- connected++;
- }
- if (connected == 2)
- {
- if (is_asymmetric_send_constant == GNUNET_YES)
- measure (MEASUREMENT_MIN_QUOTA, MEASUREMENT_MAX_QUOTA);
- else if (is_asymmetric_recv_constant == GNUNET_YES)
- measure (MEASUREMENT_MAX_QUOTA, MEASUREMENT_MIN_QUOTA);
- else
- measure (MEASUREMENT_MIN_QUOTA, MEASUREMENT_MIN_QUOTA);
- }