diff options
Diffstat (limited to 'src/fs/gnunet-service-fs.c')
-rw-r--r-- | src/fs/gnunet-service-fs.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/fs/gnunet-service-fs.c b/src/fs/gnunet-service-fs.c index 41be75e98..84a4f1d65 100644 --- a/src/fs/gnunet-service-fs.c +++ b/src/fs/gnunet-service-fs.c | |||
@@ -545,7 +545,12 @@ struct PendingRequest | |||
545 | /** | 545 | /** |
546 | * Remove this request after transmission of the current response. | 546 | * Remove this request after transmission of the current response. |
547 | */ | 547 | */ |
548 | int do_remove; | 548 | int16_t do_remove; |
549 | |||
550 | /** | ||
551 | * GNUNET_YES if we should not forward this request to other peers. | ||
552 | */ | ||
553 | int16_t local_only; | ||
549 | 554 | ||
550 | }; | 555 | }; |
551 | 556 | ||
@@ -1600,6 +1605,8 @@ forward_request_task (void *cls, | |||
1600 | #endif | 1605 | #endif |
1601 | return; /* already pending */ | 1606 | return; /* already pending */ |
1602 | } | 1607 | } |
1608 | if (GNUNET_YES == pr->local_only) | ||
1609 | return; /* configured to not do P2P search */ | ||
1603 | /* (1) select target */ | 1610 | /* (1) select target */ |
1604 | psc.pr = pr; | 1611 | psc.pr = pr; |
1605 | psc.target_score = DBL_MIN; | 1612 | psc.target_score = DBL_MIN; |
@@ -2783,6 +2790,10 @@ handle_start_search (void *cls, | |||
2783 | pr->anonymity_level = ntohl (sm->anonymity_level); | 2790 | pr->anonymity_level = ntohl (sm->anonymity_level); |
2784 | refresh_bloomfilter (pr); | 2791 | refresh_bloomfilter (pr); |
2785 | pr->query = sm->query; | 2792 | pr->query = sm->query; |
2793 | if (0 == (1 & ntohl (sm->options))) | ||
2794 | pr->local_only = GNUNET_NO; | ||
2795 | else | ||
2796 | pr->local_only = GNUNET_YES; | ||
2786 | switch (type) | 2797 | switch (type) |
2787 | { | 2798 | { |
2788 | case GNUNET_BLOCK_TYPE_DBLOCK: | 2799 | case GNUNET_BLOCK_TYPE_DBLOCK: |