diff options
author | Christian Grothoff <christian@grothoff.org> | 2015-10-25 22:39:09 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2015-10-25 22:39:09 +0000 |
commit | a6d5893f9680dea995b1172f601adc27b2039b75 (patch) | |
tree | e8bb63eb153c9b9fe2dc2e24bbbcf398376de6c0 /src/fs/gnunet-service-fs_pe.c | |
parent | fe1d7543e21cbfae18448c7d15c49ccb2bf8e880 (diff) | |
download | gnunet-a6d5893f9680dea995b1172f601adc27b2039b75.tar.gz gnunet-a6d5893f9680dea995b1172f601adc27b2039b75.zip |
-fix indentation, fix bug that caused us to try to merge requests twice
Diffstat (limited to 'src/fs/gnunet-service-fs_pe.c')
-rw-r--r-- | src/fs/gnunet-service-fs_pe.c | 54 |
1 files changed, 36 insertions, 18 deletions
diff --git a/src/fs/gnunet-service-fs_pe.c b/src/fs/gnunet-service-fs_pe.c index 68c98ae8b..a9cfefcaa 100644 --- a/src/fs/gnunet-service-fs_pe.c +++ b/src/fs/gnunet-service-fs_pe.c | |||
@@ -529,7 +529,9 @@ struct MergeContext | |||
529 | * #GNUNET_NO if not (merge success) | 529 | * #GNUNET_NO if not (merge success) |
530 | */ | 530 | */ |
531 | static int | 531 | static int |
532 | merge_pr (void *cls, const struct GNUNET_HashCode * query, void *element) | 532 | merge_pr (void *cls, |
533 | const struct GNUNET_HashCode *query, | ||
534 | void *element) | ||
533 | { | 535 | { |
534 | struct MergeContext *mpr = cls; | 536 | struct MergeContext *mpr = cls; |
535 | struct GSF_RequestPlan *rp = element; | 537 | struct GSF_RequestPlan *rp = element; |
@@ -538,18 +540,26 @@ merge_pr (void *cls, const struct GNUNET_HashCode * query, void *element) | |||
538 | struct GSF_PendingRequest *latest; | 540 | struct GSF_PendingRequest *latest; |
539 | 541 | ||
540 | if (GNUNET_OK != | 542 | if (GNUNET_OK != |
541 | GSF_pending_request_is_compatible_ (mpr->pr, rp->pe_head->pr)) | 543 | GSF_pending_request_is_compatible_ (mpr->pr, |
544 | rp->pe_head->pr)) | ||
542 | return GNUNET_YES; | 545 | return GNUNET_YES; |
543 | /* merge new request with existing request plan */ | 546 | /* merge new request with existing request plan */ |
544 | bi = GNUNET_new (struct GSF_PendingRequestPlanBijection); | 547 | bi = GNUNET_new (struct GSF_PendingRequestPlanBijection); |
545 | bi->rp = rp; | 548 | bi->rp = rp; |
546 | bi->pr = mpr->pr; | 549 | bi->pr = mpr->pr; |
547 | prd = GSF_pending_request_get_data_ (mpr->pr); | 550 | prd = GSF_pending_request_get_data_ (mpr->pr); |
548 | GNUNET_CONTAINER_MDLL_insert (PR, prd->pr_head, prd->pr_tail, bi); | 551 | GNUNET_CONTAINER_MDLL_insert (PR, |
549 | GNUNET_CONTAINER_MDLL_insert (PE, rp->pe_head, rp->pe_tail, bi); | 552 | prd->pr_head, |
553 | prd->pr_tail, | ||
554 | bi); | ||
555 | GNUNET_CONTAINER_MDLL_insert (PE, | ||
556 | rp->pe_head, | ||
557 | rp->pe_tail, | ||
558 | bi); | ||
550 | mpr->merged = GNUNET_YES; | 559 | mpr->merged = GNUNET_YES; |
551 | #if INSANE_STATISTICS | 560 | #if INSANE_STATISTICS |
552 | GNUNET_STATISTICS_update (GSF_stats, gettext_noop ("# requests merged"), 1, | 561 | GNUNET_STATISTICS_update (GSF_stats, |
562 | gettext_noop ("# requests merged"), 1, | ||
553 | GNUNET_NO); | 563 | GNUNET_NO); |
554 | #endif | 564 | #endif |
555 | latest = get_latest (rp); | 565 | latest = get_latest (rp); |
@@ -557,7 +567,8 @@ merge_pr (void *cls, const struct GNUNET_HashCode * query, void *element) | |||
557 | prd->ttl.abs_value_us) | 567 | prd->ttl.abs_value_us) |
558 | { | 568 | { |
559 | #if INSANE_STATISTICS | 569 | #if INSANE_STATISTICS |
560 | GNUNET_STATISTICS_update (GSF_stats, gettext_noop ("# requests refreshed"), | 570 | GNUNET_STATISTICS_update (GSF_stats, |
571 | gettext_noop ("# requests refreshed"), | ||
561 | 1, GNUNET_NO); | 572 | 1, GNUNET_NO); |
562 | #endif | 573 | #endif |
563 | rp->transmission_counter = 0; /* reset */ | 574 | rp->transmission_counter = 0; /* reset */ |
@@ -597,38 +608,45 @@ GSF_plan_add_ (struct GSF_ConnectedPeer *cp, | |||
597 | pp->cp = cp; | 608 | pp->cp = cp; |
598 | GNUNET_assert (GNUNET_OK == | 609 | GNUNET_assert (GNUNET_OK == |
599 | GNUNET_CONTAINER_multipeermap_put (plans, | 610 | GNUNET_CONTAINER_multipeermap_put (plans, |
600 | id, pp, | 611 | id, |
612 | pp, | ||
601 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY)); | 613 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY)); |
602 | } | 614 | } |
603 | mpc.merged = GNUNET_NO; | 615 | mpc.merged = GNUNET_NO; |
604 | mpc.pr = pr; | 616 | mpc.pr = pr; |
605 | GNUNET_CONTAINER_multihashmap_get_multiple (pp->plan_map, | 617 | GNUNET_CONTAINER_multihashmap_get_multiple (pp->plan_map, |
606 | &GSF_pending_request_get_data_ | 618 | &GSF_pending_request_get_data_ |
607 | (pr)->query, &merge_pr, &mpc); | 619 | (pr)->query, |
608 | if (GNUNET_NO != mpc.merged) | 620 | &merge_pr, &mpc); |
609 | return; | ||
610 | GNUNET_CONTAINER_multihashmap_get_multiple (pp->plan_map, | ||
611 | &GSF_pending_request_get_data_ | ||
612 | (pr)->query, &merge_pr, &mpc); | ||
613 | if (GNUNET_NO != mpc.merged) | 621 | if (GNUNET_NO != mpc.merged) |
614 | return; | 622 | return; |
615 | plan_count++; | 623 | plan_count++; |
616 | GNUNET_STATISTICS_update (GSF_stats, gettext_noop ("# query plan entries"), 1, | 624 | GNUNET_STATISTICS_update (GSF_stats, |
625 | gettext_noop ("# query plan entries"), | ||
626 | 1, | ||
617 | GNUNET_NO); | 627 | GNUNET_NO); |
618 | prd = GSF_pending_request_get_data_ (pr); | 628 | prd = GSF_pending_request_get_data_ (pr); |
619 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 629 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
620 | "Planning transmission of query `%s' to peer `%s'\n", | 630 | "Planning transmission of query `%s' to peer `%s'\n", |
621 | GNUNET_h2s (&prd->query), GNUNET_i2s (id)); | 631 | GNUNET_h2s (&prd->query), |
632 | GNUNET_i2s (id)); | ||
622 | rp = GNUNET_new (struct GSF_RequestPlan); | 633 | rp = GNUNET_new (struct GSF_RequestPlan); |
623 | bi = GNUNET_new (struct GSF_PendingRequestPlanBijection); | 634 | bi = GNUNET_new (struct GSF_PendingRequestPlanBijection); |
624 | bi->rp = rp; | 635 | bi->rp = rp; |
625 | bi->pr = pr; | 636 | bi->pr = pr; |
626 | GNUNET_CONTAINER_MDLL_insert (PR, prd->pr_head, prd->pr_tail, bi); | 637 | GNUNET_CONTAINER_MDLL_insert (PR, |
627 | GNUNET_CONTAINER_MDLL_insert (PE, rp->pe_head, rp->pe_tail, bi); | 638 | prd->pr_head, |
639 | prd->pr_tail, | ||
640 | bi); | ||
641 | GNUNET_CONTAINER_MDLL_insert (PE, | ||
642 | rp->pe_head, | ||
643 | rp->pe_tail, | ||
644 | bi); | ||
628 | rp->pp = pp; | 645 | rp->pp = pp; |
629 | GNUNET_assert (GNUNET_YES == | 646 | GNUNET_assert (GNUNET_YES == |
630 | GNUNET_CONTAINER_multihashmap_put (pp->plan_map, | 647 | GNUNET_CONTAINER_multihashmap_put (pp->plan_map, |
631 | get_rp_key (rp), rp, | 648 | get_rp_key (rp), |
649 | rp, | ||
632 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE)); | 650 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE)); |
633 | plan (pp, rp); | 651 | plan (pp, rp); |
634 | } | 652 | } |