diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-10-04 13:59:39 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-10-04 13:59:39 +0200 |
commit | 4fe6ffb8fbffbcc728118f20326fc699295aa1fc (patch) | |
tree | 5106981370961200a387c6dc5d95201832c32acf | |
parent | a995680a1408fc756a6ced539f4d3b46ed21b770 (diff) | |
download | gnunet-4fe6ffb8fbffbcc728118f20326fc699295aa1fc.tar.gz gnunet-4fe6ffb8fbffbcc728118f20326fc699295aa1fc.zip |
delay cancelling listen operations to avoid rejecting operations before they had a chance to start, fixes misc. test case failures related to set
-rw-r--r-- | src/include/gnunet_set_service.h | 2 | ||||
-rw-r--r-- | src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c | 8 | ||||
-rw-r--r-- | src/scalarproduct/gnunet-service-scalarproduct_alice.c | 8 | ||||
-rw-r--r-- | src/set/gnunet-service-set.c | 6 | ||||
-rw-r--r-- | src/set/test_set_intersection_result_full.c | 2 | ||||
-rw-r--r-- | src/set/test_set_union_result_symmetric.c | 2 |
6 files changed, 9 insertions, 19 deletions
diff --git a/src/include/gnunet_set_service.h b/src/include/gnunet_set_service.h index 6e822d82e..dfe9b8954 100644 --- a/src/include/gnunet_set_service.h +++ b/src/include/gnunet_set_service.h | |||
@@ -452,6 +452,8 @@ GNUNET_SET_listen (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
452 | /** | 452 | /** |
453 | * Cancel the given listen operation. After calling cancel, the | 453 | * Cancel the given listen operation. After calling cancel, the |
454 | * listen callback for this listen handle will not be called again. | 454 | * listen callback for this listen handle will not be called again. |
455 | * Note that cancelling a listen operation will automatically reject | ||
456 | * all operations that have not yet been accepted. | ||
455 | * | 457 | * |
456 | * @param lh handle for the listen operation | 458 | * @param lh handle for the listen operation |
457 | */ | 459 | */ |
diff --git a/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c b/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c index c0b33f8ef..57f275c81 100644 --- a/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c +++ b/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c | |||
@@ -260,8 +260,6 @@ destroy_service_session (struct AliceServiceSession *s) | |||
260 | } | 260 | } |
261 | if (NULL != s->intersection_listen) | 261 | if (NULL != s->intersection_listen) |
262 | { | 262 | { |
263 | LOG (GNUNET_ERROR_TYPE_DEBUG, | ||
264 | "Set intersection, listen still up!\n"); | ||
265 | GNUNET_SET_listen_cancel (s->intersection_listen); | 263 | GNUNET_SET_listen_cancel (s->intersection_listen); |
266 | s->intersection_listen = NULL; | 264 | s->intersection_listen = NULL; |
267 | } | 265 | } |
@@ -274,8 +272,6 @@ destroy_service_session (struct AliceServiceSession *s) | |||
274 | } | 272 | } |
275 | if (NULL != s->intersection_set) | 273 | if (NULL != s->intersection_set) |
276 | { | 274 | { |
277 | LOG (GNUNET_ERROR_TYPE_DEBUG, | ||
278 | "Set intersection, set still there!\n"); | ||
279 | GNUNET_SET_destroy (s->intersection_set); | 275 | GNUNET_SET_destroy (s->intersection_set); |
280 | s->intersection_set = NULL; | 276 | s->intersection_set = NULL; |
281 | } | 277 | } |
@@ -809,10 +805,6 @@ cb_intersection_request_alice (void *cls, | |||
809 | prepare_client_end_notification (s); | 805 | prepare_client_end_notification (s); |
810 | return; | 806 | return; |
811 | } | 807 | } |
812 | GNUNET_SET_destroy (s->intersection_set); | ||
813 | s->intersection_set = NULL; | ||
814 | GNUNET_SET_listen_cancel (s->intersection_listen); | ||
815 | s->intersection_listen = NULL; | ||
816 | } | 808 | } |
817 | 809 | ||
818 | 810 | ||
diff --git a/src/scalarproduct/gnunet-service-scalarproduct_alice.c b/src/scalarproduct/gnunet-service-scalarproduct_alice.c index a55d03900..fcb1ce032 100644 --- a/src/scalarproduct/gnunet-service-scalarproduct_alice.c +++ b/src/scalarproduct/gnunet-service-scalarproduct_alice.c | |||
@@ -243,8 +243,6 @@ free_element_cb (void *cls, | |||
243 | static void | 243 | static void |
244 | destroy_service_session (struct AliceServiceSession *s) | 244 | destroy_service_session (struct AliceServiceSession *s) |
245 | { | 245 | { |
246 | unsigned int i; | ||
247 | |||
248 | if (GNUNET_YES == s->in_destroy) | 246 | if (GNUNET_YES == s->in_destroy) |
249 | return; | 247 | return; |
250 | s->in_destroy = GNUNET_YES; | 248 | s->in_destroy = GNUNET_YES; |
@@ -285,7 +283,7 @@ destroy_service_session (struct AliceServiceSession *s) | |||
285 | } | 283 | } |
286 | if (NULL != s->sorted_elements) | 284 | if (NULL != s->sorted_elements) |
287 | { | 285 | { |
288 | for (i=0;i<s->used_element_count;i++) | 286 | for (unsigned int i=0;i<s->used_element_count;i++) |
289 | gcry_mpi_release (s->sorted_elements[i].value); | 287 | gcry_mpi_release (s->sorted_elements[i].value); |
290 | GNUNET_free (s->sorted_elements); | 288 | GNUNET_free (s->sorted_elements); |
291 | s->sorted_elements = NULL; | 289 | s->sorted_elements = NULL; |
@@ -1043,10 +1041,6 @@ cb_intersection_request_alice (void *cls, | |||
1043 | prepare_client_end_notification (s); | 1041 | prepare_client_end_notification (s); |
1044 | return; | 1042 | return; |
1045 | } | 1043 | } |
1046 | GNUNET_SET_destroy (s->intersection_set); | ||
1047 | s->intersection_set = NULL; | ||
1048 | GNUNET_SET_listen_cancel (s->intersection_listen); | ||
1049 | s->intersection_listen = NULL; | ||
1050 | } | 1044 | } |
1051 | 1045 | ||
1052 | 1046 | ||
diff --git a/src/set/gnunet-service-set.c b/src/set/gnunet-service-set.c index 617a33661..42d06b275 100644 --- a/src/set/gnunet-service-set.c +++ b/src/set/gnunet-service-set.c | |||
@@ -628,7 +628,13 @@ client_disconnect_cb (void *cls, | |||
628 | GNUNET_CADET_close_port (listener->open_port); | 628 | GNUNET_CADET_close_port (listener->open_port); |
629 | listener->open_port = NULL; | 629 | listener->open_port = NULL; |
630 | while (NULL != (op = listener->op_head)) | 630 | while (NULL != (op = listener->op_head)) |
631 | { | ||
632 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
633 | "Destroying incoming operation `%u' from peer `%s'\n", | ||
634 | (unsigned int) op->client_request_id, | ||
635 | GNUNET_i2s (&op->peer)); | ||
631 | incoming_destroy (op); | 636 | incoming_destroy (op); |
637 | } | ||
632 | GNUNET_CONTAINER_DLL_remove (listener_head, | 638 | GNUNET_CONTAINER_DLL_remove (listener_head, |
633 | listener_tail, | 639 | listener_tail, |
634 | listener); | 640 | listener); |
diff --git a/src/set/test_set_intersection_result_full.c b/src/set/test_set_intersection_result_full.c index a36aae4d5..16de983cf 100644 --- a/src/set/test_set_intersection_result_full.c +++ b/src/set/test_set_intersection_result_full.c | |||
@@ -131,8 +131,6 @@ listen_cb (void *cls, | |||
131 | "starting intersection by accepting and committing\n"); | 131 | "starting intersection by accepting and committing\n"); |
132 | GNUNET_assert (NULL != context_msg); | 132 | GNUNET_assert (NULL != context_msg); |
133 | GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_DUMMY); | 133 | GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_DUMMY); |
134 | GNUNET_SET_listen_cancel (listen_handle); | ||
135 | listen_handle = NULL; | ||
136 | oh2 = GNUNET_SET_accept (request, | 134 | oh2 = GNUNET_SET_accept (request, |
137 | GNUNET_SET_RESULT_FULL, | 135 | GNUNET_SET_RESULT_FULL, |
138 | (struct GNUNET_SET_Option[]) { 0 }, | 136 | (struct GNUNET_SET_Option[]) { 0 }, |
diff --git a/src/set/test_set_union_result_symmetric.c b/src/set/test_set_union_result_symmetric.c index f81c7b8f7..3008e5aac 100644 --- a/src/set/test_set_union_result_symmetric.c +++ b/src/set/test_set_union_result_symmetric.c | |||
@@ -182,8 +182,6 @@ listen_cb (void *cls, | |||
182 | GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_DUMMY); | 182 | GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_DUMMY); |
183 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 183 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
184 | "listen cb called\n"); | 184 | "listen cb called\n"); |
185 | GNUNET_SET_listen_cancel (listen_handle); | ||
186 | listen_handle = NULL; | ||
187 | oh2 = GNUNET_SET_accept (request, | 185 | oh2 = GNUNET_SET_accept (request, |
188 | GNUNET_SET_RESULT_SYMMETRIC, | 186 | GNUNET_SET_RESULT_SYMMETRIC, |
189 | (struct GNUNET_SET_Option[]) { 0 }, | 187 | (struct GNUNET_SET_Option[]) { 0 }, |