aboutsummaryrefslogtreecommitdiff
path: root/src/gns
diff options
context:
space:
mode:
authorMartin Schanzenbach <mschanzenbach@posteo.de>2012-07-11 20:59:17 +0000
committerMartin Schanzenbach <mschanzenbach@posteo.de>2012-07-11 20:59:17 +0000
commit56d821c92867bfbf861aa034c099c562eca949aa (patch)
treeade5ece560d77641bcbde8eff577a528252605e7 /src/gns
parentc51d54af0173038397fd4281d08f8f62ee6e5ddd (diff)
downloadgnunet-56d821c92867bfbf861aa034c099c562eca949aa.tar.gz
gnunet-56d821c92867bfbf861aa034c099c562eca949aa.zip
-fix
Diffstat (limited to 'src/gns')
-rw-r--r--src/gns/gns_api.c81
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)
719void 704void
720GNUNET_GNS_cancel_lookup_request (struct GNUNET_GNS_LookupRequest *lr) 705GNUNET_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)
743void 738void
744GNUNET_GNS_cancel_shorten_request (struct GNUNET_GNS_ShortenRequest *sr) 739GNUNET_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)
767void 772void
768GNUNET_GNS_cancel_get_auth_request (struct GNUNET_GNS_GetAuthRequest *gar) 773GNUNET_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);