diff options
author | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-06-05 00:56:43 +0200 |
---|---|---|
committer | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-06-05 00:56:43 +0200 |
commit | 86d974e61bb7be2541f3675913d0d3993bc19987 (patch) | |
tree | 714a14beaea41413f2bbcf0d4ea03453673138b7 | |
parent | 2af1b568199c62152fe7892ec33579aed326c136 (diff) | |
download | gnunet-86d974e61bb7be2541f3675913d0d3993bc19987.tar.gz gnunet-86d974e61bb7be2541f3675913d0d3993bc19987.zip |
fix ticket result messages
-rw-r--r-- | src/reclaim/gnunet-service-reclaim.c | 11 | ||||
-rw-r--r-- | src/reclaim/reclaim_api.c | 36 |
2 files changed, 10 insertions, 37 deletions
diff --git a/src/reclaim/gnunet-service-reclaim.c b/src/reclaim/gnunet-service-reclaim.c index 52dc12725..57bff8ed4 100644 --- a/src/reclaim/gnunet-service-reclaim.c +++ b/src/reclaim/gnunet-service-reclaim.c | |||
@@ -600,16 +600,11 @@ send_ticket_result (const struct IdpClient *client, | |||
600 | { | 600 | { |
601 | struct TicketResultMessage *irm; | 601 | struct TicketResultMessage *irm; |
602 | struct GNUNET_MQ_Envelope *env; | 602 | struct GNUNET_MQ_Envelope *env; |
603 | struct GNUNET_RECLAIM_Ticket *ticket_buf; | ||
604 | 603 | ||
604 | env = GNUNET_MQ_msg (irm, | ||
605 | GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_RESULT); | ||
605 | if (NULL != ticket) { | 606 | if (NULL != ticket) { |
606 | env = GNUNET_MQ_msg_extra (irm, | 607 | irm->ticket = *ticket; |
607 | sizeof (struct GNUNET_RECLAIM_Ticket), | ||
608 | GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_RESULT); | ||
609 | ticket_buf = (struct GNUNET_RECLAIM_Ticket *)&irm[1]; | ||
610 | *ticket_buf = *ticket; | ||
611 | } else { | ||
612 | env = GNUNET_MQ_msg (irm, GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_RESULT); | ||
613 | } | 608 | } |
614 | // TODO add success member | 609 | // TODO add success member |
615 | irm->id = htonl (r_id); | 610 | irm->id = htonl (r_id); |
diff --git a/src/reclaim/reclaim_api.c b/src/reclaim/reclaim_api.c index 63f8b9ba3..00ab69579 100644 --- a/src/reclaim/reclaim_api.c +++ b/src/reclaim/reclaim_api.c | |||
@@ -613,28 +613,6 @@ handle_attribute_result (void *cls, const struct AttributeResultMessage *msg) | |||
613 | * | 613 | * |
614 | * @param cls | 614 | * @param cls |
615 | * @param msg the message we received | 615 | * @param msg the message we received |
616 | * @return #GNUNET_OK on success, #GNUNET_SYSERR on error | ||
617 | */ | ||
618 | static int | ||
619 | check_ticket_result (void *cls, const struct TicketResultMessage *msg) | ||
620 | { | ||
621 | size_t msg_len; | ||
622 | |||
623 | msg_len = ntohs (msg->header.size); | ||
624 | if (msg_len < sizeof (struct TicketResultMessage)) { | ||
625 | GNUNET_break (0); | ||
626 | return GNUNET_SYSERR; | ||
627 | } | ||
628 | return GNUNET_OK; | ||
629 | } | ||
630 | |||
631 | |||
632 | /** | ||
633 | * Handle an incoming message of type | ||
634 | * #GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_RESULT | ||
635 | * | ||
636 | * @param cls | ||
637 | * @param msg the message we received | ||
638 | */ | 616 | */ |
639 | static void | 617 | static void |
640 | handle_ticket_result (void *cls, const struct TicketResultMessage *msg) | 618 | handle_ticket_result (void *cls, const struct TicketResultMessage *msg) |
@@ -643,7 +621,7 @@ handle_ticket_result (void *cls, const struct TicketResultMessage *msg) | |||
643 | struct GNUNET_RECLAIM_Operation *op; | 621 | struct GNUNET_RECLAIM_Operation *op; |
644 | struct GNUNET_RECLAIM_TicketIterator *it; | 622 | struct GNUNET_RECLAIM_TicketIterator *it; |
645 | uint32_t r_id = ntohl (msg->id); | 623 | uint32_t r_id = ntohl (msg->id); |
646 | 624 | static const struct GNUNET_RECLAIM_Ticket ticket; | |
647 | for (op = handle->op_head; NULL != op; op = op->next) | 625 | for (op = handle->op_head; NULL != op; op = op->next) |
648 | if (op->r_id == r_id) | 626 | if (op->r_id == r_id) |
649 | break; | 627 | break; |
@@ -654,7 +632,7 @@ handle_ticket_result (void *cls, const struct TicketResultMessage *msg) | |||
654 | return; | 632 | return; |
655 | if (NULL != op) { | 633 | if (NULL != op) { |
656 | GNUNET_CONTAINER_DLL_remove (handle->op_head, handle->op_tail, op); | 634 | GNUNET_CONTAINER_DLL_remove (handle->op_head, handle->op_tail, op); |
657 | if (memcmp (&msg->ticket, 0, sizeof (struct GNUNET_RECLAIM_Ticket))) | 635 | if (0 == memcmp (&msg->ticket, &ticket, sizeof (struct GNUNET_RECLAIM_Ticket))) |
658 | { | 636 | { |
659 | if (NULL != op->tr_cb) | 637 | if (NULL != op->tr_cb) |
660 | op->tr_cb (op->cls, NULL); | 638 | op->tr_cb (op->cls, NULL); |
@@ -665,7 +643,7 @@ handle_ticket_result (void *cls, const struct TicketResultMessage *msg) | |||
665 | free_op (op); | 643 | free_op (op); |
666 | return; | 644 | return; |
667 | } else if (NULL != it) { | 645 | } else if (NULL != it) { |
668 | if (memcmp (&msg->ticket, 0, sizeof (struct GNUNET_RECLAIM_Ticket))) | 646 | if (0 == memcmp (&msg->ticket, &ticket, sizeof (struct GNUNET_RECLAIM_Ticket))) |
669 | { | 647 | { |
670 | GNUNET_CONTAINER_DLL_remove (handle->ticket_it_head, | 648 | GNUNET_CONTAINER_DLL_remove (handle->ticket_it_head, |
671 | handle->ticket_it_tail, it); | 649 | handle->ticket_it_tail, it); |
@@ -733,9 +711,9 @@ reconnect (struct GNUNET_RECLAIM_Handle *h) | |||
733 | GNUNET_MQ_hd_var_size (attribute_result, | 711 | GNUNET_MQ_hd_var_size (attribute_result, |
734 | GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_RESULT, | 712 | GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_RESULT, |
735 | struct AttributeResultMessage, h), | 713 | struct AttributeResultMessage, h), |
736 | GNUNET_MQ_hd_var_size (ticket_result, | 714 | GNUNET_MQ_hd_fixed_size (ticket_result, |
737 | GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_RESULT, | 715 | GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_RESULT, |
738 | struct TicketResultMessage, h), | 716 | struct TicketResultMessage, h), |
739 | GNUNET_MQ_hd_var_size (consume_ticket_result, | 717 | GNUNET_MQ_hd_var_size (consume_ticket_result, |
740 | GNUNET_MESSAGE_TYPE_RECLAIM_CONSUME_TICKET_RESULT, | 718 | GNUNET_MESSAGE_TYPE_RECLAIM_CONSUME_TICKET_RESULT, |
741 | struct ConsumeTicketResultMessage, h), | 719 | struct ConsumeTicketResultMessage, h), |
@@ -1035,7 +1013,7 @@ GNUNET_RECLAIM_ticket_issue ( | |||
1035 | struct GNUNET_RECLAIM_Operation *op; | 1013 | struct GNUNET_RECLAIM_Operation *op; |
1036 | struct IssueTicketMessage *tim; | 1014 | struct IssueTicketMessage *tim; |
1037 | size_t attr_len; | 1015 | size_t attr_len; |
1038 | 1016 | fprintf(stderr, "Issuing ticket\n"); | |
1039 | op = GNUNET_new (struct GNUNET_RECLAIM_Operation); | 1017 | op = GNUNET_new (struct GNUNET_RECLAIM_Operation); |
1040 | op->h = h; | 1018 | op->h = h; |
1041 | op->tr_cb = cb; | 1019 | op->tr_cb = cb; |