diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2013-10-28 14:02:20 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2013-10-28 14:02:20 +0000 |
commit | 39dceb2cfe324e3f1b44958e3cf4cb936ab76881 (patch) | |
tree | be84fba9fed2e859805475b6bff5a8bd3915e854 /src/namestore/gnunet-service-namestore.c | |
parent | 50a4192766dd96f383020f9b2989b047155e4db3 (diff) | |
download | gnunet-39dceb2cfe324e3f1b44958e3cf4cb936ab76881.tar.gz gnunet-39dceb2cfe324e3f1b44958e3cf4cb936ab76881.zip |
extended plugin api to support lookup function
added new index to both plugins
implemented lookup functionality in both plugins
namestore uses lookup function
Diffstat (limited to 'src/namestore/gnunet-service-namestore.c')
-rw-r--r-- | src/namestore/gnunet-service-namestore.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/namestore/gnunet-service-namestore.c b/src/namestore/gnunet-service-namestore.c index 0fce443c7..2353eadec 100644 --- a/src/namestore/gnunet-service-namestore.c +++ b/src/namestore/gnunet-service-namestore.c | |||
@@ -623,7 +623,6 @@ handle_record_lookup (void *cls, | |||
623 | uint32_t name_len; | 623 | uint32_t name_len; |
624 | size_t src_size; | 624 | size_t src_size; |
625 | size_t res_size; | 625 | size_t res_size; |
626 | int offset; | ||
627 | int res; | 626 | int res; |
628 | 627 | ||
629 | if (ntohs (message->size) < sizeof (struct LabelLookupMessage)) | 628 | if (ntohs (message->size) < sizeof (struct LabelLookupMessage)) |
@@ -664,15 +663,8 @@ handle_record_lookup (void *cls, | |||
664 | rlc.rd_ser_len = 0; | 663 | rlc.rd_ser_len = 0; |
665 | rlc.res_rd = NULL; | 664 | rlc.res_rd = NULL; |
666 | 665 | ||
667 | offset = 0; | 666 | res = GSN_database->lookup_records (GSN_database->cls, |
668 | do | 667 | &ll_msg->zone, name_tmp, &lookup_it, &rlc); |
669 | { | ||
670 | /* changee this call */ | ||
671 | res = GSN_database->iterate_records (GSN_database->cls, | ||
672 | &ll_msg->zone, offset, &lookup_it, &rlc); | ||
673 | offset++; | ||
674 | } | ||
675 | while ((GNUNET_NO == rlc.found) && (GNUNET_OK == res)); | ||
676 | 668 | ||
677 | res_size = sizeof (struct LabelLookupResponseMessage) + name_len + rlc.rd_ser_len; | 669 | res_size = sizeof (struct LabelLookupResponseMessage) + name_len + rlc.rd_ser_len; |
678 | llr_msg = GNUNET_malloc (res_size); | 670 | llr_msg = GNUNET_malloc (res_size); |
@@ -684,6 +676,10 @@ handle_record_lookup (void *cls, | |||
684 | llr_msg->rd_count = htons (rlc.res_rd_count); | 676 | llr_msg->rd_count = htons (rlc.res_rd_count); |
685 | llr_msg->rd_len = htons (rlc.rd_ser_len); | 677 | llr_msg->rd_len = htons (rlc.rd_ser_len); |
686 | res_name = (char *) &llr_msg[1]; | 678 | res_name = (char *) &llr_msg[1]; |
679 | if ((GNUNET_YES == rlc.found) && (GNUNET_OK == res)) | ||
680 | llr_msg->found = ntohs (GNUNET_YES); | ||
681 | else | ||
682 | llr_msg->found = ntohs (GNUNET_NO); | ||
687 | memcpy (&llr_msg[1], name_tmp, name_len); | 683 | memcpy (&llr_msg[1], name_tmp, name_len); |
688 | memcpy (&res_name[name_len], rlc.res_rd, rlc.rd_ser_len); | 684 | memcpy (&res_name[name_len], rlc.res_rd, rlc.rd_ser_len); |
689 | 685 | ||