[Top][All Lists]
[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r7471 - in GNUnet: . src/util/containers src/util/network,
gnunet <=