diff options
author | Florian Dold <florian.dold@gmail.com> | 2014-02-10 17:50:14 +0000 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2014-02-10 17:50:14 +0000 |
commit | c274294a31620fcbd8658ac047ff762a593b28fa (patch) | |
tree | a950076b95678eeff3c72949b475d8a4b8e1da52 /src/consensus/consensus_api.c | |
parent | d564d4827a079b7c365b77a09527fdf49280aad2 (diff) | |
download | gnunet-c274294a31620fcbd8658ac047ff762a593b28fa.tar.gz gnunet-c274294a31620fcbd8658ac047ff762a593b28fa.zip |
- fixed wrong round comparison code
Diffstat (limited to 'src/consensus/consensus_api.c')
-rw-r--r-- | src/consensus/consensus_api.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/consensus/consensus_api.c b/src/consensus/consensus_api.c index 5ebdf71e7..6988c7b6d 100644 --- a/src/consensus/consensus_api.c +++ b/src/consensus/consensus_api.c | |||
@@ -141,6 +141,13 @@ handle_conclude_done (void *cls, | |||
141 | 141 | ||
142 | GNUNET_CONSENSUS_ConcludeCallback cc; | 142 | GNUNET_CONSENSUS_ConcludeCallback cc; |
143 | 143 | ||
144 | GNUNET_MQ_destroy (consensus->mq); | ||
145 | consensus->mq = NULL; | ||
146 | |||
147 | GNUNET_CLIENT_disconnect (consensus->client); | ||
148 | consensus->client = NULL; | ||
149 | |||
150 | |||
144 | GNUNET_assert (NULL != (cc = consensus->conclude_cb)); | 151 | GNUNET_assert (NULL != (cc = consensus->conclude_cb)); |
145 | consensus->conclude_cb = NULL; | 152 | consensus->conclude_cb = NULL; |
146 | cc (consensus->conclude_cls); | 153 | cc (consensus->conclude_cls); |
@@ -148,6 +155,22 @@ handle_conclude_done (void *cls, | |||
148 | 155 | ||
149 | 156 | ||
150 | /** | 157 | /** |
158 | * Generic error handler, called with the appropriate | ||
159 | * error code and the same closure specified at the creation of | ||
160 | * the message queue. | ||
161 | * Not every message queue implementation supports an error handler. | ||
162 | * | ||
163 | * @param cls closure, same closure as for the message handlers | ||
164 | * @param error error code | ||
165 | */ | ||
166 | static void | ||
167 | mq_error_handler (void *cls, enum GNUNET_MQ_Error error) | ||
168 | { | ||
169 | LOG (GNUNET_ERROR_TYPE_WARNING, "consensus service disconnected us\n"); | ||
170 | } | ||
171 | |||
172 | |||
173 | /** | ||
151 | * Create a consensus session. | 174 | * Create a consensus session. |
152 | * | 175 | * |
153 | * @param cfg configuration to use for connecting to the consensus service | 176 | * @param cfg configuration to use for connecting to the consensus service |
@@ -192,7 +215,7 @@ GNUNET_CONSENSUS_create (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
192 | consensus->session_id = *session_id; | 215 | consensus->session_id = *session_id; |
193 | consensus->client = GNUNET_CLIENT_connect ("consensus", cfg); | 216 | consensus->client = GNUNET_CLIENT_connect ("consensus", cfg); |
194 | consensus->mq = GNUNET_MQ_queue_for_connection_client (consensus->client, | 217 | consensus->mq = GNUNET_MQ_queue_for_connection_client (consensus->client, |
195 | mq_handlers, NULL, consensus); | 218 | mq_handlers, mq_error_handler, consensus); |
196 | 219 | ||
197 | GNUNET_assert (consensus->client != NULL); | 220 | GNUNET_assert (consensus->client != NULL); |
198 | 221 | ||
@@ -298,7 +321,12 @@ GNUNET_CONSENSUS_conclude (struct GNUNET_CONSENSUS_Handle *consensus, | |||
298 | void | 321 | void |
299 | GNUNET_CONSENSUS_destroy (struct GNUNET_CONSENSUS_Handle *consensus) | 322 | GNUNET_CONSENSUS_destroy (struct GNUNET_CONSENSUS_Handle *consensus) |
300 | { | 323 | { |
301 | if (consensus->client != NULL) | 324 | if (NULL != consensus->mq) |
325 | { | ||
326 | GNUNET_MQ_destroy (consensus->mq); | ||
327 | consensus->mq = NULL; | ||
328 | } | ||
329 | if (NULL != consensus->client) | ||
302 | { | 330 | { |
303 | GNUNET_CLIENT_disconnect (consensus->client); | 331 | GNUNET_CLIENT_disconnect (consensus->client); |
304 | consensus->client = NULL; | 332 | consensus->client = NULL; |