gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r35072 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r35072 - gnunet/src/transport
Date: Tue, 3 Feb 2015 00:52:42 +0100

Author: grothoff
Date: 2015-02-03 00:52:41 +0100 (Tue, 03 Feb 2015)
New Revision: 35072

Modified:
   gnunet/src/transport/transport_api_monitor_peers.c
Log:
-fix fix

Modified: gnunet/src/transport/transport_api_monitor_peers.c
===================================================================
--- gnunet/src/transport/transport_api_monitor_peers.c  2015-02-02 23:31:25 UTC 
(rev 35071)
+++ gnunet/src/transport/transport_api_monitor_peers.c  2015-02-02 23:52:41 UTC 
(rev 35072)
@@ -333,39 +333,49 @@
     return;
   }
 
-  if (0 == tlen)
+  if ( (0 == tlen) && (0 == alen) )
   {
-    GNUNET_break (0); /* This must not happen: address without plugin */
-    return;
+    /* No address available */
+    pal_ctx->cb (pal_ctx->cb_cls, &pir_msg->peer, NULL,
+        ntohl(pir_msg->state),
+        GNUNET_TIME_absolute_ntoh (pir_msg->state_timeout));
   }
-  addr = (const char *) &pir_msg[1];
-  transport_name = &addr[alen];
-
-  if (transport_name[tlen - 1] != '\0')
+  else
   {
-    /* Corrupt plugin name */
-    GNUNET_break (0);
-    if (pal_ctx->one_shot)
+    if (0 == tlen)
     {
-      pal_ctx->cb (pal_ctx->cb_cls, NULL, NULL,
-                  GNUNET_TRANSPORT_PS_NOT_CONNECTED, 
GNUNET_TIME_UNIT_ZERO_ABS);
-      GNUNET_TRANSPORT_monitor_peers_cancel (pal_ctx);
+      GNUNET_break (0); /* This must not happen: address without plugin */
+      return;
     }
-    else
+    addr = (const char *) &pir_msg[1];
+    transport_name = &addr[alen];
+
+    if (transport_name[tlen - 1] != '\0')
     {
-      reconnect_peer_ctx (pal_ctx);
+      /* Corrupt plugin name */
+      GNUNET_break (0);
+      if (pal_ctx->one_shot)
+      {
+        pal_ctx->cb (pal_ctx->cb_cls, NULL, NULL,
+            GNUNET_TRANSPORT_PS_NOT_CONNECTED, GNUNET_TIME_UNIT_ZERO_ABS);
+        GNUNET_TRANSPORT_monitor_peers_cancel (pal_ctx);
+      }
+      else
+      {
+        reconnect_peer_ctx (pal_ctx);
+      }
+      return;
     }
-    return;
-  }
 
-  /* notify client */
-  address = GNUNET_HELLO_address_allocate (&pir_msg->peer,
-                                          transport_name, addr, alen, 
ntohl(pir_msg->local_address_info));
-  pal_ctx->cb (pal_ctx->cb_cls, &pir_msg->peer, address,
-              ntohl(pir_msg->state),
-              GNUNET_TIME_absolute_ntoh (pir_msg->state_timeout));
-  GNUNET_HELLO_address_free (address);
+    /* notify client */
+    address = GNUNET_HELLO_address_allocate (&pir_msg->peer,
+        transport_name, addr, alen, ntohl(pir_msg->local_address_info));
+    pal_ctx->cb (pal_ctx->cb_cls, &pir_msg->peer, address,
+        ntohl(pir_msg->state),
+        GNUNET_TIME_absolute_ntoh (pir_msg->state_timeout));
+    GNUNET_HELLO_address_free (address);
 
+  }
 
   /* expect more replies */
   GNUNET_CLIENT_receive (pal_ctx->client, &peer_response_processor,




reply via email to

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