aboutsummaryrefslogtreecommitdiff
path: root/src/service/topology/gnunet-daemon-topology.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/service/topology/gnunet-daemon-topology.c')
-rw-r--r--src/service/topology/gnunet-daemon-topology.c30
1 files changed, 10 insertions, 20 deletions
diff --git a/src/service/topology/gnunet-daemon-topology.c b/src/service/topology/gnunet-daemon-topology.c
index efabac0fc..71cc5bd19 100644
--- a/src/service/topology/gnunet-daemon-topology.c
+++ b/src/service/topology/gnunet-daemon-topology.c
@@ -641,35 +641,26 @@ consider_for_advertising (const struct GNUNET_MessageHeader *hello)
641 int num_addresses_old; 641 int num_addresses_old;
642 int num_addresses_new; 642 int num_addresses_new;
643 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg (hello); 643 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg (hello);
644 struct GNUNET_PeerIdentity *pid = GNUNET_HELLO_builder_get_id (builder); 644 struct GNUNET_PeerIdentity pid;
645 struct Peer *peer; 645 struct Peer *peer;
646 uint16_t size; 646 uint16_t size;
647 647
648 GNUNET_HELLO_builder_iterate (builder, 648 GNUNET_HELLO_builder_iterate (builder,
649 pid, 649 &pid,
650 &address_iterator, 650 &address_iterator,
651 &num_addresses_new); 651 &num_addresses_new);
652 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 652 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
653 "consider 0 for %s\n", 653 "consider 0 for %s\n",
654 GNUNET_i2s (pid)); 654 GNUNET_i2s (&pid));
655 if (0 == num_addresses_new) 655 if (0 == num_addresses_new)
656 { 656 {
657 GNUNET_HELLO_builder_free (builder); 657 GNUNET_HELLO_builder_free (builder);
658 return; /* no point in advertising this one... */ 658 return; /* no point in advertising this one... */
659 } 659 }
660 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 660 peer = GNUNET_CONTAINER_multipeermap_get (peers, &pid);
661 "consider 1\n");
662 if (NULL == pid)
663 {
664 GNUNET_HELLO_builder_free (builder);
665 return;
666 }
667 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
668 "consider 2\n");
669 peer = GNUNET_CONTAINER_multipeermap_get (peers, pid);
670 if (NULL == peer) 661 if (NULL == peer)
671 { 662 {
672 peer = make_peer (pid, hello); 663 peer = make_peer (&pid, hello);
673 } 664 }
674 else if (NULL != peer->hello) 665 else if (NULL != peer->hello)
675 { 666 {
@@ -679,10 +670,10 @@ consider_for_advertising (const struct GNUNET_MessageHeader *hello)
679 struct GNUNET_TIME_Absolute old_hello_exp = 670 struct GNUNET_TIME_Absolute old_hello_exp =
680 GNUNET_HELLO_builder_get_expiration_time (peer->hello); 671 GNUNET_HELLO_builder_get_expiration_time (peer->hello);
681 struct GNUNET_HELLO_Builder *builder_old = GNUNET_HELLO_builder_from_msg (peer->hello); 672 struct GNUNET_HELLO_Builder *builder_old = GNUNET_HELLO_builder_from_msg (peer->hello);
682 struct GNUNET_PeerIdentity *pid_old = GNUNET_HELLO_builder_get_id (builder_old); 673 struct GNUNET_PeerIdentity pid_old;
683 674
684 GNUNET_HELLO_builder_iterate (builder_old, 675 GNUNET_HELLO_builder_iterate (builder_old,
685 pid_old, 676 &pid_old,
686 &address_iterator, 677 &address_iterator,
687 &num_addresses_old); 678 &num_addresses_old);
688 if (GNUNET_TIME_absolute_cmp (new_hello_exp, >, now) && 679 if (GNUNET_TIME_absolute_cmp (new_hello_exp, >, now) &&
@@ -710,7 +701,7 @@ consider_for_advertising (const struct GNUNET_MessageHeader *hello)
710 } 701 }
711 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 702 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
712 "Found HELLO from peer `%s' for advertising\n", 703 "Found HELLO from peer `%s' for advertising\n",
713 GNUNET_i2s (pid)); 704 GNUNET_i2s (&pid));
714 if (NULL != peer->filter) 705 if (NULL != peer->filter)
715 { 706 {
716 GNUNET_CONTAINER_bloomfilter_free (peer->filter); 707 GNUNET_CONTAINER_bloomfilter_free (peer->filter);
@@ -828,7 +819,7 @@ check_hello (void *cls, const struct GNUNET_MessageHeader *message)
828{ 819{
829 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg ( 820 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg (
830 message); 821 message);
831 struct GNUNET_PeerIdentity *pid = GNUNET_HELLO_builder_get_id (builder); 822 const struct GNUNET_PeerIdentity *pid = GNUNET_HELLO_builder_get_id (builder);
832 823
833 if (NULL == pid) 824 if (NULL == pid)
834 { 825 {
@@ -858,10 +849,8 @@ handle_hello (void *cls, const struct GNUNET_MessageHeader *message)
858{ 849{
859 struct GNUNET_PEERSTORE_StoreHelloContext *shc; 850 struct GNUNET_PEERSTORE_StoreHelloContext *shc;
860 const struct GNUNET_PeerIdentity *other = cls; 851 const struct GNUNET_PeerIdentity *other = cls;
861 struct Peer *peer;
862 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg ( 852 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg (
863 message); 853 message);
864 struct GNUNET_PeerIdentity *pid = GNUNET_HELLO_builder_get_id (builder);
865 854
866 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 855 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
867 "Received encrypted HELLO from peer `%s'", 856 "Received encrypted HELLO from peer `%s'",
@@ -871,6 +860,7 @@ handle_hello (void *cls, const struct GNUNET_MessageHeader *message)
871 1, 860 1,
872 GNUNET_NO); 861 GNUNET_NO);
873 GNUNET_HELLO_builder_from_msg (message); 862 GNUNET_HELLO_builder_from_msg (message);
863 // FIXME this is not working shc uninitialized
874 shc = GNUNET_PEERSTORE_hello_add (ps, message, &shc_cont, shc); 864 shc = GNUNET_PEERSTORE_hello_add (ps, message, &shc_cont, shc);
875 GNUNET_HELLO_builder_free (builder); 865 GNUNET_HELLO_builder_free (builder);
876} 866}