gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r16609 - gnunet/src/transport
Date: Thu, 25 Aug 2011 13:13:37 +0200

Author: wachs
Date: 2011-08-25 13:13:37 +0200 (Thu, 25 Aug 2011)
New Revision: 16609

Modified:
   gnunet/src/transport/gnunet-service-transport_validation.c
Log:
fix:
- correct message size
- correct strlen


Modified: gnunet/src/transport/gnunet-service-transport_validation.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_validation.c  2011-08-25 
09:10:11 UTC (rev 16608)
+++ gnunet/src/transport/gnunet-service-transport_validation.c  2011-08-25 
11:13:37 UTC (rev 16609)
@@ -609,7 +609,7 @@
     return;
   }
   addrend++;
-  slen = strlen (addr);
+  slen = strlen (addr) + 1;
   alen -= slen;
 
   if (GNUNET_YES !=
@@ -731,15 +731,17 @@
   ve->bc = NULL;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Transmitting plain PING to `%s'\n",
               GNUNET_i2s (pid));
-  ping.header.size = htons (sizeof (struct TransportPingMessage));
-  ping.header.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_PING);
-  ping.challenge = htonl (ve->challenge);
-  ping.target = *pid;
 
   slen = strlen (ve->transport_name) + 1;
   hello = GST_hello_get ();
   hsize = ntohs (hello->size);
   tsize = sizeof (struct TransportPingMessage) + ve->addrlen + slen + hsize;
+
+  ping.header.size = htons (sizeof (struct TransportPingMessage) + ve->addrlen 
+ slen);
+  ping.header.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_PING);
+  ping.challenge = htonl (ve->challenge);
+  ping.target = *pid;
+
   if (tsize >= GNUNET_SERVER_MAX_MESSAGE_SIZE)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -753,6 +755,8 @@
   {
     char message_buf[tsize];
 
+    /* build message with structure:
+     *  [HELLO][TransportPingMessage][Transport name][Address] */
     memcpy (message_buf, hello, hsize);
     memcpy (&message_buf[hsize], &ping, sizeof (struct TransportPingMessage));
     memcpy (&message_buf[sizeof (struct TransportPingMessage) + hsize],




reply via email to

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