aboutsummaryrefslogtreecommitdiff
path: root/src/fs
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-12-15 14:24:17 +0000
committerChristian Grothoff <christian@grothoff.org>2012-12-15 14:24:17 +0000
commit91629d90b8ff075fe7af20fb57b1bdee19296515 (patch)
treec1162cf58609d79d58d6e0b96f16459ea0d81251 /src/fs
parentd457eef9d23967439759dc7f4a3fac577c4169c1 (diff)
downloadgnunet-91629d90b8ff075fe7af20fb57b1bdee19296515.tar.gz
gnunet-91629d90b8ff075fe7af20fb57b1bdee19296515.zip
LRN: fixing #2701
Diffstat (limited to 'src/fs')
-rw-r--r--src/fs/gnunet-service-fs_pe.c7
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;