const struct GNUNET_SCHEDULER_TaskContext *tc)
{
static int strike_counter;
+ static int failed_measurement_counter = 1;
unsigned long long quota_allowed = 0;
int delta = 0;
quota_allowed = current_quota_p2;
- if (MEASUREMENT_SOFT_LIMIT > (quota_allowed/10))
+ if (MEASUREMENT_SOFT_LIMIT > (quota_allowed/3))
delta = MEASUREMENT_SOFT_LIMIT;
else
- delta = (quota_allowed/10);
+ delta = (quota_allowed/3);
/* Throughput is far too slow. This is to prevent the test to exit with success when throughput is 0 */
if ((total_bytes_sent/(duration.rel_value / 1000)) < 100)
(total_bytes_sent/(duration.rel_value / 1000)/1024),
total_bytes_sent/(duration.rel_value / 1000));
ok = 1;
- end();
+ failed_measurement_counter--;
+ if (failed_measurement_counter < 0)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "\nQuota measurement failed and no free strike: %i\n",failed_measurement_counter);
+ end();
+ return;
+ }
+ else
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "\nQuota measurement failed and %i free strikes\n",failed_measurement_counter);
}
/* Throughput is bigger than allowed quota + some extra*/
(total_bytes_sent/(duration.rel_value / 1000)/1024),
total_bytes_sent/(duration.rel_value / 1000));
ok = 1;
- end();
- return;
+ failed_measurement_counter--;
+ if (failed_measurement_counter < 0)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "\nQuota measurement failed and no free strike: %i\n",failed_measurement_counter);
+ end();
+ return;
+ }
+ else
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "\nQuota measurement failed and %i free strikes\n",failed_measurement_counter);
}
else
{
"\nQuota compliance ok: \n"\
"Quota allowed: %10llu kB/s\n"\
"Throughput : %10llu kB/s\n", (quota_allowed / (1024)) , (total_bytes_sent/(duration.rel_value / 1000)/1024));
+ if (failed_measurement_counter < 2)
+ failed_measurement_counter++;
ok = 0;
}
if ((quota_allowed) > (2 *(total_bytes_sent/(duration.rel_value / 1000))))
{
- strike_counter++;
+ if (failed_measurement_counter < 2)
+ failed_measurement_counter++;
if (strike_counter == 2)
{
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
end();
return;
}
-
if (is_asymmetric_send_constant == GNUNET_YES)
{
if ((quota_allowed * 2) < MEASUREMENT_MAX_QUOTA)
GNUNET_assert (p->th != NULL);
}
+static size_t
+notify_ready_connect (void *cls, size_t size, void *buf)
+{
+ return 0;
+}
static void
exchange_hello_last (void *cls,
GNUNET_assert (GNUNET_OK ==
GNUNET_HELLO_get_id ((const struct GNUNET_HELLO_Message *)
message, &me->id));
+
+ GNUNET_assert(NULL != (transmit_handle = GNUNET_TRANSPORT_notify_transmit_ready (p2.th,
+ &p1.id,
+ sizeof (struct GNUNET_MessageHeader), 0,
+ TIMEOUT,
+ ¬ify_ready_connect,
+ NULL)));
+
/* both HELLOs exchanged, get ready to test transmission! */
}