aboutsummaryrefslogtreecommitdiff
path: root/src/transport/transport_api_monitoring.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/transport_api_monitoring.c')
-rw-r--r--src/transport/transport_api_monitoring.c36
1 files changed, 28 insertions, 8 deletions
diff --git a/src/transport/transport_api_monitoring.c b/src/transport/transport_api_monitoring.c
index 9d74eb114..af5988151 100644
--- a/src/transport/transport_api_monitoring.c
+++ b/src/transport/transport_api_monitoring.c
@@ -240,6 +240,8 @@ GNUNET_TRANSPORT_vs2s (enum GNUNET_TRANSPORT_ValidationState state)
240{ 240{
241 switch (state) 241 switch (state)
242 { 242 {
243 case GNUNET_TRANSPORT_VS_NONE:
244 return "NEW";
243 case GNUNET_TRANSPORT_VS_NEW: 245 case GNUNET_TRANSPORT_VS_NEW:
244 return "NEW"; 246 return "NEW";
245 case GNUNET_TRANSPORT_VS_REMOVE: 247 case GNUNET_TRANSPORT_VS_REMOVE:
@@ -309,7 +311,7 @@ send_val_mon_request (struct GNUNET_TRANSPORT_ValidationMonitoringContext *val_c
309{ 311{
310 struct ValidationMonitorMessage msg; 312 struct ValidationMonitorMessage msg;
311 313
312 msg.header.size = htons (sizeof (struct PeerMonitorMessage)); 314 msg.header.size = htons (sizeof (struct ValidationMonitorMessage));
313 msg.header.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_MONITOR_VALIDATION_REQUEST); 315 msg.header.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_MONITOR_VALIDATION_REQUEST);
314 msg.one_shot = htonl (val_ctx->one_shot); 316 msg.one_shot = htonl (val_ctx->one_shot);
315 msg.peer = val_ctx->peer; 317 msg.peer = val_ctx->peer;
@@ -322,7 +324,6 @@ send_val_mon_request (struct GNUNET_TRANSPORT_ValidationMonitoringContext *val_c
322 val_ctx)); 324 val_ctx));
323} 325}
324 326
325
326/** 327/**
327 * Task run to re-establish the connection. 328 * Task run to re-establish the connection.
328 * 329 *
@@ -330,8 +331,8 @@ send_val_mon_request (struct GNUNET_TRANSPORT_ValidationMonitoringContext *val_c
330 * @param tc scheduler context, unused 331 * @param tc scheduler context, unused
331 */ 332 */
332static void 333static void
333do_connect (void *cls, 334do_peer_connect (void *cls,
334 const struct GNUNET_SCHEDULER_TaskContext *tc) 335 const struct GNUNET_SCHEDULER_TaskContext *tc)
335{ 336{
336 struct GNUNET_TRANSPORT_PeerMonitoringContext *pal_ctx = cls; 337 struct GNUNET_TRANSPORT_PeerMonitoringContext *pal_ctx = cls;
337 338
@@ -355,10 +356,29 @@ reconnect_peer_ctx (struct GNUNET_TRANSPORT_PeerMonitoringContext *pal_ctx)
355 pal_ctx->client = NULL; 356 pal_ctx->client = NULL;
356 pal_ctx->backoff = GNUNET_TIME_STD_BACKOFF (pal_ctx->backoff); 357 pal_ctx->backoff = GNUNET_TIME_STD_BACKOFF (pal_ctx->backoff);
357 pal_ctx->reconnect_task = GNUNET_SCHEDULER_add_delayed (pal_ctx->backoff, 358 pal_ctx->reconnect_task = GNUNET_SCHEDULER_add_delayed (pal_ctx->backoff,
358 &do_connect, 359 &do_peer_connect,
359 pal_ctx); 360 pal_ctx);
360} 361}
361 362
363
364/**
365 * Task run to re-establish the connection.
366 *
367 * @param cls our 'struct GNUNET_TRANSPORT_PeerAddressLookupContext*'
368 * @param tc scheduler context, unused
369 */
370static void
371do_val_connect (void *cls,
372 const struct GNUNET_SCHEDULER_TaskContext *tc)
373{
374 struct GNUNET_TRANSPORT_ValidationMonitoringContext *val_ctx = cls;
375
376 val_ctx->reconnect_task = GNUNET_SCHEDULER_NO_TASK;
377 val_ctx->client = GNUNET_CLIENT_connect ("transport", val_ctx->cfg);
378 GNUNET_assert (NULL != val_ctx->client);
379 send_val_mon_request (val_ctx);
380}
381
362/** 382/**
363 * Cut the existing connection and reconnect. 383 * Cut the existing connection and reconnect.
364 * 384 *
@@ -372,7 +392,7 @@ reconnect_val_ctx (struct GNUNET_TRANSPORT_ValidationMonitoringContext *val_ctx)
372 val_ctx->client = NULL; 392 val_ctx->client = NULL;
373 val_ctx->backoff = GNUNET_TIME_STD_BACKOFF (val_ctx->backoff); 393 val_ctx->backoff = GNUNET_TIME_STD_BACKOFF (val_ctx->backoff);
374 val_ctx->reconnect_task = GNUNET_SCHEDULER_add_delayed (val_ctx->backoff, 394 val_ctx->reconnect_task = GNUNET_SCHEDULER_add_delayed (val_ctx->backoff,
375 &do_connect, 395 &do_val_connect,
376 val_ctx); 396 val_ctx);
377} 397}
378 398
@@ -397,7 +417,6 @@ val_response_processor (void *cls, const struct GNUNET_MessageHeader *msg)
397 417
398 if (msg == NULL) 418 if (msg == NULL)
399 { 419 {
400 GNUNET_break (0);
401 if (val_ctx->one_shot) 420 if (val_ctx->one_shot)
402 { 421 {
403 /* Disconnect */ 422 /* Disconnect */
@@ -415,6 +434,7 @@ val_response_processor (void *cls, const struct GNUNET_MessageHeader *msg)
415 size = ntohs (msg->size); 434 size = ntohs (msg->size);
416 GNUNET_break (ntohs (msg->type) == 435 GNUNET_break (ntohs (msg->type) ==
417 GNUNET_MESSAGE_TYPE_TRANSPORT_MONITOR_VALIDATION_RESPONSE); 436 GNUNET_MESSAGE_TYPE_TRANSPORT_MONITOR_VALIDATION_RESPONSE);
437
418 if (size == sizeof (struct GNUNET_MessageHeader)) 438 if (size == sizeof (struct GNUNET_MessageHeader))
419 { 439 {
420 /* Done! */ 440 /* Done! */
@@ -548,7 +568,7 @@ peer_response_processor (void *cls, const struct GNUNET_MessageHeader *msg)
548 uint16_t size; 568 uint16_t size;
549 size_t alen; 569 size_t alen;
550 size_t tlen; 570 size_t tlen;
551 GNUNET_break (0); 571
552 if (msg == NULL) 572 if (msg == NULL)
553 { 573 {
554 if (pal_ctx->one_shot) 574 if (pal_ctx->one_shot)