[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r20306 - gnunet/src/namestore
From: |
gnunet |
Subject: |
[GNUnet-SVN] r20306 - gnunet/src/namestore |
Date: |
Tue, 6 Mar 2012 13:32:16 +0100 |
Author: wachs
Date: 2012-03-06 13:32:16 +0100 (Tue, 06 Mar 2012)
New Revision: 20306
Modified:
gnunet/src/namestore/gnunet-service-namestore.c
gnunet/src/namestore/namestore.h
gnunet/src/namestore/namestore_api.c
gnunet/src/namestore/namestore_common.c
gnunet/src/namestore/plugin_namestore_sqlite.c
Log:
- step 1) compiles again
Modified: gnunet/src/namestore/gnunet-service-namestore.c
===================================================================
--- gnunet/src/namestore/gnunet-service-namestore.c 2012-03-06 11:42:54 UTC
(rev 20305)
+++ gnunet/src/namestore/gnunet-service-namestore.c 2012-03-06 12:32:16 UTC
(rev 20306)
@@ -219,57 +219,6 @@
}
-/**
- * Called whenever a client is disconnected. Frees our
- * resources associated with that client.
- *
- * @param cls closure
- * @param client identification of the client
- * @param message the stop message
- */
-static void handle_stop (void *cls,
- struct GNUNET_SERVER_Client * client,
- const struct GNUNET_MessageHeader * message)
-{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received `%s' message\n",
"NAMESTORE_RECORD_REMOVE");
- struct DisconnectMessage * msg = (struct DisconnectMessage *) message;
- struct GNUNET_NAMESTORE_ZoneIteration * no;
- struct GNUNET_NAMESTORE_Client * nc;
- int drop;
-
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Client %p disconnected \n", client);
-
- nc = client_lookup (client);
- if (nc == NULL)
- {
- GNUNET_break (0);
- return;
- }
-
- for (no = nc->op_head; no != NULL; no = no->next)
- {
- GNUNET_CONTAINER_DLL_remove (nc->op_head, nc->op_tail, no);
- GNUNET_free (no);
- }
-
- drop = ntohl(msg->drop);
- if (GNUNET_YES == drop)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Dropping namestore content\n");
- int stop = GNUNET_NO;
- int offset = 0;
- while (stop == GNUNET_NO)
- {
- GSN_database->iterate_records (GSN_database->cls, NULL, NULL, offset,
&drop_iterator, &stop);
- offset ++;
- }
- }
-
- GNUNET_SERVER_client_drop(nc->client);
- GNUNET_CONTAINER_DLL_remove (client_head, client_tail, nc);
- GNUNET_free (nc);
-}
-
static void
handle_lookup_name_it (void *cls,
const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key,
@@ -288,18 +237,16 @@
char *rd_tmp;
char *name_tmp;
size_t rd_ser_len;
- struct GNUNET_CRYPTO_RsaSignature *signature_tmp;
-
size_t r_size = 0;
-
size_t name_len = 0;
- if (NULL != name)
- name_len = strlen(name) + 1;
int copied_elements = 0;
int contains_signature = 0;
int c;
+ if (NULL != name)
+ name_len = strlen(name) + 1;
+
/* count records to copy */
if (rd_count != 0)
{
@@ -341,25 +288,24 @@
char rd_ser[rd_ser_len];
GNUNET_NAMESTORE_records_serialize(copied_elements, rd_selected, rd_ser_len,
rd_ser);
+ if (rd_selected != rd)
+ GNUNET_free (rd_selected);
+
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Found %u records for name `%s' in zone
`%s'\n",
copied_elements, lnc->name, GNUNET_h2s(lnc->zone));
if ((copied_elements == rd_count) && (signature != NULL))
- contains_signature = GNUNET_YES;
+ contains_signature = GNUNET_YES;
+ else
+ contains_signature = GNUNET_NO;
- if (rd_selected != rd)
- GNUNET_free (rd_selected);
-
r_size = sizeof (struct LookupNameResponseMessage) +
sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded) +
name_len +
- rd_ser_len +
- contains_signature * sizeof (struct GNUNET_CRYPTO_RsaSignature);
+ rd_ser_len;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sending `%s' message\n",
"NAMESTORE_LOOKUP_NAME_RESPONSE");
-
lnr_msg = GNUNET_malloc (r_size);
-
lnr_msg->gns_header.header.type = ntohs
(GNUNET_MESSAGE_TYPE_NAMESTORE_LOOKUP_NAME_RESPONSE);
lnr_msg->gns_header.header.size = ntohs (r_size);
lnr_msg->gns_header.r_id = htonl (lnc->request_id);
@@ -368,25 +314,19 @@
lnr_msg->name_len = htons (name_len);
lnr_msg->expire = GNUNET_TIME_absolute_hton(expire);
lnr_msg->contains_sig = htons (contains_signature);
+ if (GNUNET_YES == contains_signature)
+ lnr_msg->signature = *signature;
+ else
+ memset (&lnr_msg->signature, '\0', sizeof (lnr_msg->signature));
zone_key_tmp = (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *)
&lnr_msg[1];
name_tmp = (char *) &zone_key_tmp[1];
rd_tmp = &name_tmp[name_len];
- signature_tmp = (struct GNUNET_CRYPTO_RsaSignature *) &rd_tmp[rd_ser_len];
- if (zone_key != NULL)
- memcpy (zone_key_tmp, zone_key, sizeof (struct
GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded));
- else
- {
- struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded dummy;
- memset (&dummy, '0', sizeof (struct
GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded));
- memcpy (zone_key_tmp, &dummy, sizeof (struct
GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded));
- }
+ memcpy (zone_key_tmp, zone_key, sizeof (struct
GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded));
memcpy (name_tmp, name, name_len);
memcpy (rd_tmp, rd_ser, rd_ser_len);
- if (GNUNET_YES == contains_signature)
- memcpy (signature_tmp, signature, sizeof (struct
GNUNET_CRYPTO_RsaSignature));
GNUNET_SERVER_notification_context_unicast (snc, lnc->nc->client, (const
struct GNUNET_MessageHeader *) lnr_msg, GNUNET_NO);
GNUNET_free (lnr_msg);
@@ -444,6 +384,7 @@
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Looking up all records for name `%s'
in zone `%s'\n", name, GNUNET_h2s(&ln_msg->zone));
else
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Looking up records with type %u for
name `%s' in zone `%s'\n", type, name, GNUNET_h2s(&ln_msg->zone));
+
/* do the actual lookup */
lnc.request_id = rid;
lnc.nc = nc;
@@ -462,13 +403,11 @@
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received `%s' message\n",
"NAMESTORE_RECORD_PUT");
struct GNUNET_NAMESTORE_Client *nc;
struct GNUNET_TIME_Absolute expire;
- struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key;
struct GNUNET_CRYPTO_RsaSignature *signature;
struct RecordPutResponseMessage rpr_msg;
size_t name_len;
size_t msg_size;
size_t msg_size_exp;
- size_t key_len;
char * name;
char * rd_ser;
uint32_t rid = 0;
@@ -495,7 +434,6 @@
rid = ntohl (rp_msg->gns_header.r_id);
msg_size = ntohs (rp_msg->gns_header.header.size);
- key_len = ntohs (rp_msg->key_len);
name_len = ntohs (rp_msg->name_len);
rd_count = ntohs (rp_msg->rd_count);
rd_ser_len = ntohs(rp_msg->rd_len);
@@ -514,7 +452,7 @@
return;
}
- msg_size_exp = sizeof (struct RecordPutMessage) + key_len + name_len +
rd_ser_len;
+ msg_size_exp = sizeof (struct RecordPutMessage) + name_len + rd_ser_len;
if (msg_size != msg_size_exp)
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Expected message %u size but message
size is %u \n", msg_size_exp, msg_size);
@@ -529,8 +467,7 @@
return;
}
- zone_key = (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *) &rp_msg[1];
- name = &((char *)zone_key)[key_len];
+ name = (char *) &rp_msg[1];
if (name[name_len -1] != '\0')
{
@@ -553,13 +490,13 @@
GNUNET_HashCode zone_hash;
- GNUNET_CRYPTO_hash (zone_key, key_len, &zone_hash);
+ GNUNET_CRYPTO_hash (&rp_msg->public_key, sizeof (rp_msg->public_key),
&zone_hash);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Putting %u record for name `%s' in
zone `%s'\n", rd_count, name, GNUNET_h2s(&zone_hash));
/* Database operation */
res = GSN_database->put_records(GSN_database->cls,
- zone_key,
+ &rp_msg->public_key,
expire,
name,
rd_count, rd,
@@ -571,9 +508,10 @@
/* Send response */
send:
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sending `%s' message\n",
"RECORD_PUT_RESPONSE");
- rpr_msg.header.type = htons
(GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_PUT_RESPONSE);
- rpr_msg.op_id = rp_msg->gns_header.r_id;
- rpr_msg.header.size = htons (sizeof (struct RecordPutResponseMessage));
+ rpr_msg.gns_header.header.type = htons
(GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_PUT_RESPONSE);
+ rpr_msg.gns_header.header.size = htons (sizeof (struct
RecordPutResponseMessage));
+ rpr_msg.gns_header.r_id = rp_msg->gns_header.r_id;
+
if (GNUNET_OK == res)
rpr_msg.op_result = htons (GNUNET_OK);
else
@@ -965,7 +903,7 @@
name_len = ntohs (rr_msg->name_len);
rd_ser_len = ntohs (rr_msg->rd_len);
rd_count = ntohs (rr_msg->rd_count);
- key_len = ntohs (rr_msg->key_len);
+ key_len = ntohs (rr_msg->pkey_len);
msg_size = ntohs (message->size);
if (msg_size > GNUNET_SERVER_MAX_MESSAGE_SIZE)
@@ -1137,7 +1075,6 @@
ztnr_msg->rd_len = htons (rd_ser_len);
ztnr_msg->rd_count = htons (rd_count);
ztnr_msg->name_len = htons (name_len);
- ztnr_msg->contains_sig = htons (contains_sig);
ztnr_msg->expire = GNUNET_TIME_absolute_hton(expire);
if (zone_key != NULL)
ztnr_msg->zone_key = *zone_key;
@@ -1425,8 +1362,6 @@
static const struct GNUNET_SERVER_MessageHandler handlers[] = {
{&handle_start, NULL,
GNUNET_MESSAGE_TYPE_NAMESTORE_START, sizeof (struct StartMessage)},
- {&handle_stop, NULL,
- GNUNET_MESSAGE_TYPE_NAMESTORE_DISCONNECT, sizeof (struct
DisconnectMessage)},
{&handle_lookup_name, NULL,
GNUNET_MESSAGE_TYPE_NAMESTORE_LOOKUP_NAME, 0},
{&handle_record_put, NULL,
@@ -1439,10 +1374,10 @@
GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_TO_NAME, 0},
{&handle_iteration_start, NULL,
GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_ITERATION_START, sizeof (struct
ZoneIterationStartMessage)},
- {&handle_iteration_stop, NULL,
- GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_ITERATION_STOP, sizeof (struct
ZoneIterationStopMessage)},
{&handle_iteration_next, NULL,
GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_ITERATION_NEXT, 0},
+ {&handle_iteration_stop, NULL,
+ GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_ITERATION_STOP, 0},
{NULL, NULL, 0, 0}
};
Modified: gnunet/src/namestore/namestore.h
===================================================================
--- gnunet/src/namestore/namestore.h 2012-03-06 11:42:54 UTC (rev 20305)
+++ gnunet/src/namestore/namestore.h 2012-03-06 12:32:16 UTC (rev 20306)
@@ -47,7 +47,7 @@
#define GNUNET_MESSAGE_TYPE_NAMESTORE_DISCONNECT 449
/**
- * Sign name and records
+ * Create a signature based on name and records
*
* @param key the private key
* @param name the name
@@ -57,13 +57,16 @@
* @return the signature
*/
struct GNUNET_CRYPTO_RsaSignature *
-GNUNET_NAMESTORE_create_signature (const struct GNUNET_CRYPTO_RsaPrivateKey
*key, const char *name, struct GNUNET_NAMESTORE_RecordData *rd, unsigned int
rd_count);
+GNUNET_NAMESTORE_create_signature (const struct GNUNET_CRYPTO_RsaPrivateKey
*key,
+ const char *name,
+ const struct GNUNET_NAMESTORE_RecordData
*rd,
+ unsigned int rd_count);
/**
* Compares if two records are equal
*
- * @param a record
- * @param b record
+ * @param a Record a
+ * @param b Record b
*
* @return GNUNET_YES or GNUNET_NO
*/
@@ -71,10 +74,12 @@
GNUNET_NAMESTORE_records_cmp (const struct GNUNET_NAMESTORE_RecordData *a,
const struct GNUNET_NAMESTORE_RecordData *b);
+
GNUNET_NETWORK_STRUCT_BEGIN
/**
* A GNS record serialized for network transmission.
- * layout is [struct GNUNET_NAMESTORE_NetworkRecord][char[data_size] data]
+ *
+ * Layout is [struct GNUNET_NAMESTORE_NetworkRecord][char[data_size] data]
*/
struct GNUNET_NAMESTORE_NetworkRecord
{
@@ -114,25 +119,7 @@
};
-/**
- * Connect to namestore service. FIXME: UNNECESSARY.
- */
-struct DisconnectMessage
-{
- /**
- * Type will be GNUNET_MESSAGE_TYPE_NAMESTORE_DISCONNECT
- */
- struct GNUNET_MessageHeader header;
-
- /**
- * Drop namestore?
- * GNUNET_YES or _NO in NBO
- */
- uint32_t drop;
-};
-
-
/**
* Generic namestore message with op id
*/
@@ -152,7 +139,7 @@
/**
- * Connect to namestore service
+ * Lookup a name in the namestore
*/
struct LookupNameMessage
{
@@ -179,8 +166,6 @@
/**
* Lookup response
- * Memory layout:
- * [struct LookupNameResponseMessage][char *name][rc_count * struct
GNUNET_NAMESTORE_RecordData]
*/
struct LookupNameResponseMessage
{
@@ -189,14 +174,31 @@
*/
struct GNUNET_NAMESTORE_Header gns_header;
+ /**
+ * Expiration time
+ */
struct GNUNET_TIME_AbsoluteNBO expire;
+
+ /**
+ * Name length
+ */
uint16_t name_len;
+ /**
+ * Bytes of serialized record data
+ */
uint16_t rd_len;
+ /**
+ * Number of records contained
+ */
uint16_t rd_count;
+ /**
+ * Is the signature valid
+ * GNUNET_YES or GNUNET_NO
+ */
int16_t contains_sig;
/**
@@ -205,18 +207,17 @@
struct GNUNET_CRYPTO_RsaSignature signature;
/**
- *
+ * The public key for the name
*/
struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded public_key;
/* 0-terminated name and serialized record data */
+ /* rd_len bytes serialized record data */
};
/**
* Put a record to the namestore
- * Memory layout:
- * [struct RecordPutMessage][char *name][rc_count * struct
GNUNET_NAMESTORE_RecordData]
*/
struct RecordPutMessage
{
@@ -226,17 +227,17 @@
struct GNUNET_NAMESTORE_Header gns_header;
/**
- *
+ * Expiration time
*/
struct GNUNET_TIME_AbsoluteNBO expire;
/**
- * name length
+ * Name length
*/
uint16_t name_len;
/**
- * Length of serialized rd data
+ * Length of serialized record data
*/
uint16_t rd_len;
@@ -251,12 +252,12 @@
uint16_t reserved;
/**
- *
+ * The signature
*/
struct GNUNET_CRYPTO_RsaSignature signature;
/**
- *
+ * The public key
*/
struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded public_key;
@@ -297,12 +298,12 @@
struct GNUNET_TIME_AbsoluteNBO expire;
/**
- * name length
+ * Name length
*/
uint16_t name_len;
/**
- * Record data length
+ * Length of serialized record data
*/
uint16_t rd_len;
@@ -316,13 +317,16 @@
*/
uint16_t pkey_len;
- /* followed by: name and serialized record data --- PK??? */
+ /* followed by:
+ * GNUNET_CRYPTO_RsaPrivateKeyBinaryEncoded private key with length pkey_len
+ * name with length name_len
+ * serialized record data with length rd_len
+ * */
};
/**
* Create a record to the namestore response
- * Memory layout:
*/
struct RecordCreateResponseMessage
{
@@ -335,14 +339,12 @@
* name length: GNUNET_NO already exists, GNUNET_YES on success,
GNUNET_SYSERR error
*/
int32_t op_result;
-
};
/**
* Remove a record from the namestore
* Memory layout:
- * [struct RecordRemoveMessage][char *name][struct GNUNET_NAMESTORE_RecordData]
*/
struct RecordRemoveMessage
{
@@ -367,9 +369,15 @@
uint16_t rd_count;
/**
- * Length of pubkey
+ * Length of private key
*/
- uint16_t key_len;
+ uint16_t pkey_len;
+
+ /* followed by:
+ * GNUNET_CRYPTO_RsaPrivateKeyBinaryEncoded private key with length pkey_len
+ * name with length name_len
+ * serialized record data with length rd_len
+ * */
};
@@ -396,10 +404,13 @@
/**
- * Connect to namestore service
+ * Lookup a name for a zone hash
*/
struct ZoneToNameMessage
{
+ /**
+ * Type will be GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_TO_NAME
+ */
struct GNUNET_NAMESTORE_Header gns_header;
/**
@@ -414,28 +425,46 @@
};
/**
- * Connect to namestore service
+ * Respone for zone to name lookup
*/
struct ZoneToNameResponseMessage
{
+ /**
+ * Type will be GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_TO_NAME_RESPONSE
+ */
struct GNUNET_NAMESTORE_Header gns_header;
+ /**
+ * Record block expiration
+ */
struct GNUNET_TIME_AbsoluteNBO expire;
+ /**
+ * Length of the name
+ */
uint16_t name_len;
+ /**
+ * Length of serialized record data
+ */
uint16_t rd_len;
+ /**
+ * Number of records contained
+ */
uint16_t rd_count;
/* result in NBO: GNUNET_OK on success, GNUNET_NO if there were no results,
GNUNET_SYSERR on error */
int16_t res;
/**
- *
+ * Signature
*/
struct GNUNET_CRYPTO_RsaSignature signature;
+ /**
+ * Publik key
+ */
struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded zone_key;
};
@@ -452,12 +481,20 @@
*/
struct GNUNET_NAMESTORE_Header gns_header;
+ /**
+ * Zone hash
+ */
GNUNET_HashCode zone;
+ /**
+ * Which flags must be included
+ */
uint16_t must_have_flags;
+ /**
+ * Which flags must not be included
+ */
uint16_t must_not_have_flags;
-
};
@@ -519,7 +556,7 @@
struct GNUNET_CRYPTO_RsaSignature signature;
/**
- *
+ * The public key
*/
struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded public_key;
Modified: gnunet/src/namestore/namestore_api.c
===================================================================
--- gnunet/src/namestore/namestore_api.c 2012-03-06 11:42:54 UTC (rev
20305)
+++ gnunet/src/namestore/namestore_api.c 2012-03-06 12:32:16 UTC (rev
20306)
@@ -254,12 +254,10 @@
"LOOKUP_NAME_RESPONSE");
struct GNUNET_NAMESTORE_Handle *h = qe->nsh;
- struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key;
char *name;
char * rd_tmp;
struct GNUNET_CRYPTO_RsaSignature *signature = NULL;
- struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded dummy;
struct GNUNET_TIME_Absolute expire;
size_t exp_msg_len;
size_t msg_len = 0;
@@ -277,9 +275,7 @@
exp_msg_len = sizeof (struct LookupNameResponseMessage) +
sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded) +
- name_len +
- rd_len +
- contains_sig * sizeof (struct GNUNET_CRYPTO_RsaSignature);
+ name_len + rd_len;
if (msg_len != exp_msg_len)
{
@@ -288,11 +284,16 @@
GNUNET_break_op (0);
return;
}
+ if (name_len == 0)
+ {
+ GNUNET_break_op (0);
+ return;
+ }
- zone_key = (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *) &msg[1];
- name = (char *) &zone_key[1];
+ name = (char *) &msg[1];
rd_tmp = &name[name_len];
+ /* deserialize records */
struct GNUNET_NAMESTORE_RecordData rd[rd_count];
GNUNET_NAMESTORE_records_deserialize(rd_len, rd_tmp, rd_count, rd);
@@ -300,17 +301,11 @@
if (contains_sig == GNUNET_NO)
signature = NULL;
else
- signature = (struct GNUNET_CRYPTO_RsaSignature *) &rd_tmp[rd_len];
- if (name_len == 0)
- name = NULL;
+ signature = &msg->signature;
- memset (&dummy, '0', sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded));
- if (0 == memcmp (zone_key, &dummy, sizeof(struct
GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded)))
- zone_key = NULL;
-
if (qe->proc != NULL)
{
- qe->proc (qe->proc_cls, zone_key, expire, name, rd_count, (rd_count > 0) ?
rd : NULL, signature);
+ qe->proc (qe->proc_cls, &msg->public_key, expire, name, rd_count,
(rd_count > 0) ? rd : NULL, signature);
}
/* Operation done, remove */
@@ -482,11 +477,9 @@
size_t name_len;
size_t rd_ser_len;
unsigned int rd_count;
- int have_signature;
char * name_tmp;
char * rd_tmp;
- struct GNUNET_CRYPTO_RsaSignature* sig_tmp;
if (res == GNUNET_SYSERR)
{
@@ -507,22 +500,16 @@
name_len = ntohs (msg->name_len);
rd_count = ntohs (msg->rd_count);
rd_ser_len = ntohs (msg->rd_len);
- have_signature = ntohl (msg->contains_sig);
expire = GNUNET_TIME_absolute_ntoh(msg->expire);
name_tmp = (char *) &msg[1];
rd_tmp = &name_tmp[name_len];
- if (have_signature == GNUNET_YES)
- sig_tmp = (struct GNUNET_CRYPTO_RsaSignature *) &rd_tmp[rd_ser_len];
- else
- sig_tmp = NULL;
struct GNUNET_NAMESTORE_RecordData rd[rd_count];
GNUNET_NAMESTORE_records_deserialize(rd_ser_len, rd_tmp, rd_count, rd);
if (qe->proc != NULL)
- qe->proc (qe->proc_cls, &msg->zone_key, expire, name_tmp, rd_count, rd,
sig_tmp);
-
+ qe->proc (qe->proc_cls, &msg->zone_key, expire, name_tmp, rd_count, rd,
&msg->signature);
}
else
GNUNET_break_op (0);
@@ -869,12 +856,6 @@
return h;
}
-struct DisconnectContext
-{
- struct GNUNET_NAMESTORE_Handle *h;
- int drop;
-};
-
static void
clean_up_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
@@ -917,36 +898,6 @@
h = NULL;
};
-static size_t
-transmit_disconnect_to_namestore (void *cls, size_t size, void *buf)
-{
- struct DisconnectContext * d_ctx = cls;
- struct DisconnectMessage d_msg;
- struct GNUNET_NAMESTORE_Handle *h = d_ctx->h;
- int res;
-
- d_msg.header.type = htons (GNUNET_MESSAGE_TYPE_NAMESTORE_DISCONNECT);
- d_msg.header.size = htons (sizeof (struct DisconnectMessage));
- d_msg.drop = htonl (d_ctx->drop);
-
- h->th = NULL;
- if ((size == 0) || (buf == NULL) || (size < sizeof (struct
DisconnectMessage)))
- {
- GNUNET_break (0);
- res = 0;
- }
- else
- {
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sending `%s' message to service \n",
"NAMESTORE_DISCONNECT");
- memcpy (buf, &d_msg, sizeof (struct DisconnectMessage));
- res = sizeof (struct DisconnectMessage);
- }
-
- GNUNET_SCHEDULER_add_now (&clean_up_task, h);
- GNUNET_free (d_ctx);
- return res;
-}
-
/**
* Disconnect from the namestore service (and free associated
* resources).
@@ -957,29 +908,8 @@
void
GNUNET_NAMESTORE_disconnect (struct GNUNET_NAMESTORE_Handle *h, int drop)
{
- if (h->th != NULL)
- {
- GNUNET_CLIENT_notify_transmit_ready_cancel(h->th);
- h->th = NULL;
- }
- if (h->client != NULL)
- {
- struct DisconnectContext *d_ctx = GNUNET_malloc (sizeof (struct
DisconnectContext));
- d_ctx->h = h;
- d_ctx->drop = drop;
-
- h->th = GNUNET_CLIENT_notify_transmit_ready (h->client, sizeof (struct
DisconnectMessage),
- GNUNET_TIME_UNIT_FOREVER_REL,
- GNUNET_NO,
&transmit_disconnect_to_namestore,
- d_ctx);
- }
- else
- {
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Could not send disconnect
notification to namestore service, we are not connected!\n");
- if (GNUNET_YES == drop)
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "NAMESTORE will not drop
content\n");
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Disconnecting from namestore
service\n");
GNUNET_SCHEDULER_add_now (&clean_up_task, h);
- }
}
@@ -1016,7 +946,6 @@
struct PendingMessage *pe;
/* pointer to elements */
- char * zone_key_tmp;
char * rd_tmp;
char * name_tmp;
@@ -1061,22 +990,20 @@
pe->size = msg_size;
pe->is_init = GNUNET_NO;
msg = (struct RecordPutMessage *) &pe[1];
- zone_key_tmp = (char *) &msg[1];
- name_tmp = (char *) &zone_key_tmp[pubkey_len];
+ name_tmp = (char *) &msg[1];
rd_tmp = &name_tmp[name_len];
msg->gns_header.header.type = htons
(GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_PUT);
msg->gns_header.header.size = htons (msg_size);
msg->gns_header.r_id = htonl (rid);
- msg->key_len = htons (pubkey_len);
- memcpy (zone_key_tmp, zone_key, pubkey_len);
msg->signature = *signature;
msg->name_len = htons (name_len);
- memcpy (name_tmp, name, name_len);
msg->expire = GNUNET_TIME_absolute_hton (expire);
msg->rd_len = htons (rd_ser_len);
msg->rd_count = htons (rd_count);
+ msg->public_key = *zone_key;
+ memcpy (name_tmp, name, name_len);
memcpy (rd_tmp, rd_ser, rd_ser_len);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sending `%s' message for name `%s'
with size %u\n", "NAMESTORE_RECORD_PUT", name, msg_size);
@@ -1306,7 +1233,7 @@
msg->name_len = htons (name_len);
msg->rd_len = htons (rd_ser_len);
msg->rd_count = htons (1);
- msg->key_len = htons (key_len);
+ msg->pkey_len = htons (key_len);
memcpy (pkey_tmp, pkey_enc, key_len);
memcpy (name_tmp, name, name_len);
memcpy (rd_tmp, rd_ser, rd_ser_len);
Modified: gnunet/src/namestore/namestore_common.c
===================================================================
--- gnunet/src/namestore/namestore_common.c 2012-03-06 11:42:54 UTC (rev
20305)
+++ gnunet/src/namestore/namestore_common.c 2012-03-06 12:32:16 UTC (rev
20306)
@@ -206,7 +206,7 @@
struct GNUNET_CRYPTO_RsaSignature *
GNUNET_NAMESTORE_create_signature (const struct GNUNET_CRYPTO_RsaPrivateKey
*key,
const char *name,
- struct GNUNET_NAMESTORE_RecordData *rd,
+ const struct GNUNET_NAMESTORE_RecordData *rd,
unsigned int rd_count)
{
struct GNUNET_CRYPTO_RsaSignature *sig = GNUNET_malloc(sizeof (struct
GNUNET_CRYPTO_RsaSignature));
Modified: gnunet/src/namestore/plugin_namestore_sqlite.c
===================================================================
--- gnunet/src/namestore/plugin_namestore_sqlite.c 2012-03-06 11:42:54 UTC
(rev 20305)
+++ gnunet/src/namestore/plugin_namestore_sqlite.c 2012-03-06 12:32:16 UTC
(rev 20306)
@@ -480,7 +480,7 @@
GNUNET_CRYPTO_hash (name, name_len, &nh);
memset (&zone_delegation, 0, sizeof (zone_delegation));
for (i=0;i<rd_count;i++)
- if (rd[i].record_type == GNUNET_GNS_TYPE_PKEY)
+ if (rd[i].record_type == GNUNET_NAMESTORE_TYPE_PKEY)
{
GNUNET_assert (sizeof (GNUNET_HashCode) == rd[i].data_size);
memcpy (&zone_delegation,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r20306 - gnunet/src/namestore,
gnunet <=