[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r20116 - gnunet/src/namestore,
gnunet <=