aboutsummaryrefslogtreecommitdiff
path: root/src/fs/gnunet-service-fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fs/gnunet-service-fs.c')
-rw-r--r--src/fs/gnunet-service-fs.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/fs/gnunet-service-fs.c b/src/fs/gnunet-service-fs.c
index 48b7bca29..c1ff17814 100644
--- a/src/fs/gnunet-service-fs.c
+++ b/src/fs/gnunet-service-fs.c
@@ -402,14 +402,25 @@ handle_start_search (void *cls, struct GNUNET_SERVER_Client *client,
402 const struct GNUNET_MessageHeader *message) 402 const struct GNUNET_MessageHeader *message)
403{ 403{
404 struct GSF_PendingRequest *pr; 404 struct GSF_PendingRequest *pr;
405 int ret;
405 406
406 pr = GSF_local_client_start_search_handler_ (client, message); 407 pr = NULL;
407 if (NULL == pr) 408 ret = GSF_local_client_start_search_handler_ (client, message,
409 &pr);
410 switch (ret)
408 { 411 {
409 /* GNUNET_SERVER_receive_done was already called! */ 412 case GNUNET_SYSERR:
410 return; 413 GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
414 break;
415 case GNUNET_NO:
416 GNUNET_SERVER_receive_done (client, GNUNET_OK);
417 break;
418 case GNUNET_YES:
419 GSF_local_lookup_ (pr, &start_p2p_processing, client);
420 break;
421 default:
422 GNUNET_assert (0);
411 } 423 }
412 GSF_local_lookup_ (pr, &start_p2p_processing, client);
413} 424}
414 425
415 426