gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r13259 - gnunet/src/transport
Date: Tue, 12 Oct 2010 11:51:26 +0200

Author: grothoff
Date: 2010-10-12 11:51:26 +0200 (Tue, 12 Oct 2010)
New Revision: 13259

Modified:
   gnunet/src/transport/gnunet-service-transport.c
   gnunet/src/transport/plugin_transport_tcp.c
Log:
fixing issue pointed out by amatus

Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c     2010-10-12 09:43:20 UTC 
(rev 13258)
+++ gnunet/src/transport/gnunet-service-transport.c     2010-10-12 09:51:26 UTC 
(rev 13259)
@@ -3308,6 +3308,7 @@
     {
       ping.header.size = htons(sizeof(struct TransportPingMessage));
     }
+
   memcpy(&message_buf[hello_size],
          &ping,
          sizeof(struct TransportPingMessage));
@@ -3335,8 +3336,6 @@
                               gettext_noop ("# PING without HELLO messages 
sent"),
                               1,
                               GNUNET_NO);
-
-
   GNUNET_STATISTICS_update (stats,
                            gettext_noop ("# PING messages sent for 
re-validation"),
                            1,
@@ -3515,7 +3514,7 @@
     }
   addr = (const char*) &pong[1];
   slen = strlen (ve->transport_name) + 1;
-  if ( (ps - sizeof (struct TransportPongMessage) != ve->addrlen + slen) ||
+  if ( (ps - sizeof (struct TransportPongMessage) < slen) ||
        (ve->challenge != challenge) ||
        (addr[slen-1] != '\0') ||
        (0 != strcmp (addr, ve->transport_name)) ||
@@ -3523,7 +3522,7 @@
        != sizeof (struct GNUNET_CRYPTO_RsaSignaturePurpose) +
        sizeof (uint32_t) +
        sizeof (struct GNUNET_TIME_AbsoluteNBO) +
-       sizeof (struct GNUNET_PeerIdentity) + ve->addrlen + slen) )
+       sizeof (struct GNUNET_PeerIdentity) + ps - sizeof (struct 
TransportPongMessage)) )
     {
       return GNUNET_YES;
     }
@@ -3567,18 +3566,18 @@
 #endif
       break;
     case GNUNET_SIGNATURE_PURPOSE_TRANSPORT_PONG_USING:
-      if (ve->addrlen != 0)
-        {
-          return GNUNET_YES; /* different entry, keep trying */
-        }
-      if ( (0 != memcmp (&pong->pid,
+      if (0 != memcmp (&pong->pid,
                         &my_identity,
-                        sizeof (struct GNUNET_PeerIdentity))) ||
-          (ve->addrlen != 0) )
+                        sizeof (struct GNUNET_PeerIdentity)))
        {
          GNUNET_break_op (0);
          return GNUNET_NO;
        }
+      if (ve->addrlen != 0)
+        {
+          /* must have been for a different validation entry */
+          return GNUNET_YES;
+        }
       tp = find_transport (ve->transport_name);
       if (tp == NULL)
        {

Modified: gnunet/src/transport/plugin_transport_tcp.c
===================================================================
--- gnunet/src/transport/plugin_transport_tcp.c 2010-10-12 09:43:20 UTC (rev 
13258)
+++ gnunet/src/transport/plugin_transport_tcp.c 2010-10-12 09:51:26 UTC (rev 
13259)
@@ -2221,6 +2221,7 @@
   return GNUNET_YES;
 }
 
+
 /**
  * Return the actual path to a file found in the current
  * PATH environment variable.
@@ -2238,11 +2239,11 @@
 
   p = getenv ("PATH");
   if (p == NULL)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "PATH is NULL, returning.\n");
-    return NULL;
-  }
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "PATH is `%s', PATH_SEPARATOR is 
'%c'\n", p, PATH_SEPARATOR);
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                 _("PATH environment variable is unset.\n"));
+      return NULL;
+    }
   path = GNUNET_strdup (p);     /* because we write on it */
   buf = GNUNET_malloc (strlen (path) + 20);
   pos = path;
@@ -2253,21 +2254,17 @@
       sprintf (buf, "%s/%s", pos, binary);
       if (GNUNET_DISK_file_test (buf) == GNUNET_YES)
         {
-          GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Check for `%s' have 
succeeded.\n", buf);
           GNUNET_free (path);
           return buf;
         }
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Check for `%s' have failed.\n", 
buf);
       pos = end + 1;
     }
   sprintf (buf, "%s/%s", pos, binary);
   if (GNUNET_DISK_file_test (buf) == GNUNET_YES)
     {
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Check for `%s' have succeeded.\n", 
buf);
       GNUNET_free (path);
       return buf;
     }
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Check for `%s' have failed.\n", buf);
   GNUNET_free (buf);
   GNUNET_free (path);
   return NULL;
@@ -2298,13 +2295,18 @@
   p = get_path_from_PATH (binary);
 #endif
   if (p == NULL)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "get_path_from_PATH (%s) have 
failed!\n", binary);
-    return GNUNET_NO;
-  }
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                 _("Could not find binary `%s' in PATH!\n"),
+                 binary);
+      return GNUNET_NO;
+    }
   if (0 != STAT (p, &statbuf))
     {
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "STAT (%s, &statbuf) have 
failed!\n", p);
+      GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 
+                 _("stat (%s) failed: %s\n"), 
+                 p,
+                 STRERROR (errno));
       GNUNET_free (p);
       return GNUNET_SYSERR;
     }
@@ -2317,11 +2319,12 @@
 #else
   rawsock = socket (AF_INET, SOCK_RAW, IPPROTO_ICMP);
   if (INVALID_SOCKET == rawsock)
-  {
-    DWORD err = GetLastError ();
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "socket (AF_INET, SOCK_RAW, 
IPPROTO_ICMP) have failed! GLE = %d\n", err);
-    return GNUNET_NO; /* not running as administrator */
-  }
+    {
+      DWORD err = GetLastError ();
+      GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 
+                 "socket (AF_INET, SOCK_RAW, IPPROTO_ICMP) have failed! GLE = 
%d\n", err);
+      return GNUNET_NO; /* not running as administrator */
+    }
   closesocket (rawsock);
   return GNUNET_YES;
 #endif




reply via email to

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