aboutsummaryrefslogtreecommitdiff
path: root/src/consensus/consensus_api.c
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2014-02-10 17:50:14 +0000
committerFlorian Dold <florian.dold@gmail.com>2014-02-10 17:50:14 +0000
commitc274294a31620fcbd8658ac047ff762a593b28fa (patch)
treea950076b95678eeff3c72949b475d8a4b8e1da52 /src/consensus/consensus_api.c
parentd564d4827a079b7c365b77a09527fdf49280aad2 (diff)
downloadgnunet-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.c32
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 */
166static void
167mq_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,
298void 321void
299GNUNET_CONSENSUS_destroy (struct GNUNET_CONSENSUS_Handle *consensus) 322GNUNET_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;