aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-08-06 19:09:40 +0000
committerChristian Grothoff <christian@grothoff.org>2011-08-06 19:09:40 +0000
commitf2ee6482821a0948e2ceb1d73758dc269eab9a6c (patch)
tree73317cf6550e3f2f9efad4006f511ae484ab5a01 /src
parentaad2f0838ef0586366fe4e3921013b7af6a4ea65 (diff)
downloadgnunet-f2ee6482821a0948e2ceb1d73758dc269eab9a6c.tar.gz
gnunet-f2ee6482821a0948e2ceb1d73758dc269eab9a6c.zip
send target address with PING
Diffstat (limited to 'src')
-rw-r--r--src/transport/gnunet-service-transport_validation.c62
1 files changed, 40 insertions, 22 deletions
diff --git a/src/transport/gnunet-service-transport_validation.c b/src/transport/gnunet-service-transport_validation.c
index 9a8bf0b47..9583fc1a7 100644
--- a/src/transport/gnunet-service-transport_validation.c
+++ b/src/transport/gnunet-service-transport_validation.c
@@ -538,7 +538,9 @@ validate_address (void *cls,
538 struct TransportPingMessage ping; 538 struct TransportPingMessage ping;
539 struct GNUNET_TRANSPORT_PluginFunctions *papi; 539 struct GNUNET_TRANSPORT_PluginFunctions *papi;
540 ssize_t ret; 540 ssize_t ret;
541 541 size_t tsize;
542 size_t slen;
543
542 if (GNUNET_TIME_absolute_get_remaining (expiration).rel_value == 0) 544 if (GNUNET_TIME_absolute_get_remaining (expiration).rel_value == 0)
543 return GNUNET_OK; /* expired */ 545 return GNUNET_OK; /* expired */
544 ve = find_validation_entry (pid, tname, addr, addrlen); 546 ve = find_validation_entry (pid, tname, addr, addrlen);
@@ -547,32 +549,48 @@ validate_address (void *cls,
547 if (GNUNET_TIME_absolute_get_remaining (ve->valid_until).rel_value > 0) 549 if (GNUNET_TIME_absolute_get_remaining (ve->valid_until).rel_value > 0)
548 return GNUNET_OK; /* valid */ 550 return GNUNET_OK; /* valid */
549 ve->validation_block = GNUNET_TIME_relative_to_absolute (MAX_REVALIDATION_FREQUENCY); 551 ve->validation_block = GNUNET_TIME_relative_to_absolute (MAX_REVALIDATION_FREQUENCY);
550 552
553 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
554 "Transmitting plain PING to `%s'\n",
555 GNUNET_i2s (pid));
551 ping.header.size = htons(sizeof(struct TransportPingMessage)); 556 ping.header.size = htons(sizeof(struct TransportPingMessage));
552 ping.header.type = htons(GNUNET_MESSAGE_TYPE_TRANSPORT_PING); 557 ping.header.type = htons(GNUNET_MESSAGE_TYPE_TRANSPORT_PING);
553 ping.challenge = htonl(ve->challenge); 558 ping.challenge = htonl(ve->challenge);
554 ping.target = *pid; 559 ping.target = *pid;
555 GNUNET_STATISTICS_update (GST_stats, 560
556 gettext_noop ("# PING without HELLO messages sent"), 561 slen = strlen(ve->transport_name) + 1;
557 1, 562 tsize = sizeof(struct TransportPingMessage) + ve->addrlen + slen;
558 GNUNET_NO); 563 {
559 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 564 char message_buf[tsize];
560 "Transmitting plain PING to `%s'\n", 565
561 GNUNET_i2s (pid)); 566 memcpy(message_buf, &ping, sizeof (struct TransportPingMessage));
562 papi = GST_plugins_find (ve->transport_name); 567 memcpy(&message_buf[sizeof (struct TransportPingMessage)],
563 ret = papi->send (papi->cls, 568 ve->transport_name,
564 pid, 569 slen);
565 (const char*) &ping, 570 memcpy(&message_buf[sizeof (struct TransportPingMessage) + slen],
566 sizeof (struct TransportPingMessage), 571 ve->addr,
567 PING_PRIORITY, 572 ve->addrlen);
568 HELLO_VERIFICATION_TIMEOUT, 573 papi = GST_plugins_find (ve->transport_name);
569 NULL /* no session */, 574 ret = papi->send (papi->cls,
570 ve->addr, 575 pid,
571 ve->addrlen, 576 message_buf,
572 GNUNET_YES, 577 tsize,
573 NULL, NULL); 578 PING_PRIORITY,
579 HELLO_VERIFICATION_TIMEOUT,
580 NULL /* no session */,
581 ve->addr,
582 ve->addrlen,
583 GNUNET_YES,
584 NULL, NULL);
585 }
574 if (-1 != ret) 586 if (-1 != ret)
575 ve->send_time = GNUNET_TIME_absolute_get (); 587 {
588 ve->send_time = GNUNET_TIME_absolute_get ();
589 GNUNET_STATISTICS_update (GST_stats,
590 gettext_noop ("# PING without HELLO messages sent"),
591 1,
592 GNUNET_NO);
593 }
576 return GNUNET_OK; 594 return GNUNET_OK;
577} 595}
578 596