summaryrefslogtreecommitdiff
path: root/src/namestore/gnunet-service-namestore.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2013-10-25 12:59:41 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2013-10-25 12:59:41 +0000
commit64a061d90ded1dc913e3c8186dba11bfca9aff9e (patch)
treef55dc91c945f33817fd8649d408ab757dc229cdb /src/namestore/gnunet-service-namestore.c
parentb596994ef30cb2b2b797654108ddcca331245da0 (diff)
downloadgnunet-64a061d90ded1dc913e3c8186dba11bfca9aff9e.tar.gz
gnunet-64a061d90ded1dc913e3c8186dba11bfca9aff9e.zip
- clean protocol number
- added lookup protocol numbers - implemented lookup sending
Diffstat (limited to 'src/namestore/gnunet-service-namestore.c')
-rw-r--r--src/namestore/gnunet-service-namestore.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/namestore/gnunet-service-namestore.c b/src/namestore/gnunet-service-namestore.c
index 58f214e43..79e154cc2 100644
--- a/src/namestore/gnunet-service-namestore.c
+++ b/src/namestore/gnunet-service-namestore.c
@@ -561,6 +561,49 @@ refresh_block (struct GNUNET_SERVER_Client *client,
561 GNUNET_free (block); 561 GNUNET_free (block);
562} 562}
563 563
564/**
565 * Handles a #GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_LOOKUP message
566 *
567 * @param cls unused
568 * @param client client sending the message
569 * @param message message of type 'struct RecordCreateMessage'
570 */
571static void
572handle_record_lookup (void *cls,
573 struct GNUNET_SERVER_Client *client,
574 const struct GNUNET_MessageHeader *message)
575{
576 const struct LabelLookupMessage * ll_msg;
577 const char *name_tmp;
578 uint32_t rid;
579 uint32_t name_len;
580 size_t msg_size;
581
582 if (ntohs (message->size) < sizeof (struct LabelLookupMessage))
583 {
584 GNUNET_break (0);
585 GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
586 return;
587 }
588
589 ll_msg = (const struct LabelLookupMessage *) message;
590 rid = ntohl (ll_msg->gns_header.r_id);
591 name_len = ntohs (ll_msg->label_len);
592 msg_size = ntohs (message->size);
593
594 if (name_len != msg_size - sizeof (struct LabelLookupMessage))
595 {
596 GNUNET_break (0);
597 GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
598 return;
599 }
600 name_tmp = &ll_msg[1];
601
602 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
603 "Received `%s' message for name `%s'\n",
604 "NAMESTORE_RECORD_LOOKUP", name_tmp);
605}
606
564 607
565/** 608/**
566 * Handles a #GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_STORE message 609 * Handles a #GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_STORE message
@@ -1292,6 +1335,8 @@ run (void *cls, struct GNUNET_SERVER_Handle *server,
1292 static const struct GNUNET_SERVER_MessageHandler handlers[] = { 1335 static const struct GNUNET_SERVER_MessageHandler handlers[] = {
1293 {&handle_record_store, NULL, 1336 {&handle_record_store, NULL,
1294 GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_STORE, 0}, 1337 GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_STORE, 0},
1338 {&handle_record_lookup, NULL,
1339 GNUNET_MESSAGE_TYPE_NAMESTORE_RECORD_LOOKUP, 0},
1295 {&handle_zone_to_name, NULL, 1340 {&handle_zone_to_name, NULL,
1296 GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_TO_NAME, sizeof (struct ZoneToNameMessage) }, 1341 GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_TO_NAME, sizeof (struct ZoneToNameMessage) },
1297 {&handle_iteration_start, NULL, 1342 {&handle_iteration_start, NULL,