diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2013-10-25 12:59:41 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2013-10-25 12:59:41 +0000 |
commit | 64a061d90ded1dc913e3c8186dba11bfca9aff9e (patch) | |
tree | f55dc91c945f33817fd8649d408ab757dc229cdb /src/namestore/gnunet-service-namestore.c | |
parent | b596994ef30cb2b2b797654108ddcca331245da0 (diff) | |
download | gnunet-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.c | 45 |
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 | */ | ||
571 | static void | ||
572 | handle_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, |