[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r20165 - gnunet/src/namestore
From: |
gnunet |
Subject: |
[GNUnet-SVN] r20165 - gnunet/src/namestore |
Date: |
Thu, 1 Mar 2012 13:01:57 +0100 |
Author: wachs
Date: 2012-03-01 13:01:57 +0100 (Thu, 01 Mar 2012)
New Revision: 20165
Modified:
gnunet/src/namestore/namestore_api.c
Log:
- changes
Modified: gnunet/src/namestore/namestore_api.c
===================================================================
--- gnunet/src/namestore/namestore_api.c 2012-03-01 11:58:24 UTC (rev
20164)
+++ gnunet/src/namestore/namestore_api.c 2012-03-01 12:01:57 UTC (rev
20165)
@@ -209,7 +209,7 @@
struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key;
char *name;
char * rd_tmp;
- struct GNUNET_NAMESTORE_RecordData *rd = NULL;
+
struct GNUNET_CRYPTO_RsaSignature *signature = NULL;
struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded dummy;
struct GNUNET_TIME_Absolute expire;
@@ -221,6 +221,7 @@
int rd_count = 0;
rd_len = ntohs (msg->rd_len);
+ rd_count = ntohs (msg->rd_count);
msg_len = ntohs (msg->gns_header.header.size);
name_len = ntohs (msg->name_len);
contains_sig = ntohs (msg->contains_sig);
@@ -243,15 +244,15 @@
zone_key = (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *) &msg[1];
name = (char *) &zone_key[1];
rd_tmp = &name[name_len];
- rd_count = GNUNET_NAMESTORE_records_deserialize(&rd, rd_tmp, rd_len);
+ struct GNUNET_NAMESTORE_RecordData rd[rd_count];
+ GNUNET_NAMESTORE_records_deserialize(rd_len, rd_tmp, rd_count, rd);
+
/* reset values if values not contained */
if (contains_sig == GNUNET_NO)
signature = NULL;
else
signature = (struct GNUNET_CRYPTO_RsaSignature *) &rd_tmp[rd_len];
- if (rd_count == 0)
- rd = NULL;
if (name_len == 0)
name = NULL;
@@ -261,11 +262,9 @@
if (qe->proc != NULL)
{
- qe->proc (qe->proc_cls, zone_key, expire, name, rd_count, rd, signature);
+ qe->proc (qe->proc_cls, zone_key, expire, name, rd_count, (rd_count > 0) ?
rd : NULL, signature);
}
- GNUNET_NAMESTORE_records_free(rd_count, rd);
-
/* Operation done, remove */
GNUNET_CONTAINER_DLL_remove(h->op_head, h->op_tail, qe);
GNUNET_free (qe);
@@ -759,7 +758,6 @@
/* pointer to elements */
char * zone_key_tmp;
char * rd_tmp;
- char * rd_ser;
char * name_tmp;
size_t msg_size = 0;
@@ -790,7 +788,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);
+ rd_ser_len = GNUNET_NAMESTORE_records_get_size(rd_count, rd);
+ char rd_ser[rd_ser_len];
+ GNUNET_NAMESTORE_records_serialize(rd_count, rd, rd_ser_len, rd_ser);
+
pubkey_len = sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded);
struct RecordPutMessage * msg;
msg_size = sizeof (struct RecordPutMessage) + pubkey_len + name_len +
rd_ser_len;
@@ -875,7 +876,6 @@
char * name_tmp;
char * pkey_tmp;
char * rd_tmp;
- char * rd_ser;
size_t rd_ser_len = 0;
size_t msg_size = 0;
size_t name_len = 0;
@@ -906,7 +906,11 @@
struct GNUNET_CRYPTO_RsaPrivateKeyBinaryEncoded * pkey_enc =
GNUNET_CRYPTO_rsa_encode_key (pkey);
GNUNET_assert (pkey_enc != NULL);
key_len = ntohs (pkey_enc->len);
- rd_ser_len = GNUNET_NAMESTORE_records_serialize(&rd_ser, 1, rd);
+
+ rd_ser_len = GNUNET_NAMESTORE_records_get_size(1, rd);
+ char rd_ser[rd_ser_len];
+ GNUNET_NAMESTORE_records_serialize(1, rd, rd_ser_len, rd_ser);
+
struct RecordCreateMessage * msg;
msg_size = sizeof (struct RecordCreateMessage) + key_len + name_len +
rd_ser_len;
@@ -966,7 +970,6 @@
struct GNUNET_NAMESTORE_QueueEntry *qe;
struct PendingMessage *pe;
char * rd_tmp;
- char * rd_ser;
char * name_tmp;
size_t rd_ser_len = 0;
size_t msg_size = 0;
@@ -983,7 +986,10 @@
qe->op_id = rid;
/* set msg_size*/
- rd_ser_len = GNUNET_NAMESTORE_records_serialize(&rd_ser, 1, rd);
+ rd_ser_len = GNUNET_NAMESTORE_records_get_size(1, rd);
+ char rd_ser[rd_ser_len];
+ GNUNET_NAMESTORE_records_serialize(1, rd, rd_ser_len, rd_ser);
+
struct RecordRemoveMessage * msg;
msg_size = sizeof (struct RecordRemoveMessage) + name_len + rd_ser_len;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r20165 - gnunet/src/namestore,
gnunet <=