diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-12-15 14:24:17 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-12-15 14:24:17 +0000 |
commit | 91629d90b8ff075fe7af20fb57b1bdee19296515 (patch) | |
tree | c1162cf58609d79d58d6e0b96f16459ea0d81251 /src/fs | |
parent | d457eef9d23967439759dc7f4a3fac577c4169c1 (diff) | |
download | gnunet-91629d90b8ff075fe7af20fb57b1bdee19296515.tar.gz gnunet-91629d90b8ff075fe7af20fb57b1bdee19296515.zip |
LRN: fixing #2701
Diffstat (limited to 'src/fs')
-rw-r--r-- | src/fs/gnunet-service-fs_pe.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/fs/gnunet-service-fs_pe.c b/src/fs/gnunet-service-fs_pe.c index c7cac75c4..0992d2163 100644 --- a/src/fs/gnunet-service-fs_pe.c +++ b/src/fs/gnunet-service-fs_pe.c | |||
@@ -391,6 +391,9 @@ transmit_message_callback (void *cls, size_t buf_size, void *buf) | |||
391 | if (NULL == buf) | 391 | if (NULL == buf) |
392 | { | 392 | { |
393 | /* failed, try again... */ | 393 | /* failed, try again... */ |
394 | if (GNUNET_SCHEDULER_NO_TASK != pp->task) | ||
395 | GNUNET_SCHEDULER_cancel (pp->task); | ||
396 | |||
394 | pp->task = GNUNET_SCHEDULER_add_now (&schedule_peer_transmission, pp); | 397 | pp->task = GNUNET_SCHEDULER_add_now (&schedule_peer_transmission, pp); |
395 | GNUNET_STATISTICS_update (GSF_stats, | 398 | GNUNET_STATISTICS_update (GSF_stats, |
396 | gettext_noop | 399 | gettext_noop |
@@ -401,12 +404,16 @@ transmit_message_callback (void *cls, size_t buf_size, void *buf) | |||
401 | rp = GNUNET_CONTAINER_heap_peek (pp->priority_heap); | 404 | rp = GNUNET_CONTAINER_heap_peek (pp->priority_heap); |
402 | if (NULL == rp) | 405 | if (NULL == rp) |
403 | { | 406 | { |
407 | if (GNUNET_SCHEDULER_NO_TASK != pp->task) | ||
408 | GNUNET_SCHEDULER_cancel (pp->task); | ||
404 | pp->task = GNUNET_SCHEDULER_add_now (&schedule_peer_transmission, pp); | 409 | pp->task = GNUNET_SCHEDULER_add_now (&schedule_peer_transmission, pp); |
405 | return 0; | 410 | return 0; |
406 | } | 411 | } |
407 | msize = GSF_pending_request_get_message_ (get_latest (rp), buf_size, buf); | 412 | msize = GSF_pending_request_get_message_ (get_latest (rp), buf_size, buf); |
408 | if (msize > buf_size) | 413 | if (msize > buf_size) |
409 | { | 414 | { |
415 | if (GNUNET_SCHEDULER_NO_TASK != pp->task) | ||
416 | GNUNET_SCHEDULER_cancel (pp->task); | ||
410 | /* buffer to small (message changed), try again */ | 417 | /* buffer to small (message changed), try again */ |
411 | pp->task = GNUNET_SCHEDULER_add_now (&schedule_peer_transmission, pp); | 418 | pp->task = GNUNET_SCHEDULER_add_now (&schedule_peer_transmission, pp); |
412 | return 0; | 419 | return 0; |