gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r20116 - gnunet/src/namestore


From: gnunet
Subject: [GNUnet-SVN] r20116 - gnunet/src/namestore
Date: Tue, 28 Feb 2012 17:14:06 +0100

Author: wachs
Date: 2012-02-28 17:14:06 +0100 (Tue, 28 Feb 2012)
New Revision: 20116

Modified:
   gnunet/src/namestore/Makefile.am
   gnunet/src/namestore/gnunet-service-namestore.c
   gnunet/src/namestore/namestore.h
   gnunet/src/namestore/namestore_api.c
   gnunet/src/namestore/test_namestore_api.c
   gnunet/src/namestore/test_namestore_api.conf
Log:
- using de/serialization functionality


Modified: gnunet/src/namestore/Makefile.am
===================================================================
--- gnunet/src/namestore/Makefile.am    2012-02-28 15:33:38 UTC (rev 20115)
+++ gnunet/src/namestore/Makefile.am    2012-02-28 16:14:06 UTC (rev 20116)
@@ -23,19 +23,20 @@
 
 
 check_PROGRAMS = \
- $(SQLITE_TESTS) 
+ $(SQLITE_TESTS) \
+ test_namestore_api \
+ test_namestore_api_zone_iteration \
+ test_namestore_record_serialization
 
 if HAVE_EXPERIMENTAL
-check_PROGRAMS += test_namestore_api \
-test_namestore_api_zone_iteration \
-test_namestore_record_serialization
+ check_PROGRAMS
 endif
 
 lib_LTLIBRARIES = \
   libgnunetnamestore.la
-
+  
 libgnunetnamestore_la_SOURCES = \
-  namestore_api.c namestore.h 
+  namestore_api.c namestore.h
 libgnunetnamestore_la_LIBADD = \
   $(top_builddir)/src/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/util/libgnunetutil.la \
@@ -72,13 +73,15 @@
 
 
 test_namestore_api_SOURCES = \
- test_namestore_api.c
+ test_namestore_api.c \
+ namestore_common.c
 test_namestore_api_LDADD = \
   $(top_builddir)/src/util/libgnunetutil.la \
   $(top_builddir)/src/namestore/libgnunetnamestore.la
   
 test_namestore_api_zone_iteration_SOURCES = \
- test_namestore_api_zone_iteration.c
+ test_namestore_api_zone_iteration.c \
+ namestore_common.c
 test_namestore_api_zone_iteration_LDADD = \
   $(top_builddir)/src/util/libgnunetutil.la \
   $(top_builddir)/src/namestore/libgnunetnamestore.la  

Modified: gnunet/src/namestore/gnunet-service-namestore.c
===================================================================
--- gnunet/src/namestore/gnunet-service-namestore.c     2012-02-28 15:33:38 UTC 
(rev 20115)
+++ gnunet/src/namestore/gnunet-service-namestore.c     2012-02-28 16:14:06 UTC 
(rev 20116)
@@ -369,7 +369,9 @@
   size_t msg_size;
   size_t msg_size_exp;
   char * name;
+  char * rd_ser;
   uint32_t id = 0;
+  uint32_t rd_ser_len;
   uint32_t rd_count;
   int res = GNUNET_SYSERR;
 
@@ -391,9 +393,9 @@
   struct RecordPutMessage * rp_msg = (struct RecordPutMessage *) message;
   id = ntohl (rp_msg->op_id);
   name_len = ntohs (rp_msg->name_len);
-  rd_count = ntohl(rp_msg->rd_count);
+  rd_ser_len = ntohs(rp_msg->rd_len);
   msg_size = ntohs (message->size);
-  msg_size_exp = sizeof (struct RecordPutMessage) + sizeof (struct 
GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded) + name_len  + rd_count * (sizeof 
(struct GNUNET_NAMESTORE_RecordData));
+  msg_size_exp = sizeof (struct RecordPutMessage) + sizeof (struct 
GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded) + name_len  + rd_ser_len;
 
   if (msg_size != msg_size_exp)
   {
@@ -415,7 +417,8 @@
   name = (char *) &zone_key[1];
   expire = GNUNET_TIME_absolute_ntoh(rp_msg->expire);
   signature = (struct GNUNET_CRYPTO_RsaSignature *) &rp_msg->signature;
-  rd = (struct GNUNET_NAMESTORE_RecordData *) &name[name_len];
+  rd_ser = &name[name_len];
+  rd_count = GNUNET_NAMESTORE_records_deserialize(&rd, rd_ser, rd_ser_len);
 
   /* Database operation */
   res = GSN_database->put_records(GSN_database->cls,

Modified: gnunet/src/namestore/namestore.h
===================================================================
--- gnunet/src/namestore/namestore.h    2012-02-28 15:33:38 UTC (rev 20115)
+++ gnunet/src/namestore/namestore.h    2012-02-28 16:14:06 UTC (rev 20116)
@@ -196,8 +196,8 @@
   /* name length */
   uint16_t name_len;
 
-  /* Requested record type */
-  uint32_t rd_count;
+  /* Length of serialized rd data */
+  uint16_t rd_len;
 
   struct GNUNET_TIME_AbsoluteNBO expire;
 

Modified: gnunet/src/namestore/namestore_api.c
===================================================================
--- gnunet/src/namestore/namestore_api.c        2012-02-28 15:33:38 UTC (rev 
20115)
+++ gnunet/src/namestore/namestore_api.c        2012-02-28 16:14:06 UTC (rev 
20116)
@@ -739,11 +739,13 @@
 
   /* pointer to elements */
   struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key_tmp;
-  struct GNUNET_NAMESTORE_RecordData *rd_tmp;
+  char * rd_tmp;
+  char * rd_ser;
   char * name_tmp;
 
   size_t msg_size = 0;
   size_t name_len = strlen(name) + 1;
+  size_t rd_ser_len = 0;
   uint32_t id = 0;
 
   GNUNET_assert (NULL != h);
@@ -756,8 +758,10 @@
   GNUNET_CONTAINER_DLL_insert_tail(h->op_head, h->op_tail, qe);
 
   /* set msg_size*/
+  rd_ser_len = GNUNET_NAMESTORE_records_serialize(&rd_ser, rd_count, rd);
+
   struct RecordPutMessage * msg;
-  msg_size = sizeof (struct RecordPutMessage) + sizeof (struct 
GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded) + name_len  + rd_count * (sizeof 
(struct GNUNET_NAMESTORE_RecordData));
+  msg_size = sizeof (struct RecordPutMessage) + sizeof (struct 
GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded) + name_len  + rd_ser_len;
 
   /* create msg here */
   pe = GNUNET_malloc(sizeof (struct PendingMessage) + msg_size);
@@ -766,7 +770,7 @@
   msg = (struct RecordPutMessage *) &pe[1];
   zone_key_tmp = (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *) &msg[1];
   name_tmp = (char *) &zone_key_tmp[1];
-  rd_tmp = (struct GNUNET_NAMESTORE_RecordData *) &name_tmp[name_len];
+  rd_tmp = &name_tmp[name_len];
 
   msg->header.type = htons (GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_PUT);
   msg->header.size = htons (msg_size);
@@ -776,9 +780,11 @@
   msg->name_len = htons (name_len);
   memcpy (name_tmp, name, name_len);
   msg->expire = GNUNET_TIME_absolute_hton (expire);
-  msg->rd_count = htonl(rd_count);
-  memcpy (rd_tmp, rd, rd_count * (sizeof (struct 
GNUNET_NAMESTORE_RecordData)));
+  msg->rd_len = htons (rd_ser_len);
 
+  memcpy (rd_tmp, rd_ser, rd_ser_len);
+  GNUNET_free (rd_ser);
+
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sending `%s' message for name `%s' 
with size %u\n", "NAMESTORE_RECORD_PUT", name, msg_size);
 
   GNUNET_CONTAINER_DLL_insert_tail (h->pending_head, h->pending_tail, pe);
@@ -832,8 +838,10 @@
 {
   struct GNUNET_NAMESTORE_QueueEntry *qe;
   struct PendingMessage *pe;
-  struct GNUNET_NAMESTORE_RecordData * rd_tmp;
   char * name_tmp;
+  char * rd_tmp;
+  char * rd_ser;
+  size_t rd_ser_len = 0;
   size_t msg_size = 0;
   size_t name_len = 0;
   uint32_t id = 0;
@@ -848,8 +856,9 @@
   qe->op_id = id;
 
   /* set msg_size*/
+  rd_ser_len = GNUNET_NAMESTORE_records_serialize(&rd_ser, 1, rd);
   struct RecordCreateMessage * msg;
-  msg_size = sizeof (struct RecordCreateMessage) + name_len + sizeof (struct 
GNUNET_NAMESTORE_RecordData);
+  msg_size = sizeof (struct RecordCreateMessage) + name_len + rd_ser_len;
 
   /* create msg here */
   pe = GNUNET_malloc(sizeof (struct PendingMessage) + msg_size);
@@ -858,7 +867,7 @@
   msg = (struct RecordCreateMessage *) &pe[1];
 
   name_tmp = (char *) &msg[1];
-  rd_tmp = (struct GNUNET_NAMESTORE_RecordData *) &name_tmp[name_len];
+  rd_tmp = &name_tmp[name_len];
 
   msg->header.type = htons (GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_CREATE);
   msg->header.size = htons (msg_size);
@@ -866,7 +875,8 @@
   //msg->signature = *signature;
   msg->name_len = htons (name_len);
   memcpy (name_tmp, name, name_len);
-  memcpy (rd_tmp, rd, sizeof (struct GNUNET_NAMESTORE_RecordData));
+  memcpy (rd_tmp, rd_ser, rd_ser_len);
+  GNUNET_free (rd_ser);
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sending `%s' message for name `%s' 
with size %u\n", "NAMESTORE_RECORD_CREATE", name, msg_size);
 
@@ -901,8 +911,10 @@
 {
   struct GNUNET_NAMESTORE_QueueEntry *qe;
   struct PendingMessage *pe;
-  struct GNUNET_NAMESTORE_RecordData * rd_tmp;
+  char * rd_tmp;
+  char * rd_ser;
   char * name_tmp;
+  size_t rd_ser_len = 0;
   size_t msg_size = 0;
   size_t name_len = 0;
   uint32_t id = 0;
@@ -917,8 +929,9 @@
   qe->op_id = id;
 
   /* set msg_size*/
+  rd_ser_len = GNUNET_NAMESTORE_records_serialize(&rd_ser, 1, rd);
   struct RecordRemoveMessage * msg;
-  msg_size = sizeof (struct RecordRemoveMessage) + name_len + sizeof (struct 
GNUNET_NAMESTORE_RecordData);
+  msg_size = sizeof (struct RecordRemoveMessage) + name_len + rd_ser_len;
 
   /* create msg here */
   pe = GNUNET_malloc(sizeof (struct PendingMessage) + msg_size);
@@ -927,7 +940,7 @@
   msg = (struct RecordRemoveMessage *) &pe[1];
 
   name_tmp = (char *) &msg[1];
-  rd_tmp = (struct GNUNET_NAMESTORE_RecordData *) &name_tmp[name_len];
+  rd_tmp = &name_tmp[name_len];
 
   msg->header.type = htons (GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_REMOVE);
   msg->header.size = htons (msg_size);
@@ -935,7 +948,8 @@
   //msg->signature = *signature;
   msg->name_len = htons (name_len);
   memcpy (name_tmp, name, name_len);
-  memcpy (rd_tmp, rd, sizeof (struct GNUNET_NAMESTORE_RecordData));
+  memcpy (rd_tmp, rd_ser, rd_ser_len);
+  GNUNET_free (rd_ser);
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sending `%s' message for name `%s' 
with size %u\n", "NAMESTORE_RECORD_REMOVE", name, msg_size);
 

Modified: gnunet/src/namestore/test_namestore_api.c
===================================================================
--- gnunet/src/namestore/test_namestore_api.c   2012-02-28 15:33:38 UTC (rev 
20115)
+++ gnunet/src/namestore/test_namestore_api.c   2012-02-28 16:14:06 UTC (rev 
20116)
@@ -40,7 +40,11 @@
 
 static int res;
 
+#define TEST_RECORD_TYPE 1234
+#define TEST_RECORD_DATALEN 123
+#define TEST_RECORD_DATA 'a'
 
+
 static void
 start_arm (const char *cfgname)
 {
@@ -152,6 +156,13 @@
 
 
   struct GNUNET_CRYPTO_RsaSignature signature;
+  struct GNUNET_NAMESTORE_RecordData rd;
+
+  rd.expiration = GNUNET_TIME_absolute_get();
+  rd.record_type = TEST_RECORD_TYPE;
+  rd.data_size = TEST_RECORD_DATALEN;
+  rd.data = GNUNET_malloc(TEST_RECORD_DATALEN);
+  memset ((char *) rd.data, 'a', TEST_RECORD_DATALEN);
   char * name = "dummy.dummy.gnunet";
 
   start_arm (cfgfile);
@@ -162,7 +173,10 @@
 
   GNUNET_NAMESTORE_record_put (nsh, &pubkey, name,
                               GNUNET_TIME_absolute_get_forever(),
-                              0, NULL, &signature, put_cont, name);
+                              1, &rd, &signature, put_cont, name);
+
+  GNUNET_free ((void *)rd.data);
+
 }
 
 static int

Modified: gnunet/src/namestore/test_namestore_api.conf
===================================================================
--- gnunet/src/namestore/test_namestore_api.conf        2012-02-28 15:33:38 UTC 
(rev 20115)
+++ gnunet/src/namestore/test_namestore_api.conf        2012-02-28 16:14:06 UTC 
(rev 20116)
@@ -4,7 +4,7 @@
 UNIXPATH = /tmp/gnunet-p1-service-arm.sock
 
 [namestore]
-PREFIX = valgrind --leak-check=full
+#PREFIX = valgrind --leak-check=full
 AUTOSTART = YES
 UNIXPATH = /tmp/gnunet-service-namestore.sock
 UNIX_MATCH_UID = YES




reply via email to

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