aboutsummaryrefslogtreecommitdiff
path: root/src/namestore
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2013-12-16 21:47:50 +0000
committerChristian Grothoff <christian@grothoff.org>2013-12-16 21:47:50 +0000
commitd4110a7d8d9d2559b0806f3f993ea197ae4ddb67 (patch)
tree6b301815dc56449f7d1973f1bb395e69a677fd10 /src/namestore
parentaed4626fc179259154c05413717076de7c85b1a7 (diff)
downloadgnunet-d4110a7d8d9d2559b0806f3f993ea197ae4ddb67.tar.gz
gnunet-d4110a7d8d9d2559b0806f3f993ea197ae4ddb67.zip
-never store NICKs anywhere but in '+', do not display nicks in gnunet-namestore
Diffstat (limited to 'src/namestore')
-rw-r--r--src/namestore/gnunet-namestore.c3
-rw-r--r--src/namestore/gnunet-service-namestore.c42
-rw-r--r--src/namestore/namestore_api.c2
3 files changed, 32 insertions, 15 deletions
diff --git a/src/namestore/gnunet-namestore.c b/src/namestore/gnunet-namestore.c
index 0a030acc5..e985e1b04 100644
--- a/src/namestore/gnunet-namestore.c
+++ b/src/namestore/gnunet-namestore.c
@@ -1,4 +1,3 @@
1
2/* 1/*
3 This file is part of GNUnet. 2 This file is part of GNUnet.
4 (C) 2012, 2013 Christian Grothoff (and other contributing authors) 3 (C) 2012, 2013 Christian Grothoff (and other contributing authors)
@@ -385,6 +384,8 @@ display_record (void *cls,
385 rname); 384 rname);
386 for (i=0;i<rd_len;i++) 385 for (i=0;i<rd_len;i++)
387 { 386 {
387 if (GNUNET_GNSRECORD_TYPE_NICK == rd[i].record_type)
388 continue;
388 typestring = GNUNET_GNSRECORD_number_to_typename (rd[i].record_type); 389 typestring = GNUNET_GNSRECORD_number_to_typename (rd[i].record_type);
389 s = GNUNET_GNSRECORD_value_to_string (rd[i].record_type, 390 s = GNUNET_GNSRECORD_value_to_string (rd[i].record_type,
390 rd[i].data, 391 rd[i].data,
diff --git a/src/namestore/gnunet-service-namestore.c b/src/namestore/gnunet-service-namestore.c
index c2b62419d..64c844d1c 100644
--- a/src/namestore/gnunet-service-namestore.c
+++ b/src/namestore/gnunet-service-namestore.c
@@ -495,6 +495,7 @@ merge_with_nick_records ( const struct GNUNET_GNSRECORD_Data *nick_rd,
495 latest_expiration = rd2[c].expiration_time; 495 latest_expiration = rd2[c].expiration_time;
496 (*rd_res)[c] = rd2[c]; 496 (*rd_res)[c] = rd2[c];
497 (*rd_res)[c].data = (void *) &data[data_offset]; 497 (*rd_res)[c].data = (void *) &data[data_offset];
498 // WTF?
498 memcpy ((void *) (*rd_res)[c].data, rd2[c].data, rd2[c].data_size); 499 memcpy ((void *) (*rd_res)[c].data, rd2[c].data, rd2[c].data_size);
499 data_offset += (*rd_res)[c].data_size; 500 data_offset += (*rd_res)[c].data_size;
500 } 501 }
@@ -504,7 +505,10 @@ merge_with_nick_records ( const struct GNUNET_GNSRECORD_Data *nick_rd,
504 (*rd_res)[c+record_offset] = nick_rd[c]; 505 (*rd_res)[c+record_offset] = nick_rd[c];
505 (*rd_res)[c+record_offset].expiration_time = latest_expiration; 506 (*rd_res)[c+record_offset].expiration_time = latest_expiration;
506 (*rd_res)[c+record_offset].data = (void *) &data[data_offset]; 507 (*rd_res)[c+record_offset].data = (void *) &data[data_offset];
507 memcpy ((void *) (*rd_res)[c+record_offset].data, nick_rd[c].data, nick_rd[c].data_size); 508 // WTF?
509 memcpy ((void *) (*rd_res)[c+record_offset].data,
510 nick_rd[c].data,
511 nick_rd[c].data_size);
508 data_offset += (*rd_res)[c+record_offset].data_size; 512 data_offset += (*rd_res)[c+record_offset].data_size;
509 } 513 }
510 GNUNET_assert (req == (sizeof (struct GNUNET_GNSRECORD_Data)) * (*rdc_res) + data_offset); 514 GNUNET_assert (req == (sizeof (struct GNUNET_GNSRECORD_Data)) * (*rdc_res) + data_offset);
@@ -546,7 +550,7 @@ send_lookup_response (struct GNUNET_SERVER_NotificationContext *nc,
546 if ((NULL != nick) && (0 != strcmp(name, GNUNET_GNS_MASTERZONE_STR))) 550 if ((NULL != nick) && (0 != strcmp(name, GNUNET_GNS_MASTERZONE_STR)))
547 { 551 {
548 nick->flags = (nick->flags | GNUNET_GNSRECORD_RF_PRIVATE) ^ GNUNET_GNSRECORD_RF_PRIVATE; 552 nick->flags = (nick->flags | GNUNET_GNSRECORD_RF_PRIVATE) ^ GNUNET_GNSRECORD_RF_PRIVATE;
549 merge_with_nick_records (nick, rd_count,rd, &res_count, &res); 553 merge_with_nick_records (nick, rd_count, rd, &res_count, &res);
550 //fprintf (stderr, "Merging %u records for `%s' with NICK records\n",rd_count, name); 554 //fprintf (stderr, "Merging %u records for `%s' with NICK records\n",rd_count, name);
551 GNUNET_free (nick); 555 GNUNET_free (nick);
552 } 556 }
@@ -732,11 +736,12 @@ struct RecordLookupContext
732}; 736};
733 737
734 738
735
736static void 739static void
737lookup_it (void *cls, const struct GNUNET_CRYPTO_EcdsaPrivateKey *private_key, 740lookup_it (void *cls,
738 const char *label, unsigned int rd_count, 741 const struct GNUNET_CRYPTO_EcdsaPrivateKey *private_key,
739 const struct GNUNET_GNSRECORD_Data *rd) 742 const char *label,
743 unsigned int rd_count,
744 const struct GNUNET_GNSRECORD_Data *rd)
740{ 745{
741 struct RecordLookupContext *rlc = cls; 746 struct RecordLookupContext *rlc = cls;
742 struct GNUNET_GNSRECORD_Data *rd_res; 747 struct GNUNET_GNSRECORD_Data *rd_res;
@@ -753,9 +758,9 @@ lookup_it (void *cls, const struct GNUNET_CRYPTO_EcdsaPrivateKey *private_key,
753 rd_res = NULL; 758 rd_res = NULL;
754 rdc_res = 0; 759 rdc_res = 0;
755 rlc->nick->flags = (rlc->nick->flags | GNUNET_GNSRECORD_RF_PRIVATE) ^ GNUNET_GNSRECORD_RF_PRIVATE; 760 rlc->nick->flags = (rlc->nick->flags | GNUNET_GNSRECORD_RF_PRIVATE) ^ GNUNET_GNSRECORD_RF_PRIVATE;
756 merge_with_nick_records ( rlc->nick, 761 merge_with_nick_records (rlc->nick,
757 rd_count, rd, 762 rd_count, rd,
758 &rdc_res, &rd_res); 763 &rdc_res, &rd_res);
759 764
760 rlc->rd_ser_len = GNUNET_GNSRECORD_records_get_size (rdc_res, rd_res); 765 rlc->rd_ser_len = GNUNET_GNSRECORD_records_get_size (rdc_res, rd_res);
761 rlc->res_rd_count = rdc_res; 766 rlc->res_rd_count = rdc_res;
@@ -784,9 +789,6 @@ lookup_it (void *cls, const struct GNUNET_CRYPTO_EcdsaPrivateKey *private_key,
784} 789}
785 790
786 791
787
788
789
790/** 792/**
791 * Handles a #GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_LOOKUP message 793 * Handles a #GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_LOOKUP message
792 * 794 *
@@ -987,10 +989,24 @@ handle_record_store (void *cls,
987 } 989 }
988 else 990 else
989 { 991 {
992 struct GNUNET_GNSRECORD_Data rd_clean[rd_count];
993 unsigned int i;
994 unsigned int rd_clean_off;
995
996 /* remove "NICK" records, unless this is for the "+" label */
997 rd_clean_off = 0;
998 for (i=0;i<rd_count;i++)
999 {
1000 rd_clean[rd_clean_off] = rd[i];
1001 if ( (0 == strcmp (GNUNET_GNS_MASTERZONE_STR,
1002 conv_name)) ||
1003 (GNUNET_GNSRECORD_TYPE_NICK != rd[i].record_type) )
1004 rd_clean_off++;
1005 }
990 res = GSN_database->store_records (GSN_database->cls, 1006 res = GSN_database->store_records (GSN_database->cls,
991 &rp_msg->private_key, 1007 &rp_msg->private_key,
992 conv_name, 1008 conv_name,
993 rd_count, rd); 1009 rd_clean_off, rd_clean);
994 if (GNUNET_OK == res) 1010 if (GNUNET_OK == res)
995 { 1011 {
996 for (zm = monitor_head; NULL != zm; zm = zm->next) 1012 for (zm = monitor_head; NULL != zm; zm = zm->next)
diff --git a/src/namestore/namestore_api.c b/src/namestore/namestore_api.c
index a924a4511..c089929a6 100644
--- a/src/namestore/namestore_api.c
+++ b/src/namestore/namestore_api.c
@@ -999,7 +999,7 @@ GNUNET_NAMESTORE_disconnect (struct GNUNET_NAMESTORE_Handle *h)
999 * @param rd_count number of records in the 'rd' array 999 * @param rd_count number of records in the 'rd' array
1000 * @param rd array of records with data to store 1000 * @param rd array of records with data to store
1001 * @param cont continuation to call when done 1001 * @param cont continuation to call when done
1002 * @param cont_cls closure for 'cont' 1002 * @param cont_cls closure for @a cont
1003 * @return handle to abort the request 1003 * @return handle to abort the request
1004 */ 1004 */
1005struct GNUNET_NAMESTORE_QueueEntry * 1005struct GNUNET_NAMESTORE_QueueEntry *