diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2013-07-10 12:01:41 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2013-07-10 12:01:41 +0000 |
commit | 62e83106272d4dc6ad07c847c23f1e364ac503f4 (patch) | |
tree | 5ec4711efc5e7d932d386bfbdde1aa987e2de9cb /src/transport/gnunet-service-transport_validation.c | |
parent | ae400b5a535a1aaeee112288fd18da9a1e0b128e (diff) | |
download | gnunet-62e83106272d4dc6ad07c847c23f1e364ac503f4.tar.gz gnunet-62e83106272d4dc6ad07c847c23f1e364ac503f4.zip |
modified validation to use new api call to set networktype
Diffstat (limited to 'src/transport/gnunet-service-transport_validation.c')
-rw-r--r-- | src/transport/gnunet-service-transport_validation.c | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/src/transport/gnunet-service-transport_validation.c b/src/transport/gnunet-service-transport_validation.c index d80818369..d467c71a7 100644 --- a/src/transport/gnunet-service-transport_validation.c +++ b/src/transport/gnunet-service-transport_validation.c | |||
@@ -266,6 +266,8 @@ struct ValidationEntry | |||
266 | /* FIXME: DEBUGGING */ | 266 | /* FIXME: DEBUGGING */ |
267 | int last_line_set_to_no; | 267 | int last_line_set_to_no; |
268 | int last_line_set_to_yes; | 268 | int last_line_set_to_yes; |
269 | |||
270 | enum GNUNET_ATS_Network_Type network; | ||
269 | }; | 271 | }; |
270 | 272 | ||
271 | 273 | ||
@@ -473,6 +475,7 @@ transmit_ping_if_allowed (void *cls, const struct GNUNET_PeerIdentity *pid, | |||
473 | struct GNUNET_TRANSPORT_PluginFunctions *papi; | 475 | struct GNUNET_TRANSPORT_PluginFunctions *papi; |
474 | struct GNUNET_TIME_Absolute next; | 476 | struct GNUNET_TIME_Absolute next; |
475 | const struct GNUNET_MessageHeader *hello; | 477 | const struct GNUNET_MessageHeader *hello; |
478 | enum GNUNET_ATS_Network_Type network; | ||
476 | ssize_t ret; | 479 | ssize_t ret; |
477 | size_t tsize; | 480 | size_t tsize; |
478 | size_t slen; | 481 | size_t slen; |
@@ -546,6 +549,14 @@ transmit_ping_if_allowed (void *cls, const struct GNUNET_PeerIdentity *pid, | |||
546 | message_buf, tsize, | 549 | message_buf, tsize, |
547 | PING_PRIORITY, ACCEPTABLE_PING_DELAY, | 550 | PING_PRIORITY, ACCEPTABLE_PING_DELAY, |
548 | NULL, NULL); | 551 | NULL, NULL); |
552 | network = papi->get_network (ve->address, session); | ||
553 | if (GNUNET_ATS_NET_UNSPECIFIED == network) | ||
554 | { | ||
555 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | ||
556 | "Could not obtain a valid network for `%s' %s\n", | ||
557 | GNUNET_i2s (pid), GST_plugins_a2s (ve->address)); | ||
558 | GNUNET_break (0); | ||
559 | } | ||
549 | } | 560 | } |
550 | else | 561 | else |
551 | { | 562 | { |
@@ -563,6 +574,8 @@ transmit_ping_if_allowed (void *cls, const struct GNUNET_PeerIdentity *pid, | |||
563 | gettext_noop | 574 | gettext_noop |
564 | ("# PING without HELLO messages sent"), 1, | 575 | ("# PING without HELLO messages sent"), 1, |
565 | GNUNET_NO); | 576 | GNUNET_NO); |
577 | |||
578 | ve->network = network; | ||
566 | ve->expecting_pong = GNUNET_YES; | 579 | ve->expecting_pong = GNUNET_YES; |
567 | validations_running ++; | 580 | validations_running ++; |
568 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 581 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
@@ -723,6 +736,7 @@ add_valid_address (void *cls, const struct GNUNET_HELLO_Address *address, | |||
723 | const struct GNUNET_HELLO_Message *hello = cls; | 736 | const struct GNUNET_HELLO_Message *hello = cls; |
724 | struct ValidationEntry *ve; | 737 | struct ValidationEntry *ve; |
725 | struct GNUNET_PeerIdentity pid; | 738 | struct GNUNET_PeerIdentity pid; |
739 | struct GNUNET_ATS_Information ats; | ||
726 | struct GNUNET_CRYPTO_EccPublicKeyBinaryEncoded public_key; | 740 | struct GNUNET_CRYPTO_EccPublicKeyBinaryEncoded public_key; |
727 | 741 | ||
728 | if (GNUNET_TIME_absolute_get_remaining (expiration).rel_value == 0) | 742 | if (GNUNET_TIME_absolute_get_remaining (expiration).rel_value == 0) |
@@ -744,7 +758,11 @@ add_valid_address (void *cls, const struct GNUNET_HELLO_Address *address, | |||
744 | 758 | ||
745 | if (GNUNET_SCHEDULER_NO_TASK == ve->revalidation_task) | 759 | if (GNUNET_SCHEDULER_NO_TASK == ve->revalidation_task) |
746 | ve->revalidation_task = GNUNET_SCHEDULER_add_now (&revalidate_address, ve); | 760 | ve->revalidation_task = GNUNET_SCHEDULER_add_now (&revalidate_address, ve); |
747 | GNUNET_ATS_address_add (GST_ats, address, NULL, NULL, 0); | 761 | |
762 | ats.type = htonl (GNUNET_ATS_NETWORK_TYPE); | ||
763 | ats.value = htonl (ve->network); | ||
764 | GNUNET_ATS_address_add (GST_ats, address, NULL, &ats, 1); | ||
765 | |||
748 | return GNUNET_OK; | 766 | return GNUNET_OK; |
749 | } | 767 | } |
750 | 768 | ||
@@ -1248,10 +1266,12 @@ GST_validation_handle_pong (const struct GNUNET_PeerIdentity *sender, | |||
1248 | ve->pong_sig_valid_until = GNUNET_TIME_absolute_ntoh (pong->expiration); | 1266 | ve->pong_sig_valid_until = GNUNET_TIME_absolute_ntoh (pong->expiration); |
1249 | ve->latency = GNUNET_TIME_absolute_get_duration (ve->send_time); | 1267 | ve->latency = GNUNET_TIME_absolute_get_duration (ve->send_time); |
1250 | { | 1268 | { |
1251 | struct GNUNET_ATS_Information ats; | 1269 | struct GNUNET_ATS_Information ats[2]; |
1252 | ats.type = htonl (GNUNET_ATS_QUALITY_NET_DELAY); | 1270 | ats[0].type = htonl (GNUNET_ATS_QUALITY_NET_DELAY); |
1253 | ats.value = htonl ((uint32_t) ve->latency.rel_value); | 1271 | ats[0].value = htonl ((uint32_t) ve->latency.rel_value); |
1254 | GNUNET_ATS_address_add (GST_ats, ve->address, NULL, &ats, 1); | 1272 | ats[1].type = htonl (GNUNET_ATS_NETWORK_TYPE); |
1273 | ats[1].value = htonl ((uint32_t) ve->network); | ||
1274 | GNUNET_ATS_address_add (GST_ats, ve->address, NULL, ats, 2); | ||
1255 | } | 1275 | } |
1256 | if (validations_running > 0) | 1276 | if (validations_running > 0) |
1257 | { | 1277 | { |