gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r7471 - in GNUnet: . src/util/containers src/util/network


From: gnunet
Subject: [GNUnet-SVN] r7471 - in GNUnet: . src/util/containers src/util/network
Date: Sat, 19 Jul 2008 21:14:45 -0600 (MDT)

Author: grothoff
Date: 2008-07-19 21:14:45 -0600 (Sat, 19 Jul 2008)
New Revision: 7471

Modified:
   GNUnet/src/util/containers/meta.c
   GNUnet/src/util/network/io.c
   GNUnet/todo
Log:
better fix than 7469

Modified: GNUnet/src/util/containers/meta.c
===================================================================
--- GNUnet/src/util/containers/meta.c   2008-07-19 17:38:09 UTC (rev 7470)
+++ GNUnet/src/util/containers/meta.c   2008-07-20 03:14:45 UTC (rev 7471)
@@ -64,13 +64,13 @@
 void
 GNUNET_meta_data_destroy (MetaData * md)
 {
-  int i, ic;
+  int i;
 
-  ic = md ? md->itemCount : 0;
-  for (i = 0; i < ic; i++)
+  if (md == NULL)
+    return;
+  for (i = 0; i < md->itemCount; i++)
     GNUNET_free (md->items[i].data);
-  if (ic)
-    GNUNET_array_grow (md->items, ic, 0);
+  GNUNET_array_grow (md->items, md->itemCount, 0);
   GNUNET_free (md);
 }
 
@@ -434,6 +434,10 @@
    * The version of the MD serialization.
    * The highest bit is used to indicate
    * compression.
+   *
+   * Version 0 is the current version;
+   * Version is 1 for a NULL pointer.
+   * Other version numbers are not yet defined.
    */
   unsigned int version;
 
@@ -492,7 +496,7 @@
       while (size % 8 != 0)
         size++;
       hdr = GNUNET_malloc (size);
-      hdr->version = htonl (0);
+      hdr->version = htonl (md == NULL ? 1 : 0);
       hdr->entries = htonl (ic);
       for (i = 0; i < ic; i++)
         ((unsigned int *) &hdr[1])[i] =
@@ -574,7 +578,7 @@
   while (size % 8 != 0)
     size++;
   hdr = GNUNET_malloc (size);
-  hdr->version = htonl (0);
+  hdr->version = htonl (md == NULL ? 1 : 0);
   hdr->entries = htonl (ic);
   for (i = 0; i < ic; i++)
     ((unsigned int *) &hdr[1])[i] = htonl ((unsigned int) md->items[i].type);
@@ -596,9 +600,7 @@
     }
   if (pos < size - sizeof (MetaDataHeader))
     size = pos + sizeof (MetaDataHeader);
-
   GNUNET_free (hdr);
-
   return size;
 }
 
@@ -621,12 +623,19 @@
   int i;
   unsigned int pos;
   int len;
+  unsigned int version;
 
   if (size < sizeof (MetaDataHeader))
     return NULL;
   hdr = (const MetaDataHeader *) input;
-  if ((ntohl (MAKE_UNALIGNED (hdr->version)) & HEADER_VERSION_MASK) != 0)
-    return NULL;                /* unsupported version */
+  version = ntohl (MAKE_UNALIGNED (hdr->version)) & HEADER_VERSION_MASK;
+  if (version == 1)
+    return NULL; /* null pointer */
+  if (version != 0)
+    {
+      GNUNET_GE_BREAK_OP(NULL, 0); /* unsupported version */
+      return NULL; 
+    }
   ic = ntohl (MAKE_UNALIGNED (hdr->entries));
   compressed =
     (ntohl (MAKE_UNALIGNED (hdr->version)) & HEADER_COMPRESSED) != 0;

Modified: GNUnet/src/util/network/io.c
===================================================================
--- GNUnet/src/util/network/io.c        2008-07-19 17:38:09 UTC (rev 7470)
+++ GNUnet/src/util/network/io.c        2008-07-20 03:14:45 UTC (rev 7471)
@@ -207,8 +207,7 @@
   GNUNET_socket_set_blocking (s, 0 != (nc & GNUNET_NC_BLOCKING));
   flags = 0;
 #ifdef CYGWIN
-  if (0 == (nc & GNUNET_NC_IGNORE_INT))
-    flags |= MSG_NOSIGNAL;
+  flags |= MSG_NOSIGNAL;
 #elif OSX || FREEBSD
   socket_set_nosigpipe (s, 0 == (nc & GNUNET_NC_IGNORE_INT));
   if (0 == (nc & GNUNET_NC_BLOCKING))
@@ -219,8 +218,7 @@
 #elif LINUX
   if (0 == (nc & GNUNET_NC_BLOCKING))
     flags |= MSG_DONTWAIT;
-  if (0 == (nc & GNUNET_NC_IGNORE_INT))
-    flags |= MSG_NOSIGNAL;
+  flags |= MSG_NOSIGNAL;
 #else
   /* good luck */
 #endif
@@ -291,8 +289,7 @@
   GNUNET_socket_set_blocking (s, 0 != (nc & GNUNET_NC_BLOCKING));
   flags = 0;
 #ifdef CYGWIN
-  if (0 == (nc & GNUNET_NC_IGNORE_INT))
-    flags |= MSG_NOSIGNAL;
+  flags |= MSG_NOSIGNAL;
 #elif OSX || FREEBSD
   socket_set_nosigpipe (s, 0 == (nc & GNUNET_NC_IGNORE_INT));
   if (0 == (nc & GNUNET_NC_BLOCKING))
@@ -303,8 +300,7 @@
 #elif LINUX
   if (0 == (nc & GNUNET_NC_BLOCKING))
     flags |= MSG_DONTWAIT;
-  if (0 == (nc & GNUNET_NC_IGNORE_INT))
-    flags |= MSG_NOSIGNAL;
+  flags |= MSG_NOSIGNAL;
 #else
   /* good luck */
 #endif
@@ -374,13 +370,11 @@
   if (0 == (nc & GNUNET_NC_BLOCKING))
     flags |= MSG_DONTWAIT;
 #elif CYGWIN
-  if (0 == (nc & GNUNET_NC_IGNORE_INT))
-    flags |= MSG_NOSIGNAL;
+  flags |= MSG_NOSIGNAL;
 #elif LINUX
   if (0 == (nc & GNUNET_NC_BLOCKING))
     flags |= MSG_DONTWAIT;
-  if (0 == (nc & GNUNET_NC_IGNORE_INT))
-    flags |= MSG_NOSIGNAL;
+  flags |= MSG_NOSIGNAL;
 #else
   /* pray */
 #endif
@@ -451,13 +445,11 @@
   if (0 == (nc & GNUNET_NC_BLOCKING))
     flags |= MSG_DONTWAIT;
 #elif CYGWIN
-  if (0 == (nc & GNUNET_NC_IGNORE_INT))
-    flags |= MSG_NOSIGNAL;
+  flags |= MSG_NOSIGNAL;
 #elif LINUX
   if (0 == (nc & GNUNET_NC_BLOCKING))
     flags |= MSG_DONTWAIT;
-  if (0 == (nc & GNUNET_NC_IGNORE_INT))
-    flags |= MSG_NOSIGNAL;
+  flags |= MSG_NOSIGNAL;
 #else
   /* pray */
 #endif

Modified: GNUnet/todo
===================================================================
--- GNUnet/todo 2008-07-19 17:38:09 UTC (rev 7470)
+++ GNUnet/todo 2008-07-20 03:14:45 UTC (rev 7471)
@@ -4,9 +4,6 @@
 http://vserver1236.vserver-on.de/hostlist-074
 
 
-0.8.0 [6'08] (aka "new protocol"):
-- Windows: gnunet-auto-share
-
 0.8.1 [8'08] (aka "growth"):
 - Publishing:
   * clean up indexing with gnunet-insert (#1107)





reply via email to

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