gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnunet] 01/04: multicast: fix bugs


From: gnunet
Subject: [GNUnet-SVN] [gnunet] 01/04: multicast: fix bugs
Date: Thu, 13 Jul 2017 17:12:27 +0200

This is an automated email from the git hooks/post-receive script.

xrs pushed a commit to branch master
in repository gnunet.

commit f0bca33f0011119bc103ba0e4c5ab83de2f00199
Author: xrs <address@hidden>
AuthorDate: Thu Jul 13 17:10:04 2017 +0200

    multicast: fix bugs
---
 src/multicast/gnunet-service-multicast.c | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/src/multicast/gnunet-service-multicast.c 
b/src/multicast/gnunet-service-multicast.c
index 39623e7b1..896f75c56 100644
--- a/src/multicast/gnunet-service-multicast.c
+++ b/src/multicast/gnunet-service-multicast.c
@@ -767,10 +767,11 @@ cadet_send_join_decision_cb (void *cls,
     {
       chn->join_status = JOIN_REFUSED;
     }
-
     cadet_send_channel (chn, &hdcsn->header);
-    return GNUNET_NO;
+    return GNUNET_YES;
   }
+
+  // return GNUNET_YES to continue the multihashmap_get iteration
   return GNUNET_YES;
 }
 
@@ -845,13 +846,13 @@ cadet_notify_connect (void *cls,
                       struct GNUNET_CADET_Channel *channel,
                       const struct GNUNET_PeerIdentity *source)
 {
-  struct Channel *chn = GNUNET_malloc (sizeof *chn);
+  struct Channel *chn = GNUNET_malloc (sizeof (struct Channel));
   chn->group = cls;
   chn->channel = channel;
   chn->direction = DIR_INCOMING;
   chn->join_status = JOIN_NOT_ASKED;
-
-  GNUNET_CONTAINER_multihashmap_put (channels_in, &chn->group_pub_hash, chn,
+      
+  GNUNET_CONTAINER_multihashmap_put (channels_in, &chn->group->pub_key_hash, 
chn,
                                      
GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
   return chn;
 }
@@ -1395,7 +1396,7 @@ handle_client_origin_start (void *cls,
     orig->cadet_port = GNUNET_CADET_open_port (cadet,
                                                &grp->cadet_port_hash,
                                                cadet_notify_connect,
-                                               NULL,
+                                               grp,
                                                cadet_notify_window_change,
                                                cadet_notify_disconnect,
                                                cadet_handlers);
@@ -1458,7 +1459,7 @@ handle_client_member_join (void *cls,
   GNUNET_CRYPTO_ecdsa_key_get_public (&msg->member_key, &mem_pub_key);
   GNUNET_CRYPTO_hash (&mem_pub_key, sizeof (mem_pub_key), &mem_pub_key_hash);
   GNUNET_CRYPTO_hash (&msg->group_pub_key, sizeof (msg->group_pub_key), 
&pub_key_hash);
-
+  
   struct GNUNET_CONTAINER_MultiHashMap *
     grp_mem = GNUNET_CONTAINER_multihashmap_get (group_members, &pub_key_hash);
   struct Member *mem = NULL;
@@ -1468,6 +1469,7 @@ handle_client_member_join (void *cls,
   {
     mem = GNUNET_CONTAINER_multihashmap_get (grp_mem, &mem_pub_key_hash);
   }
+  
   if (NULL == mem)
   {
     mem = GNUNET_new (struct Member);
@@ -1483,15 +1485,16 @@ handle_client_member_join (void *cls,
     grp->pub_key = msg->group_pub_key;
     grp->pub_key_hash = pub_key_hash;
     group_set_cadet_port_hash (grp);
-
+  
     if (NULL == grp_mem)
     {
       grp_mem = GNUNET_CONTAINER_multihashmap_create (1, GNUNET_YES);
-      GNUNET_CONTAINER_multihashmap_put (group_members, &grp->pub_key_hash, 
grp_mem,
+      ret = GNUNET_CONTAINER_multihashmap_put (group_members, 
&grp->pub_key_hash, grp_mem,
                                          
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST);
     }
     GNUNET_CONTAINER_multihashmap_put (grp_mem, &mem->pub_key_hash, mem,
                                        
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST);
+
     GNUNET_CONTAINER_multihashmap_put (members, &grp->pub_key_hash, mem,
                                        
GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
   }
@@ -1508,7 +1511,7 @@ handle_client_member_join (void *cls,
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Client connected to group %s as member %s (%s).\n",
               GNUNET_h2s (&grp->pub_key_hash),
-              GNUNET_h2s (&mem->pub_key_hash), 
+              GNUNET_h2s2 (&mem->pub_key_hash),
               str);
   GNUNET_free (str);
 
@@ -1636,7 +1639,8 @@ handle_client_join_decision (void *cls,
                 "%p ..and member %s: %p\n",
                 grp, GNUNET_h2s (&member_key_hash), mem);
   }
-  if (NULL != mem)
+  
+  if (NULL != mem) 
   { /* Found local member */
     client_send_join_decision (mem, hdcsn);
   }

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]