diff options
Diffstat (limited to 'src/consensus/consensus_api.c')
-rw-r--r-- | src/consensus/consensus_api.c | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/src/consensus/consensus_api.c b/src/consensus/consensus_api.c index b1de10edd..90b0fdf16 100644 --- a/src/consensus/consensus_api.c +++ b/src/consensus/consensus_api.c | |||
@@ -124,7 +124,7 @@ handle_new_element(struct GNUNET_CONSENSUS_Handle *consensus, | |||
124 | element.type = msg->element_type; | 124 | element.type = msg->element_type; |
125 | element.size = msg->header.size - sizeof (struct GNUNET_CONSENSUS_ElementMessage); | 125 | element.size = msg->header.size - sizeof (struct GNUNET_CONSENSUS_ElementMessage); |
126 | element.data = &msg[1]; | 126 | element.data = &msg[1]; |
127 | consensus->new_element_cb(consensus->new_element_cls, &element); | 127 | consensus->new_element_cb (consensus->new_element_cls, &element); |
128 | } | 128 | } |
129 | 129 | ||
130 | static void | 130 | static void |
@@ -152,12 +152,15 @@ message_handler (void *cls, const struct GNUNET_MessageHeader *msg) | |||
152 | { | 152 | { |
153 | struct GNUNET_CONSENSUS_Handle *consensus = cls; | 153 | struct GNUNET_CONSENSUS_Handle *consensus = cls; |
154 | 154 | ||
155 | LOG (GNUNET_ERROR_TYPE_INFO, "received message from consensus service\n"); | ||
156 | |||
155 | if (msg == NULL) | 157 | if (msg == NULL) |
156 | { | 158 | { |
157 | /* Error, timeout, death */ | 159 | /* Error, timeout, death */ |
160 | LOG (GNUNET_ERROR_TYPE_ERROR, "error receiving\n"); | ||
158 | GNUNET_CLIENT_disconnect (consensus->client); | 161 | GNUNET_CLIENT_disconnect (consensus->client); |
159 | consensus->client = NULL; | 162 | consensus->client = NULL; |
160 | consensus->new_element_cb(NULL, NULL); | 163 | consensus->new_element_cb (NULL, NULL); |
161 | if (NULL != consensus->idc) | 164 | if (NULL != consensus->idc) |
162 | { | 165 | { |
163 | consensus->idc(consensus->idc_cls, GNUNET_NO); | 166 | consensus->idc(consensus->idc_cls, GNUNET_NO); |
@@ -170,10 +173,10 @@ message_handler (void *cls, const struct GNUNET_MessageHeader *msg) | |||
170 | switch (ntohs(msg->type)) | 173 | switch (ntohs(msg->type)) |
171 | { | 174 | { |
172 | case GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_RECEIVED_ELEMENT: | 175 | case GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_RECEIVED_ELEMENT: |
173 | handle_new_element(consensus, (struct GNUNET_CONSENSUS_ElementMessage *) msg); | 176 | handle_new_element (consensus, (struct GNUNET_CONSENSUS_ElementMessage *) msg); |
174 | break; | 177 | break; |
175 | case GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE_DONE: | 178 | case GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE_DONE: |
176 | handle_conclude_done(consensus, (struct GNUNET_CONSENSUS_ConcludeDoneMessage *) msg); | 179 | handle_conclude_done (consensus, (struct GNUNET_CONSENSUS_ConcludeDoneMessage *) msg); |
177 | break; | 180 | break; |
178 | default: | 181 | default: |
179 | LOG(GNUNET_ERROR_TYPE_WARNING, "did not understand message type sent by service, ignoring"); | 182 | LOG(GNUNET_ERROR_TYPE_WARNING, "did not understand message type sent by service, ignoring"); |
@@ -220,16 +223,16 @@ transmit_insert (void *cls, size_t size, void *buf) | |||
220 | 223 | ||
221 | msg->header.type = htons (GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_INSERT); | 224 | msg->header.type = htons (GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_INSERT); |
222 | msg->header.size = htons (msize); | 225 | msg->header.size = htons (msize); |
223 | memcpy(&msg[1], | 226 | memcpy (&msg[1], |
224 | consensus->insert_element->data, | 227 | consensus->insert_element->data, |
225 | consensus->insert_element->size); | 228 | consensus->insert_element->size); |
226 | 229 | ||
227 | 230 | ||
228 | idc = consensus->idc; | 231 | idc = consensus->idc; |
229 | consensus->idc = NULL; | 232 | consensus->idc = NULL; |
230 | idc_cls = consensus->idc_cls; | 233 | idc_cls = consensus->idc_cls; |
231 | consensus->idc_cls = NULL; | 234 | consensus->idc_cls = NULL; |
232 | idc(idc_cls, GNUNET_YES); | 235 | idc (idc_cls, GNUNET_YES); |
233 | 236 | ||
234 | return msize; | 237 | return msize; |
235 | } | 238 | } |
@@ -253,10 +256,10 @@ transmit_join (void *cls, size_t size, void *buf) | |||
253 | struct GNUNET_CONSENSUS_Handle *consensus; | 256 | struct GNUNET_CONSENSUS_Handle *consensus; |
254 | int msize; | 257 | int msize; |
255 | 258 | ||
256 | LOG(GNUNET_ERROR_TYPE_DEBUG, "transmitting CLIENT_JOIN to service\n"); | ||
257 | |||
258 | GNUNET_assert (NULL != buf); | 259 | GNUNET_assert (NULL != buf); |
259 | 260 | ||
261 | LOG (GNUNET_ERROR_TYPE_DEBUG, "transmitting join message\n"); | ||
262 | |||
260 | consensus = cls; | 263 | consensus = cls; |
261 | consensus->th = NULL; | 264 | consensus->th = NULL; |
262 | consensus->joined = 1; | 265 | consensus->joined = 1; |
@@ -283,7 +286,6 @@ transmit_join (void *cls, size_t size, void *buf) | |||
283 | GNUNET_NO, &transmit_insert, consensus); | 286 | GNUNET_NO, &transmit_insert, consensus); |
284 | } | 287 | } |
285 | 288 | ||
286 | |||
287 | GNUNET_CLIENT_receive (consensus->client, &message_handler, consensus, | 289 | GNUNET_CLIENT_receive (consensus->client, &message_handler, consensus, |
288 | GNUNET_TIME_UNIT_FOREVER_REL); | 290 | GNUNET_TIME_UNIT_FOREVER_REL); |
289 | 291 | ||
@@ -321,7 +323,7 @@ transmit_conclude (void *cls, size_t size, void *buf) | |||
321 | msg->header.type = htons (GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE); | 323 | msg->header.type = htons (GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE); |
322 | msg->header.size = htons (msize); | 324 | msg->header.size = htons (msize); |
323 | msg->timeout = | 325 | msg->timeout = |
324 | GNUNET_TIME_relative_hton(GNUNET_TIME_absolute_get_remaining(consensus->conclude_deadline)); | 326 | GNUNET_TIME_relative_hton (GNUNET_TIME_absolute_get_remaining(consensus->conclude_deadline)); |
325 | 327 | ||
326 | return msize; | 328 | return msize; |
327 | } | 329 | } |
@@ -386,7 +388,6 @@ GNUNET_CONSENSUS_create (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
386 | struct GNUNET_CONSENSUS_Handle *consensus; | 388 | struct GNUNET_CONSENSUS_Handle *consensus; |
387 | size_t join_message_size; | 389 | size_t join_message_size; |
388 | 390 | ||
389 | |||
390 | consensus = GNUNET_malloc (sizeof (struct GNUNET_CONSENSUS_Handle)); | 391 | consensus = GNUNET_malloc (sizeof (struct GNUNET_CONSENSUS_Handle)); |
391 | consensus->cfg = cfg; | 392 | consensus->cfg = cfg; |
392 | consensus->new_element_cb = new_element_cb; | 393 | consensus->new_element_cb = new_element_cb; |
@@ -394,15 +395,12 @@ GNUNET_CONSENSUS_create (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
394 | consensus->num_peers = num_peers; | 395 | consensus->num_peers = num_peers; |
395 | consensus->session_id = *session_id; | 396 | consensus->session_id = *session_id; |
396 | 397 | ||
397 | |||
398 | |||
399 | if (0 == num_peers) | 398 | if (0 == num_peers) |
400 | { | 399 | { |
401 | consensus->peers = NULL; | 400 | consensus->peers = NULL; |
402 | } | 401 | } |
403 | else if (num_peers > 0) | 402 | else if (num_peers > 0) |
404 | { | 403 | { |
405 | |||
406 | consensus->peers = GNUNET_memdup (peers, num_peers * sizeof (struct GNUNET_PeerIdentity)); | 404 | consensus->peers = GNUNET_memdup (peers, num_peers * sizeof (struct GNUNET_PeerIdentity)); |
407 | } | 405 | } |
408 | else | 406 | else |
@@ -410,7 +408,6 @@ GNUNET_CONSENSUS_create (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
410 | GNUNET_break (0); | 408 | GNUNET_break (0); |
411 | } | 409 | } |
412 | 410 | ||
413 | |||
414 | consensus->client = GNUNET_CLIENT_connect ("consensus", cfg); | 411 | consensus->client = GNUNET_CLIENT_connect ("consensus", cfg); |
415 | 412 | ||
416 | GNUNET_assert (consensus->client != NULL); | 413 | GNUNET_assert (consensus->client != NULL); |
@@ -424,7 +421,6 @@ GNUNET_CONSENSUS_create (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
424 | GNUNET_TIME_UNIT_FOREVER_REL, | 421 | GNUNET_TIME_UNIT_FOREVER_REL, |
425 | GNUNET_NO, &transmit_join, consensus); | 422 | GNUNET_NO, &transmit_join, consensus); |
426 | 423 | ||
427 | |||
428 | GNUNET_assert (consensus->th != NULL); | 424 | GNUNET_assert (consensus->th != NULL); |
429 | 425 | ||
430 | return consensus; | 426 | return consensus; |