gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r16719 - gnunet/src/transport
Date: Wed, 7 Sep 2011 13:42:11 +0200

Author: wachs
Date: 2011-09-07 13:42:10 +0200 (Wed, 07 Sep 2011)
New Revision: 16719

Modified:
   gnunet/src/transport/gnunet-service-transport_neighbours.c
   gnunet/src/transport/gnunet-service-transport_validation.c
Log:
correct usage of ats \0 termination


Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c  2011-09-07 
11:26:47 UTC (rev 16718)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c  2011-09-07 
11:42:10 UTC (rev 16719)
@@ -256,7 +256,7 @@
  * @param receiver intended receiver
  * @param success whether it worked or not
  */
-static void
+void
 transmit_send_continuation (void *cls,
                             const struct GNUNET_PeerIdentity *receiver,
                             int success)
@@ -318,7 +318,6 @@
   n->is_active = mq;
   mq->n = n;
 
-
   ret =
       papi->send (papi->cls, &n->id, mq->message_buf, mq->message_buf_size,
                   0 /* priority -- remove from plugin API? */ ,
@@ -598,6 +597,11 @@
 
   GNUNET_assert (neighbours != NULL);
 
+#if DEBUG_TRANSPORT
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Trying to connect to peer `%s'\n",
+              GNUNET_i2s (target));
+#endif
+
   GNUNET_assert (0 !=
                  memcmp (target, &GST_my_identity,
                          sizeof (struct GNUNET_PeerIdentity)));
@@ -606,8 +610,16 @@
     return;                     /* already connected */
   if (n == NULL)
   {
+#if DEBUG_TRANSPORT
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Unknown peer `%s', creating new neighbour\n",
+                GNUNET_i2s (target));
+#endif
     n = GNUNET_malloc (sizeof (struct NeighbourMapEntry));
     n->id = *target;
+    GNUNET_array_grow (n->ats, n->ats_count, 1);
+    n->ats[0].type = htonl (GNUNET_TRANSPORT_ATS_ARRAY_TERMINATOR);;
+    n->ats[0].value = htonl (0);
     GNUNET_BANDWIDTH_tracker_init (&n->in_tracker,
                                    GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT,
                                    MAX_BANDWIDTH_CARRY_S);
@@ -621,6 +633,11 @@
   }
   if (n->asc != NULL)
     return;                     /* already trying */
+#if DEBUG_TRANSPORT
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Asking ATS for suggested address to connect to peer `%s'\n",
+              GNUNET_i2s (target));
+#endif
   n->asc =
       GNUNET_ATS_suggest_address (GST_ats, target, &try_connect_using_address,
                                   n);
@@ -727,6 +744,7 @@
       cont (cont_cls, GNUNET_SYSERR);
     return;
   }
+
   GNUNET_assert (msg_size >= sizeof (struct GNUNET_MessageHeader));
   GNUNET_STATISTICS_update (GST_stats,
                             gettext_noop
@@ -922,8 +940,9 @@
 
   if (GNUNET_YES != n->is_connected)
     return GNUNET_OK;
+
   GNUNET_assert (n->ats_count > 0);
-  ic->cb (ic->cb_cls, &n->id, n->ats, n->ats_count - 1);
+  ic->cb (ic->cb_cls, &n->id, n->ats, n->ats_count);
   return GNUNET_OK;
 }
 

Modified: gnunet/src/transport/gnunet-service-transport_validation.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_validation.c  2011-09-07 
11:26:47 UTC (rev 16718)
+++ gnunet/src/transport/gnunet-service-transport_validation.c  2011-09-07 
11:42:10 UTC (rev 16719)
@@ -408,8 +408,12 @@
   }
   ve = find_validation_entry (&public_key, &pid, tname, addr, addrlen);
   ve->valid_until = GNUNET_TIME_absolute_max (ve->valid_until, expiration);
+  struct GNUNET_TRANSPORT_ATS_Information ats;
+  ats.type = htonl (GNUNET_TRANSPORT_ATS_ARRAY_TERMINATOR);
+  ats.value = htonl (0);
+
   GNUNET_ATS_address_update (GST_ats, &pid, ve->valid_until, tname, NULL, addr,
-                             addrlen, NULL, 0);
+                             addrlen, &ats, 1);
   return GNUNET_OK;
 }
 
@@ -774,10 +778,13 @@
     if (papi == NULL)
       ret = -1;
     else
+    {
+      GNUNET_assert (papi->send != NULL);
       ret =
           papi->send (papi->cls, pid, message_buf, tsize, PING_PRIORITY,
                       HELLO_REVALIDATION_START_TIME, NULL /* no session */ ,
                       ve->addr, ve->addrlen, GNUNET_YES, NULL, NULL);
+    }
   }
   if (-1 != ret)
   {
@@ -911,6 +918,7 @@
 
   if (ntohs (hdr->size) < sizeof (struct TransportPongMessage))
   {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "SIZE!\n");
     GNUNET_break_op (0);
     return;
   }
@@ -965,8 +973,7 @@
     GNUNET_break_op (0);
     return;
   }
-
-#if VERBOSE_VALIDATION
+#if DEBUG_TRANSPORT
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Address validated for peer `%s' with plugin `%s': `%s'\n",
               GNUNET_i2s (sender), tname, GST_plugins_a2s (tname, addr,
@@ -975,7 +982,10 @@
 
   /* validity achieved, remember it! */
   ve->valid_until = GNUNET_TIME_relative_to_absolute 
(HELLO_ADDRESS_EXPIRATION);
-  GNUNET_ATS_address_update (GST_ats, &ve->pid, ve->valid_until, 
ve->transport_name, NULL, ve->addr, ve->addrlen, NULL, 0);     /* FIXME: 
compute and add latency here... */
+  struct GNUNET_TRANSPORT_ATS_Information ats;
+  ats.type = htonl (GNUNET_TRANSPORT_ATS_ARRAY_TERMINATOR);
+  ats.value = htonl (0);
+  GNUNET_ATS_address_update (GST_ats, &ve->pid, ve->valid_until, 
ve->transport_name, NULL, ve->addr, ve->addrlen, &ats, 1);     /* FIXME: 
compute and add latency here... */
 
   /* build HELLO to store in PEERINFO */
   ve->copied = GNUNET_NO;




reply via email to

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