aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-service-transport_validation.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/gnunet-service-transport_validation.c')
-rw-r--r--src/transport/gnunet-service-transport_validation.c53
1 files changed, 33 insertions, 20 deletions
diff --git a/src/transport/gnunet-service-transport_validation.c b/src/transport/gnunet-service-transport_validation.c
index fb2791eba..746a99f9f 100644
--- a/src/transport/gnunet-service-transport_validation.c
+++ b/src/transport/gnunet-service-transport_validation.c
@@ -450,7 +450,7 @@ cleanup_validation_entry (void *cls,
450 validations_running, 450 validations_running,
451 GNUNET_NO); 451 GNUNET_NO);
452 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 452 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
453 "Validation finished, %u validation processes running\n", 453 "Validation aborted, %u validation processes running\n",
454 validations_running); 454 validations_running);
455 } 455 }
456 GNUNET_free (ve); 456 GNUNET_free (ve);
@@ -830,7 +830,7 @@ add_valid_address (void *cls,
830 if (GNUNET_YES != ve->known_to_ats) 830 if (GNUNET_YES != ve->known_to_ats)
831 { 831 {
832 ve->known_to_ats = GNUNET_YES; 832 ve->known_to_ats = GNUNET_YES;
833 GST_ats_add_address (address, NULL, &ats, 1); 833 GST_ats_add_address (address, &ats, 1);
834 } 834 }
835 return GNUNET_OK; 835 return GNUNET_OK;
836} 836}
@@ -1230,6 +1230,35 @@ GST_validation_handle_ping (const struct GNUNET_PeerIdentity *sender,
1230 1230
1231 1231
1232/** 1232/**
1233 * Validate an individual address.
1234 *
1235 * @param address address we should try to validate
1236 */
1237void
1238GST_validation_handle_address (const struct GNUNET_HELLO_Address *address)
1239{
1240 struct GNUNET_TRANSPORT_PluginFunctions *papi;
1241 struct ValidationEntry *ve;
1242
1243 papi = GST_plugins_find (address->transport_name);
1244 if (NULL == papi)
1245 {
1246 /* This plugin is currently unvailable ... ignore */
1247 return;
1248 }
1249 ve = find_validation_entry (address);
1250 if (NULL == ve->revalidation_task)
1251 {
1252 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
1253 "Validation process started for fresh address `%s' of %s\n",
1254 GST_plugins_a2s (ve->address),
1255 GNUNET_i2s (&ve->address->peer));
1256 ve->revalidation_task = GNUNET_SCHEDULER_add_now (&revalidate_address, ve);
1257 }
1258}
1259
1260
1261/**
1233 * Iterator callback to go over all addresses and try to validate them 1262 * Iterator callback to go over all addresses and try to validate them
1234 * (unless blocked or already validated). 1263 * (unless blocked or already validated).
1235 * 1264 *
@@ -1243,29 +1272,13 @@ validate_address_iterator (void *cls,
1243 const struct GNUNET_HELLO_Address *address, 1272 const struct GNUNET_HELLO_Address *address,
1244 struct GNUNET_TIME_Absolute expiration) 1273 struct GNUNET_TIME_Absolute expiration)
1245{ 1274{
1246 struct GNUNET_TRANSPORT_PluginFunctions * papi;
1247 struct ValidationEntry *ve;
1248
1249 if (0 == GNUNET_TIME_absolute_get_remaining (expiration).rel_value_us) 1275 if (0 == GNUNET_TIME_absolute_get_remaining (expiration).rel_value_us)
1250 { 1276 {
1251 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1277 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1252 "Skipping expired address from HELLO\n"); 1278 "Skipping expired address from HELLO\n");
1253 return GNUNET_OK; /* expired */ 1279 return GNUNET_OK; /* expired */
1254 } 1280 }
1255 papi = GST_plugins_find (address->transport_name); 1281 GST_validation_handle_address (address);
1256 if (NULL == papi)
1257 {
1258 /* This plugin is currently unvailable ... ignore */
1259 return GNUNET_OK;
1260 }
1261 ve = find_validation_entry (address);
1262 if (NULL == ve->revalidation_task)
1263 {
1264 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
1265 "Validation process started for fresh address `%s'\n",
1266 GST_plugins_a2s (ve->address));
1267 ve->revalidation_task = GNUNET_SCHEDULER_add_now (&revalidate_address, ve);
1268 }
1269 return GNUNET_OK; 1282 return GNUNET_OK;
1270} 1283}
1271 1284
@@ -1457,7 +1470,7 @@ GST_validation_handle_pong (const struct GNUNET_PeerIdentity *sender,
1457 else 1470 else
1458 { 1471 {
1459 ve->known_to_ats = GNUNET_YES; 1472 ve->known_to_ats = GNUNET_YES;
1460 GST_ats_add_address (ve->address, NULL, ats, 2); 1473 GST_ats_add_address (ve->address, ats, 2);
1461 } 1474 }
1462 } 1475 }
1463 if (validations_running > 0) 1476 if (validations_running > 0)