[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r25270 - gnunet/src/fs
From: |
gnunet |
Subject: |
[GNUnet-SVN] r25270 - gnunet/src/fs |
Date: |
Wed, 5 Dec 2012 21:58:49 +0100 |
Author: grothoff
Date: 2012-12-05 21:58:48 +0100 (Wed, 05 Dec 2012)
New Revision: 25270
Modified:
gnunet/src/fs/fs_search.c
Log:
-fix availability rank calculation in probe signal, immediately signal failed
probes
Modified: gnunet/src/fs/fs_search.c
===================================================================
--- gnunet/src/fs/fs_search.c 2012-12-05 19:33:59 UTC (rev 25269)
+++ gnunet/src/fs/fs_search.c 2012-12-05 20:58:48 UTC (rev 25270)
@@ -186,9 +186,10 @@
pi.value.search.specifics.update.cctx = sr->client_info;
pi.value.search.specifics.update.meta = sr->meta;
pi.value.search.specifics.update.uri = sr->uri;
- pi.value.search.specifics.update.availability_rank =
sr->availability_success;
- pi.value.search.specifics.update.availability_certainty =
- sr->availability_trials;
+ pi.value.search.specifics.update.availability_rank
+ = 2 * sr->availability_success - sr->availability_trials;
+ pi.value.search.specifics.update.availability_certainty
+ = sr->availability_trials;
pi.value.search.specifics.update.applicability_rank = sr->optional_support;
sr->client_info = GNUNET_FS_search_make_status_ (&pi, sr->sc);
GNUNET_FS_search_start_probe_ (sr);
@@ -310,11 +311,19 @@
sr = NULL;
break;
case GNUNET_FS_STATUS_DOWNLOAD_ACTIVE:
- GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == sr->probe_cancel_task);
- sr->probe_active_time = GNUNET_TIME_absolute_get ();
- sr->probe_cancel_task =
+ if (GNUNET_SCHEDULER_NO_TASK == sr->probe_cancel_task)
+ {
+ sr->probe_active_time = GNUNET_TIME_absolute_get ();
+ sr->probe_cancel_task =
GNUNET_SCHEDULER_add_delayed (sr->remaining_probe_time,
&probe_failure_handler, sr);
+ }
+ else
+ {
+ /* should only happen if the cancel task was already
+ created on 'DOWNLOAD_INACTIVE' as we were out of time */
+ GNUNET_break (0 == sr->remaining_probe_time.rel_value);
+ }
break;
case GNUNET_FS_STATUS_DOWNLOAD_INACTIVE:
if (GNUNET_SCHEDULER_NO_TASK != sr->probe_cancel_task)
@@ -325,6 +334,9 @@
dur = GNUNET_TIME_absolute_get_duration (sr->probe_active_time);
sr->remaining_probe_time =
GNUNET_TIME_relative_subtract (sr->remaining_probe_time, dur);
+ if (0 == sr->remaining_probe_time.rel_value)
+ sr->probe_cancel_task =
+ GNUNET_SCHEDULER_add_now (&probe_failure_handler, sr);
GNUNET_FS_search_result_sync_ (sr);
break;
default:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r25270 - gnunet/src/fs,
gnunet <=