diff options
author | Martin Schanzenbach <mschanzenbach@posteo.de> | 2012-07-11 20:59:17 +0000 |
---|---|---|
committer | Martin Schanzenbach <mschanzenbach@posteo.de> | 2012-07-11 20:59:17 +0000 |
commit | 56d821c92867bfbf861aa034c099c562eca949aa (patch) | |
tree | ade5ece560d77641bcbde8eff577a528252605e7 /src/gns/gns_api.c | |
parent | c51d54af0173038397fd4281d08f8f62ee6e5ddd (diff) | |
download | gnunet-56d821c92867bfbf861aa034c099c562eca949aa.tar.gz gnunet-56d821c92867bfbf861aa034c099c562eca949aa.zip |
-fix
Diffstat (limited to 'src/gns/gns_api.c')
-rw-r--r-- | src/gns/gns_api.c | 81 |
1 files changed, 48 insertions, 33 deletions
diff --git a/src/gns/gns_api.c b/src/gns/gns_api.c index 382781e0a..1503dc104 100644 --- a/src/gns/gns_api.c +++ b/src/gns/gns_api.c | |||
@@ -58,11 +58,6 @@ struct GNUNET_GNS_LookupRequest | |||
58 | */ | 58 | */ |
59 | struct GNUNET_GNS_LookupRequest *prev; | 59 | struct GNUNET_GNS_LookupRequest *prev; |
60 | 60 | ||
61 | /** | ||
62 | * associated pending message | ||
63 | */ | ||
64 | struct PendingMessage *pending_msg; | ||
65 | |||
66 | /* request id */ | 61 | /* request id */ |
67 | uint64_t r_id; | 62 | uint64_t r_id; |
68 | 63 | ||
@@ -93,11 +88,6 @@ struct GNUNET_GNS_ShortenRequest | |||
93 | */ | 88 | */ |
94 | struct GNUNET_GNS_ShortenRequest *prev; | 89 | struct GNUNET_GNS_ShortenRequest *prev; |
95 | 90 | ||
96 | /** | ||
97 | * associated pending message | ||
98 | */ | ||
99 | struct PendingMessage *pending_msg; | ||
100 | |||
101 | /* request id */ | 91 | /* request id */ |
102 | uint64_t r_id; | 92 | uint64_t r_id; |
103 | 93 | ||
@@ -128,11 +118,6 @@ struct GNUNET_GNS_GetAuthRequest | |||
128 | */ | 118 | */ |
129 | struct GNUNET_GNS_GetAuthRequest *prev; | 119 | struct GNUNET_GNS_GetAuthRequest *prev; |
130 | 120 | ||
131 | /** | ||
132 | * associated pending message | ||
133 | */ | ||
134 | struct PendingMessage *pending_msg; | ||
135 | |||
136 | /* request id */ | 121 | /* request id */ |
137 | uint32_t r_id; | 122 | uint32_t r_id; |
138 | 123 | ||
@@ -719,13 +704,23 @@ get_request_id (struct GNUNET_GNS_Handle *h) | |||
719 | void | 704 | void |
720 | GNUNET_GNS_cancel_lookup_request (struct GNUNET_GNS_LookupRequest *lr) | 705 | GNUNET_GNS_cancel_lookup_request (struct GNUNET_GNS_LookupRequest *lr) |
721 | { | 706 | { |
707 | struct PendingMessage *tmp; | ||
722 | GNUNET_assert (NULL != lr->gns_handle); | 708 | GNUNET_assert (NULL != lr->gns_handle); |
709 | |||
710 | for (tmp = lr->gns_handle->pending_head; | ||
711 | NULL != tmp; tmp = tmp->next) | ||
712 | { | ||
713 | if (tmp->r_id == lr->r_id) | ||
714 | break; | ||
715 | } | ||
723 | 716 | ||
724 | GNUNET_CONTAINER_DLL_remove (lr->gns_handle->pending_head, | 717 | if (NULL != tmp) |
725 | lr->gns_handle->pending_tail, | 718 | { |
726 | lr->pending_msg); | 719 | GNUNET_CONTAINER_DLL_remove (lr->gns_handle->pending_head, |
727 | 720 | lr->gns_handle->pending_tail, | |
728 | GNUNET_free (lr->pending_msg); | 721 | tmp); |
722 | GNUNET_free (tmp); | ||
723 | } | ||
729 | 724 | ||
730 | GNUNET_CONTAINER_DLL_remove (lr->gns_handle->lookup_head, | 725 | GNUNET_CONTAINER_DLL_remove (lr->gns_handle->lookup_head, |
731 | lr->gns_handle->lookup_tail, | 726 | lr->gns_handle->lookup_tail, |
@@ -743,13 +738,23 @@ GNUNET_GNS_cancel_lookup_request (struct GNUNET_GNS_LookupRequest *lr) | |||
743 | void | 738 | void |
744 | GNUNET_GNS_cancel_shorten_request (struct GNUNET_GNS_ShortenRequest *sr) | 739 | GNUNET_GNS_cancel_shorten_request (struct GNUNET_GNS_ShortenRequest *sr) |
745 | { | 740 | { |
741 | struct PendingMessage *tmp; | ||
746 | GNUNET_assert (NULL != sr->gns_handle); | 742 | GNUNET_assert (NULL != sr->gns_handle); |
743 | |||
744 | for (tmp = sr->gns_handle->pending_head; | ||
745 | NULL != tmp; tmp = tmp->next) | ||
746 | { | ||
747 | if (tmp->r_id == sr->r_id) | ||
748 | break; | ||
749 | } | ||
747 | 750 | ||
748 | GNUNET_CONTAINER_DLL_remove (sr->gns_handle->pending_head, | 751 | if (NULL != tmp) |
749 | sr->gns_handle->pending_tail, | 752 | { |
750 | sr->pending_msg); | 753 | GNUNET_CONTAINER_DLL_remove (sr->gns_handle->pending_head, |
751 | 754 | sr->gns_handle->pending_tail, | |
752 | GNUNET_free (sr->pending_msg); | 755 | tmp); |
756 | GNUNET_free (tmp); | ||
757 | } | ||
753 | 758 | ||
754 | GNUNET_CONTAINER_DLL_remove (sr->gns_handle->shorten_head, | 759 | GNUNET_CONTAINER_DLL_remove (sr->gns_handle->shorten_head, |
755 | sr->gns_handle->shorten_tail, | 760 | sr->gns_handle->shorten_tail, |
@@ -767,13 +772,23 @@ GNUNET_GNS_cancel_shorten_request (struct GNUNET_GNS_ShortenRequest *sr) | |||
767 | void | 772 | void |
768 | GNUNET_GNS_cancel_get_auth_request (struct GNUNET_GNS_GetAuthRequest *gar) | 773 | GNUNET_GNS_cancel_get_auth_request (struct GNUNET_GNS_GetAuthRequest *gar) |
769 | { | 774 | { |
775 | struct PendingMessage *tmp; | ||
770 | GNUNET_assert (NULL != gar->gns_handle); | 776 | GNUNET_assert (NULL != gar->gns_handle); |
777 | |||
778 | for (tmp = gar->gns_handle->pending_head; | ||
779 | NULL != tmp; tmp = tmp->next) | ||
780 | { | ||
781 | if (tmp->r_id == gar->r_id) | ||
782 | break; | ||
783 | } | ||
771 | 784 | ||
772 | GNUNET_CONTAINER_DLL_remove (gar->gns_handle->pending_head, | 785 | if (NULL != tmp) |
773 | gar->gns_handle->pending_tail, | 786 | { |
774 | gar->pending_msg); | 787 | GNUNET_CONTAINER_DLL_remove (gar->gns_handle->pending_head, |
775 | 788 | gar->gns_handle->pending_tail, | |
776 | GNUNET_free (gar->pending_msg); | 789 | tmp); |
790 | GNUNET_free (tmp); | ||
791 | } | ||
777 | 792 | ||
778 | GNUNET_CONTAINER_DLL_remove (gar->gns_handle->get_auth_head, | 793 | GNUNET_CONTAINER_DLL_remove (gar->gns_handle->get_auth_head, |
779 | gar->gns_handle->get_auth_tail, | 794 | gar->gns_handle->get_auth_tail, |
@@ -842,7 +857,7 @@ GNUNET_GNS_lookup_zone (struct GNUNET_GNS_Handle *handle, | |||
842 | memset (pending, 0, (sizeof (struct PendingMessage) + msize)); | 857 | memset (pending, 0, (sizeof (struct PendingMessage) + msize)); |
843 | 858 | ||
844 | pending->size = msize; | 859 | pending->size = msize; |
845 | lr->pending_msg = pending; | 860 | pending->r_id = lr->r_id; |
846 | 861 | ||
847 | lookup_msg = (struct GNUNET_GNS_ClientLookupMessage *) &pending[1]; | 862 | lookup_msg = (struct GNUNET_GNS_ClientLookupMessage *) &pending[1]; |
848 | lookup_msg->header.type = htons (GNUNET_MESSAGE_TYPE_GNS_LOOKUP); | 863 | lookup_msg->header.type = htons (GNUNET_MESSAGE_TYPE_GNS_LOOKUP); |
@@ -957,7 +972,7 @@ GNUNET_GNS_shorten_zone (struct GNUNET_GNS_Handle *handle, | |||
957 | memset(pending, 0, (sizeof (struct PendingMessage) + msize)); | 972 | memset(pending, 0, (sizeof (struct PendingMessage) + msize)); |
958 | 973 | ||
959 | pending->size = msize; | 974 | pending->size = msize; |
960 | sr->pending_msg = pending; | 975 | pending->r_id = sr->r_id; |
961 | 976 | ||
962 | shorten_msg = (struct GNUNET_GNS_ClientShortenMessage *) &pending[1]; | 977 | shorten_msg = (struct GNUNET_GNS_ClientShortenMessage *) &pending[1]; |
963 | shorten_msg->header.type = htons (GNUNET_MESSAGE_TYPE_GNS_SHORTEN); | 978 | shorten_msg->header.type = htons (GNUNET_MESSAGE_TYPE_GNS_SHORTEN); |
@@ -1053,7 +1068,7 @@ GNUNET_GNS_get_authority (struct GNUNET_GNS_Handle *handle, | |||
1053 | memset (pending, 0, (sizeof (struct PendingMessage) + msize)); | 1068 | memset (pending, 0, (sizeof (struct PendingMessage) + msize)); |
1054 | 1069 | ||
1055 | pending->size = msize; | 1070 | pending->size = msize; |
1056 | gar->pending_msg = pending; | 1071 | pending->r_id = gar->r_id; |
1057 | 1072 | ||
1058 | get_auth_msg = (struct GNUNET_GNS_ClientGetAuthMessage *) &pending[1]; | 1073 | get_auth_msg = (struct GNUNET_GNS_ClientGetAuthMessage *) &pending[1]; |
1059 | get_auth_msg->header.type = htons (GNUNET_MESSAGE_TYPE_GNS_GET_AUTH); | 1074 | get_auth_msg->header.type = htons (GNUNET_MESSAGE_TYPE_GNS_GET_AUTH); |