aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/transport/gnunet-service-transport.c12
-rw-r--r--src/transport/gnunet-service-transport_validation.c30
2 files changed, 36 insertions, 6 deletions
diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c
index 99f72e729..d17b96313 100644
--- a/src/transport/gnunet-service-transport.c
+++ b/src/transport/gnunet-service-transport.c
@@ -422,10 +422,20 @@ GST_ats_add_address (struct GNUNET_HELLO_Address *address,
422 } 422 }
423 423
424 net = papi->get_network (NULL, session); 424 net = papi->get_network (NULL, session);
425 if (GNUNET_ATS_NET_UNSPECIFIED == net)
426 {
427 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
428 _("Could not obtain a valid network for `%s' %s\n"),
429 GNUNET_i2s (&address->peer), GST_plugins_a2s (address));
430 GNUNET_break (0);
431 }
425 ats.type = htonl (GNUNET_ATS_NETWORK_TYPE); 432 ats.type = htonl (GNUNET_ATS_NETWORK_TYPE);
426 ats.value = htonl(net); 433 ats.value = htonl(net);
427 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Notifying ATS about new address `%s' in network %s\n", 434 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
435 "Notifying ATS about peer `%s''s new address `%s' session %p in network %s\n",
436 GNUNET_i2s (&address->peer),
428 (0 == address->address_length) ? "<inbound>" : GST_plugins_a2s (address), 437 (0 == address->address_length) ? "<inbound>" : GST_plugins_a2s (address),
438 session,
429 GNUNET_ATS_print_network_type(net)); 439 GNUNET_ATS_print_network_type(net));
430 GNUNET_ATS_address_add (GST_ats, 440 GNUNET_ATS_address_add (GST_ats,
431 address, session, &ats, 1); 441 address, session, &ats, 1);
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 {