gnunet-svn
[Top][All Lists]
Advanced

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

[gnunet] 15/20: -adding logging, minor dthu bugfixes


From: gnunet
Subject: [gnunet] 15/20: -adding logging, minor dthu bugfixes
Date: Sat, 19 Feb 2022 16:20:55 +0100

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

grothoff pushed a commit to branch master
in repository gnunet.

commit 0bd15d392c8c1c4dab56c794ec88fdbd7245cc51
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Tue Jan 18 21:18:30 2022 +0100

    -adding logging, minor dthu bugfixes
---
 src/dht/gnunet-service-dht.c            |  6 +++
 src/dht/gnunet-service-dht_clients.c    |  8 ++++
 src/dht/gnunet-service-dht_neighbours.c | 15 ++++++
 src/dhtu/plugin_dhtu_ip.c               | 82 ++++++++++++++++++++++++++++-----
 4 files changed, 100 insertions(+), 11 deletions(-)

diff --git a/src/dht/gnunet-service-dht.c b/src/dht/gnunet-service-dht.c
index 4b0a290b9..39433791d 100644
--- a/src/dht/gnunet-service-dht.c
+++ b/src/dht/gnunet-service-dht.c
@@ -265,6 +265,9 @@ u_address_add (void *cls,
   struct GDS_Underlay *u = cls;
   struct MyAddress *a;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Underlay adds address %s for this peer\n",
+              address);
   a = GNUNET_new (struct MyAddress);
   a->source = source;
   a->url = GNUNET_strdup (address);
@@ -292,6 +295,9 @@ u_address_del (void *ctx)
 {
   struct MyAddress *a = ctx;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Underlay deletes address %s for this peer\n",
+              a->url);
   GNUNET_HELLO_builder_del_address (GDS_my_hello,
                                     a->url);
   GNUNET_CONTAINER_DLL_remove (a_head,
diff --git a/src/dht/gnunet-service-dht_clients.c 
b/src/dht/gnunet-service-dht_clients.c
index e5819b193..dc451ed15 100644
--- a/src/dht/gnunet-service-dht_clients.c
+++ b/src/dht/gnunet-service-dht_clients.c
@@ -562,6 +562,9 @@ handle_local_result (void *cls,
                      const struct GDS_DATACACHE_BlockData *bd)
 {
   /* FIXME: use 'cls' instead of looking up the client? */
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Datacache provided result for query key %s\n",
+              GNUNET_h2s (&bd->key));
   GDS_CLIENTS_handle_reply (bd,
                             &bd->key,
                             0, NULL /* get_path */);
@@ -1081,6 +1084,8 @@ handle_dht_local_hello_get (void *cls,
   struct GNUNET_MessageHeader *hdr;
   struct GNUNET_MQ_Envelope *env;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Handling request from local client for my HELLO\n");
   env = GNUNET_MQ_msg_extra (hdr,
                              slen,
                              GNUNET_MESSAGE_TYPE_DHT_CLIENT_HELLO_URL);
@@ -1134,6 +1139,9 @@ handle_dht_local_hello_offer (void *cls,
   struct GNUNET_HELLO_Builder *b;
   struct GNUNET_PeerIdentity pid;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Local client provided HELLO URL %s\n",
+              url);
   b = GNUNET_HELLO_builder_from_url (url);
   if (NULL == b)
   {
diff --git a/src/dht/gnunet-service-dht_neighbours.c 
b/src/dht/gnunet-service-dht_neighbours.c
index 63307dea2..c4d6b7428 100644
--- a/src/dht/gnunet-service-dht_neighbours.c
+++ b/src/dht/gnunet-service-dht_neighbours.c
@@ -2260,7 +2260,11 @@ GDS_try_connect (void *cls,
 
   if (0 == GNUNET_memcmp (&GDS_my_identity,
                           pid))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Got a HELLO for my own PID, ignoring it\n");
     return; /* that's us! */
+  }
   GNUNET_CRYPTO_hash (pid,
                       sizeof(*pid),
                       &phash);
@@ -2282,6 +2286,13 @@ GDS_try_connect (void *cls,
          alternative address??? */
       return;
     }
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Discovered peer %s at %s suitable for bucket %d (%u/%u), trying 
to connect\n",
+              GNUNET_i2s (pid),
+              uri,
+              peer_bucket,
+              bucket->peers_size,
+              bucket_size);
   /* new peer that we like! */
   GDS_u_try_connect (pid,
                      uri);
@@ -2492,6 +2503,10 @@ GDS_u_receive (void *cls,
     GNUNET_break_op (0);
     return;
   }
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Handling message of type %u from peer %s\n",
+              ntohs (mh->type),
+              GNUNET_i2s (&pi->id));
   if (GNUNET_OK !=
       GNUNET_MQ_handle_message (core_handlers,
                                 mh))
diff --git a/src/dhtu/plugin_dhtu_ip.c b/src/dhtu/plugin_dhtu_ip.c
index 123a372b6..617f722b5 100644
--- a/src/dhtu/plugin_dhtu_ip.c
+++ b/src/dhtu/plugin_dhtu_ip.c
@@ -250,7 +250,7 @@ create_target (struct Plugin *plugin,
 {
   struct GNUNET_DHTU_Target *dst;
 
-  if (MAX_DESTS >
+  if (MAX_DESTS <=
       GNUNET_CONTAINER_multihashmap_size (plugin->dsts))
   {
     struct GNUNET_HashCode key;
@@ -566,6 +566,55 @@ create_source (struct Plugin *plugin,
 }
 
 
+/**
+ * Compare two addresses for equality. Only
+ * compares IP address and port. Must only be
+ * called on AF_INET or AF_INET6 addresses.
+ *
+ * @param a1 address to compare
+ * @param a2 address to compare
+ * @param alen number of bytes in @a a1 and @a a2
+ * @return 0 if @a a1 == @a a2.
+ */
+static int
+addrcmp (const struct sockaddr *a1,
+         const struct sockaddr *a2,
+         size_t alen)
+{
+  GNUNET_assert (a1->sa_family == a2->sa_family);
+  switch (a1->sa_family)
+  {
+  case AF_INET:
+    GNUNET_assert (sizeof (struct sockaddr_in) == alen);
+    {
+      const struct sockaddr_in *s1 = (const struct sockaddr_in *) a1;
+      const struct sockaddr_in *s2 = (const struct sockaddr_in *) a2;
+
+      if (s1->sin_port != s2->sin_port)
+        return 1;
+      if (s1->sin_addr.s_addr != s2->sin_addr.s_addr)
+        return 1;
+      break;
+    }
+  case AF_INET6:
+    GNUNET_assert (sizeof (struct sockaddr_in6) == alen);
+    {
+      const struct sockaddr_in6 *s1 = (const struct sockaddr_in6 *) a1;
+      const struct sockaddr_in6 *s2 = (const struct sockaddr_in6 *) a2;
+      if (s1->sin6_port != s2->sin6_port)
+        return 1;
+      if (0 != GNUNET_memcmp (&s1->sin6_addr,
+                              &s2->sin6_addr))
+        return 1;
+      break;
+    }
+  default:
+    GNUNET_assert (0);
+  }
+  return 0;
+}
+
+
 /**
  * Callback function invoked for each interface found.
  *
@@ -595,9 +644,9 @@ process_ifcs (void *cls,
        src = src->next)
   {
     if ( (addrlen == src->addrlen) &&
-         (0 == memcmp (addr,
-                       &src->addr,
-                       addrlen)) )
+         (0 == addrcmp (addr,
+                        (const struct sockaddr *) &src->addr,
+                        addrlen)) )
     {
       src->scan_generation = plugin->scan_generation;
       return GNUNET_OK;
@@ -691,9 +740,9 @@ find_source (struct Plugin *plugin,
        src = src->next)
   {
     if ( (addrlen == src->addrlen) &&
-         (0 == memcmp (addr,
-                       &src->addr,
-                       addrlen)) )
+         (0 == addrcmp (addr,
+                        (const struct sockaddr *) &src->addr,
+                        addrlen)) )
       return src;
   }
 
@@ -731,7 +780,6 @@ read_cb (void *cls)
   };
   struct GNUNET_DHTU_Target *dst = NULL;
   struct GNUNET_DHTU_Source *src = NULL;
-  struct cmsghdr *cmsg;
 
   ret = recvmsg  (GNUNET_NETWORK_get_fd (plugin->sock),
                   &mh,
@@ -749,11 +797,19 @@ read_cb (void *cls)
     return;
   }
   /* find IP where we received message */
-  for (cmsg = CMSG_FIRSTHDR (&mh);
+  for (struct cmsghdr *cmsg = CMSG_FIRSTHDR (&mh);
        NULL != cmsg;
        cmsg = CMSG_NXTHDR (&mh,
                            cmsg))
   {
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+                "Got CMSG level %u (%d/%d), type %u (%d/%d)\n",
+                cmsg->cmsg_level,
+                (cmsg->cmsg_level == IPPROTO_IP),
+                (cmsg->cmsg_level == IPPROTO_IPV6),
+                cmsg->cmsg_type,
+                (cmsg->cmsg_type == IP_PKTINFO),
+                (cmsg->cmsg_type == IPV6_RECVPKTINFO));
     if ( (cmsg->cmsg_level == IPPROTO_IP) &&
          (cmsg->cmsg_type == IP_PKTINFO) )
     {
@@ -808,13 +864,17 @@ read_cb (void *cls)
         GNUNET_break (0);
     }
   }
+  if (NULL == src)
+  {
+    GNUNET_break (0);
+    return;
+  }
   pid = (const struct GNUNET_PeerIdentity *) buf;
   dst = find_target (plugin,
                      pid,
                      &sa,
                      mh.msg_namelen);
-  if ( (NULL == src) ||
-       (NULL == dst) )
+  if (NULL == dst)
   {
     GNUNET_break (0);
     return;

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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