aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/transport/gnunet-service-transport_neighbours.c14
-rw-r--r--src/transport/gnunet-service-transport_validation.c17
-rw-r--r--src/transport/gnunet-service-transport_validation.h7
3 files changed, 25 insertions, 13 deletions
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c
index 3e8ef5aca..eea5d80a1 100644
--- a/src/transport/gnunet-service-transport_neighbours.c
+++ b/src/transport/gnunet-service-transport_neighbours.c
@@ -921,7 +921,7 @@ disconnect_neighbour (struct NeighbourMapEntry *n)
921 GNUNET_assert (NULL != n->address); 921 GNUNET_assert (NULL != n->address);
922 if (n->address_state == USED) 922 if (n->address_state == USED)
923 { 923 {
924 GST_validation_set_address_use (n->address, n->session, GNUNET_NO); 924 GST_validation_set_address_use (n->address, n->session, GNUNET_NO, __LINE__);
925 GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_NO); 925 GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_NO);
926 n->address_state = UNUSED; 926 n->address_state = UNUSED;
927 } 927 }
@@ -1270,7 +1270,7 @@ send_switch_address_continuation (void *cls,
1270 case S_CONNECTED: 1270 case S_CONNECTED:
1271 if (n->address_state == FRESH) 1271 if (n->address_state == FRESH)
1272 { 1272 {
1273 GST_validation_set_address_use (cc->address, cc->session, GNUNET_YES); 1273 GST_validation_set_address_use (cc->address, cc->session, GNUNET_YES, __LINE__);
1274 GNUNET_ATS_address_update (GST_ats, cc->address, cc->session, NULL, 0); 1274 GNUNET_ATS_address_update (GST_ats, cc->address, cc->session, NULL, 0);
1275 if (cc->session != n->session) 1275 if (cc->session != n->session)
1276 GNUNET_break (0); 1276 GNUNET_break (0);
@@ -1291,7 +1291,7 @@ send_switch_address_continuation (void *cls,
1291 1291
1292 if (n->address_state == FRESH) 1292 if (n->address_state == FRESH)
1293 { 1293 {
1294 GST_validation_set_address_use (cc->address, cc->session, GNUNET_YES); 1294 GST_validation_set_address_use (cc->address, cc->session, GNUNET_YES, __LINE__);
1295 GNUNET_ATS_address_update (GST_ats, cc->address, cc->session, NULL, 0); 1295 GNUNET_ATS_address_update (GST_ats, cc->address, cc->session, NULL, 0);
1296 GNUNET_ATS_address_in_use (GST_ats, cc->address, cc->session, GNUNET_YES); 1296 GNUNET_ATS_address_in_use (GST_ats, cc->address, cc->session, GNUNET_YES);
1297 n->address_state = USED; 1297 n->address_state = USED;
@@ -1471,7 +1471,7 @@ GST_neighbours_switch_to_address (const struct GNUNET_PeerIdentity *peer,
1471 GNUNET_assert (NULL != n->address); 1471 GNUNET_assert (NULL != n->address);
1472 if (n->address_state == USED) 1472 if (n->address_state == USED)
1473 { 1473 {
1474 GST_validation_set_address_use (n->address, n->session, GNUNET_NO); 1474 GST_validation_set_address_use (n->address, n->session, GNUNET_NO, __LINE__);
1475 GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_NO); 1475 GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_NO);
1476 n->address_state = UNUSED; 1476 n->address_state = UNUSED;
1477 } 1477 }
@@ -1802,7 +1802,7 @@ GST_neighbours_session_terminated (const struct GNUNET_PeerIdentity *peer,
1802 { 1802 {
1803 if (n->address_state == USED) 1803 if (n->address_state == USED)
1804 { 1804 {
1805 GST_validation_set_address_use (n->address, n->session, GNUNET_NO); 1805 GST_validation_set_address_use (n->address, n->session, GNUNET_NO, __LINE__);
1806 GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_NO); 1806 GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_NO);
1807 n->address_state = UNUSED; 1807 n->address_state = UNUSED;
1808 } 1808 }
@@ -2469,7 +2469,7 @@ GST_neighbours_handle_connect_ack (const struct GNUNET_MessageHeader *message,
2469 2469
2470 if ((n->address_state == FRESH) && (0 == GNUNET_HELLO_address_cmp(address, n->address))) 2470 if ((n->address_state == FRESH) && (0 == GNUNET_HELLO_address_cmp(address, n->address)))
2471 { 2471 {
2472 GST_validation_set_address_use (n->address, n->session, GNUNET_YES); 2472 GST_validation_set_address_use (n->address, n->session, GNUNET_YES, __LINE__);
2473 GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_YES); 2473 GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_YES);
2474 n->address_state = USED; 2474 n->address_state = USED;
2475 } 2475 }
@@ -2556,7 +2556,7 @@ GST_neighbours_handle_ack (const struct GNUNET_MessageHeader *message,
2556 2556
2557 if ((n->address_state == FRESH) && (0 == GNUNET_HELLO_address_cmp(address, n->address))) 2557 if ((n->address_state == FRESH) && (0 == GNUNET_HELLO_address_cmp(address, n->address)))
2558 { 2558 {
2559 GST_validation_set_address_use (n->address, n->session, GNUNET_YES); 2559 GST_validation_set_address_use (n->address, n->session, GNUNET_YES, __LINE__);
2560 GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_YES); 2560 GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_YES);
2561 n->address_state = USED; 2561 n->address_state = USED;
2562 } 2562 }
diff --git a/src/transport/gnunet-service-transport_validation.c b/src/transport/gnunet-service-transport_validation.c
index a6d942497..6a13061cc 100644
--- a/src/transport/gnunet-service-transport_validation.c
+++ b/src/transport/gnunet-service-transport_validation.c
@@ -1211,13 +1211,16 @@ GST_validation_get_addresses (const struct GNUNET_PeerIdentity *target,
1211 * @param session the session 1211 * @param session the session
1212 * @param in_use GNUNET_YES if we are now using the address for a connection, 1212 * @param in_use GNUNET_YES if we are now using the address for a connection,
1213 * GNUNET_NO if we are no longer using the address for a connection 1213 * GNUNET_NO if we are no longer using the address for a connection
1214 * @param line line of caller just for DEBUGGING!
1214 */ 1215 */
1215void 1216void
1216GST_validation_set_address_use (const struct GNUNET_HELLO_Address *address, 1217GST_validation_set_address_use (const struct GNUNET_HELLO_Address *address,
1217 struct Session *session, 1218 struct Session *session,
1218 int in_use) 1219 int in_use,
1220 int line)
1219{ 1221{
1220 struct ValidationEntry *ve; 1222 struct ValidationEntry *ve;
1223 static int last_calling_line = 0;
1221 1224
1222 if (NULL != address) 1225 if (NULL != address)
1223 ve = find_validation_entry (NULL, address); 1226 ve = find_validation_entry (NULL, address);
@@ -1229,10 +1232,16 @@ GST_validation_set_address_use (const struct GNUNET_HELLO_Address *address,
1229 return; 1232 return;
1230 } 1233 }
1231 if (ve->in_use == in_use) 1234 if (ve->in_use == in_use)
1235 {
1232 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 1236 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
1233 "GST_validation_set_address_use: %s %s: ve->in_use %i <-> in_use %i\n", 1237 "Error setting address in use for peer `%s' `%s': %s -> %s; set last time by %i, called now by %i\n",
1234 GNUNET_i2s (&address->peer), GST_plugins_a2s (address), ve->in_use, 1238
1235 in_use); 1239 GNUNET_i2s (&address->peer), GST_plugins_a2s (address),
1240 (GNUNET_NO == ve->in_use) ? "NOT USED" : "USED",
1241 (GNUNET_NO == in_use) ? "NOT USED" : "USED",
1242 last_calling_line, line);
1243 }
1244 last_calling_line = line;
1236 GNUNET_break (ve->in_use != in_use); /* should be different... */ 1245 GNUNET_break (ve->in_use != in_use); /* should be different... */
1237 ve->in_use = in_use; 1246 ve->in_use = in_use;
1238 if (in_use == GNUNET_YES) 1247 if (in_use == GNUNET_YES)
diff --git a/src/transport/gnunet-service-transport_validation.h b/src/transport/gnunet-service-transport_validation.h
index 9b1063be3..dd5bcd6bf 100644
--- a/src/transport/gnunet-service-transport_validation.h
+++ b/src/transport/gnunet-service-transport_validation.h
@@ -52,13 +52,16 @@ GST_validation_stop (void);
52 * address more or less often. 52 * address more or less often.
53 * 53 *
54 * @param address the address 54 * @param address the address
55 * @param session session 55 * @param session the session
56 * @param in_use GNUNET_YES if we are now using the address for a connection, 56 * @param in_use GNUNET_YES if we are now using the address for a connection,
57 * GNUNET_NO if we are no longer using the address for a connection 57 * GNUNET_NO if we are no longer using the address for a connection
58 * @param line line of caller just for DEBUGGING!
58 */ 59 */
59void 60void
60GST_validation_set_address_use (const struct GNUNET_HELLO_Address *address, 61GST_validation_set_address_use (const struct GNUNET_HELLO_Address *address,
61 struct Session *session, int in_use); 62 struct Session *session,
63 int in_use,
64 int line);
62 65
63 66
64/** 67/**