aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-service-transport_validation.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2013-07-10 12:01:41 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2013-07-10 12:01:41 +0000
commit62e83106272d4dc6ad07c847c23f1e364ac503f4 (patch)
tree5ec4711efc5e7d932d386bfbdde1aa987e2de9cb /src/transport/gnunet-service-transport_validation.c
parentae400b5a535a1aaeee112288fd18da9a1e0b128e (diff)
downloadgnunet-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.c30
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 {