gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r20307 - gnunet/src/namestore
Date: Tue, 6 Mar 2012 13:49:02 +0100

Author: wachs
Date: 2012-03-06 13:49:02 +0100 (Tue, 06 Mar 2012)
New Revision: 20307

Modified:
   gnunet/src/namestore/gnunet-service-namestore.c
   gnunet/src/namestore/namestore.h
   gnunet/src/namestore/namestore_api.c
Log:
- fixes for put and lookup


Modified: gnunet/src/namestore/gnunet-service-namestore.c
===================================================================
--- gnunet/src/namestore/gnunet-service-namestore.c     2012-03-06 12:32:16 UTC 
(rev 20306)
+++ gnunet/src/namestore/gnunet-service-namestore.c     2012-03-06 12:49:02 UTC 
(rev 20307)
@@ -231,8 +231,6 @@
   /* send response */
   struct LookupNameContext *lnc = cls;
   struct LookupNameResponseMessage *lnr_msg;
-
-  struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *zone_key_tmp;
   struct GNUNET_NAMESTORE_RecordData *rd_selected = NULL;
   char *rd_tmp;
   char *name_tmp;
@@ -313,17 +311,16 @@
   lnr_msg->rd_len = htons (rd_ser_len);
   lnr_msg->name_len = htons (name_len);
   lnr_msg->expire = GNUNET_TIME_absolute_hton(expire);
+  lnr_msg->public_key = (*zone_key);
   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];
+  name_tmp = (char *) &lnr_msg[1];
   rd_tmp = &name_tmp[name_len];
 
-  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);
 
@@ -488,7 +485,6 @@
     goto send;
   }
 
-
   GNUNET_HashCode zone_hash;
   GNUNET_CRYPTO_hash (&rp_msg->public_key, sizeof (rp_msg->public_key), 
&zone_hash);
 
@@ -511,11 +507,7 @@
   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
-    rpr_msg.op_result = htons (GNUNET_NO);
+  rpr_msg.op_result = htons (res);
   GNUNET_SERVER_notification_context_unicast (snc, nc->client, (const struct 
GNUNET_MessageHeader *) &rpr_msg, GNUNET_NO);
 
   GNUNET_SERVER_receive_done (client, GNUNET_OK);

Modified: gnunet/src/namestore/namestore.h
===================================================================
--- gnunet/src/namestore/namestore.h    2012-03-06 12:32:16 UTC (rev 20306)
+++ gnunet/src/namestore/namestore.h    2012-03-06 12:49:02 UTC (rev 20307)
@@ -277,7 +277,9 @@
   struct GNUNET_NAMESTORE_Header gns_header;
 
   /**
-   * name length: GNUNET_NO (0) on error, GNUNET_OK (1) on success
+   * result:
+   * GNUNET_SYSERR on failure
+   * GNUNET_OK on success
    */
   int32_t op_result;
 };
@@ -286,7 +288,6 @@
 /**
  * Create a record and put it to the namestore
  * Memory layout:
- * [struct RecordCreateMessage][char *name][rc_count * struct 
GNUNET_NAMESTORE_RecordData]
  */
 struct RecordCreateMessage
 {

Modified: gnunet/src/namestore/namestore_api.c
===================================================================
--- gnunet/src/namestore/namestore_api.c        2012-03-06 12:32:16 UTC (rev 
20306)
+++ gnunet/src/namestore/namestore_api.c        2012-03-06 12:49:02 UTC (rev 
20307)
@@ -323,23 +323,20 @@
               "RECORD_PUT_RESPONSE");
 
   struct GNUNET_NAMESTORE_Handle *h = qe->nsh;
-  int res = GNUNET_OK;
 
   if (ntohs (msg->op_result) == GNUNET_OK)
   {
-    res = GNUNET_OK;
     if (qe->cont != NULL)
     {
-      qe->cont (qe->cont_cls, res, _("Namestore added record successfully"));
+      qe->cont (qe->cont_cls, GNUNET_OK, _("Namestore added record 
successfully"));
     }
 
   }
-  else if (ntohs (msg->op_result) == GNUNET_NO)
+  else if (ntohs (msg->op_result) == GNUNET_SYSERR)
   {
-    res = GNUNET_SYSERR;
     if (qe->cont != NULL)
     {
-      qe->cont (qe->cont_cls, res, _("Namestore failed to add record"));
+      qe->cont (qe->cont_cls, GNUNET_SYSERR, _("Namestore failed to add 
record"));
     }
   }
   else
@@ -952,7 +949,6 @@
   size_t msg_size = 0;
   size_t name_len = 0;
   size_t rd_ser_len = 0;
-  size_t pubkey_len = 0;
   uint32_t rid = 0;
 
   GNUNET_assert (NULL != h);
@@ -981,9 +977,8 @@
   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;
+  msg_size = sizeof (struct RecordPutMessage) + name_len  + rd_ser_len;
 
   /* create msg here */
   pe = GNUNET_malloc(sizeof (struct PendingMessage) + msg_size);
@@ -1042,13 +1037,20 @@
 
   GNUNET_assert (public_key != NULL);
   GNUNET_assert (name != NULL);
+  GNUNET_assert (rd != NULL);
   GNUNET_assert (signature != NULL);
 
+
   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);
 
   name_len = strlen (name) + 1;
+  if (name_len > 256)
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
 
   sig_purpose = GNUNET_malloc(sizeof (struct 
GNUNET_CRYPTO_RsaSignaturePurpose) + rd_ser_len + name_len);
   sig_purpose->size = htonl (sizeof (struct 
GNUNET_CRYPTO_RsaSignaturePurpose)+ rd_ser_len + name_len);




reply via email to

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