aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ats/ats_api_scheduling.c22
-rw-r--r--src/ats/test_ats_solver_add_address_and_request.c2
-rw-r--r--src/ats/test_ats_solver_alternative_after_delete_address.c3
-rw-r--r--src/ats/test_ats_solver_convergence.c2
-rw-r--r--src/ats/test_ats_solver_preferences.c3
-rw-r--r--src/ats/test_ats_solver_request_and_add_address.c2
-rw-r--r--src/ats/test_ats_solver_request_and_delete_address.c3
-rw-r--r--src/include/gnunet_ats_service.h6
-rw-r--r--src/transport/gnunet-service-transport.c8
-rw-r--r--src/transport/gnunet-service-transport_neighbours.c22
10 files changed, 32 insertions, 41 deletions
diff --git a/src/ats/ats_api_scheduling.c b/src/ats/ats_api_scheduling.c
index 4cf48d7613..d2bf06c179 100644
--- a/src/ats/ats_api_scheduling.c
+++ b/src/ats/ats_api_scheduling.c
@@ -90,17 +90,22 @@ struct ATS_Network
struct ATS_Network * prev;
struct sockaddr *network;
+
struct sockaddr *netmask;
+
socklen_t length;
};
+
/**
* Handle for address suggestions
*/
struct GNUNET_ATS_SuggestHandle
{
struct GNUNET_ATS_SuggestHandle *prev;
+
struct GNUNET_ATS_SuggestHandle *next;
+
struct GNUNET_PeerIdentity id;
};
@@ -1104,15 +1109,11 @@ GNUNET_ATS_reset_backoff (struct GNUNET_ATS_SchedulingHandle *sh,
*
* @param sh handle
* @param peer identity of the peer we need an address for
- * @param cont the continuation to call with the address
- * @param cont_cls the cls for the @a cont
* @return suggest handle
*/
struct GNUNET_ATS_SuggestHandle *
GNUNET_ATS_suggest_address (struct GNUNET_ATS_SchedulingHandle *sh,
- const struct GNUNET_PeerIdentity *peer,
- GNUNET_ATS_AddressSuggestionCallback cont,
- void *cont_cls)
+ const struct GNUNET_PeerIdentity *peer)
{
struct PendingMessage *p;
struct RequestAddressMessage *m;
@@ -1123,17 +1124,20 @@ GNUNET_ATS_suggest_address (struct GNUNET_ATS_SchedulingHandle *sh,
p = GNUNET_malloc (sizeof (struct PendingMessage) +
sizeof (struct RequestAddressMessage));
p->size = sizeof (struct RequestAddressMessage);
- p->is_init = GNUNET_NO;
m = (struct RequestAddressMessage *) &p[1];
m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS);
m->header.size = htons (sizeof (struct RequestAddressMessage));
m->reserved = htonl (0);
m->peer = *peer;
- GNUNET_CONTAINER_DLL_insert_tail (sh->pending_head, sh->pending_tail, p);
+ GNUNET_CONTAINER_DLL_insert_tail (sh->pending_head,
+ sh->pending_tail,
+ p);
do_transmit (sh);
s = GNUNET_new (struct GNUNET_ATS_SuggestHandle);
- s->id = (*peer);
- GNUNET_CONTAINER_DLL_insert_tail (sh->sug_head, sh->sug_tail, s);
+ s->id = *peer;
+ GNUNET_CONTAINER_DLL_insert_tail (sh->sug_head,
+ sh->sug_tail,
+ s);
return s;
}
diff --git a/src/ats/test_ats_solver_add_address_and_request.c b/src/ats/test_ats_solver_add_address_and_request.c
index cca1e46929..0fb678166f 100644
--- a/src/ats/test_ats_solver_add_address_and_request.c
+++ b/src/ats/test_ats_solver_add_address_and_request.c
@@ -159,7 +159,7 @@ stat_cb(void *cls, const char *subsystem,
GNUNET_log (GNUNET_ERROR_TYPE_INFO, "ATS statistics: `%s' `%s' %llu\n",
subsystem,name, value);
- GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
+ GNUNET_ATS_suggest_address (sched_ats, &p.id);
return GNUNET_OK;
}
diff --git a/src/ats/test_ats_solver_alternative_after_delete_address.c b/src/ats/test_ats_solver_alternative_after_delete_address.c
index 1f713801f1..fd6a5188ad 100644
--- a/src/ats/test_ats_solver_alternative_after_delete_address.c
+++ b/src/ats/test_ats_solver_alternative_after_delete_address.c
@@ -266,11 +266,12 @@ stat_cb(void *cls, const char *subsystem,
GNUNET_log (GNUNET_ERROR_TYPE_INFO, "All addresses added, requesting....\n");
/* We have 2 addresses, so we can request */
addresses_added = GNUNET_YES;
- GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
+ GNUNET_ATS_suggest_address (sched_ats, &p.id);
}
return GNUNET_OK;
}
+
static void
run (void *cls, const struct GNUNET_CONFIGURATION_Handle *mycfg,
struct GNUNET_TESTING_Peer *peer)
diff --git a/src/ats/test_ats_solver_convergence.c b/src/ats/test_ats_solver_convergence.c
index aa8704ccfa..e33b138acd 100644
--- a/src/ats/test_ats_solver_convergence.c
+++ b/src/ats/test_ats_solver_convergence.c
@@ -219,7 +219,7 @@ stat_cb(void *cls, const char *subsystem,
"ATS statistics: `%s' `%s' %llu\n",
subsystem,name,
(unsigned long long) value);
- GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
+ GNUNET_ATS_suggest_address (sched_ats, &p.id);
return GNUNET_OK;
}
diff --git a/src/ats/test_ats_solver_preferences.c b/src/ats/test_ats_solver_preferences.c
index 946cb54766..048e19b6b4 100644
--- a/src/ats/test_ats_solver_preferences.c
+++ b/src/ats/test_ats_solver_preferences.c
@@ -256,9 +256,10 @@ run (void *cls, const struct GNUNET_CONFIGURATION_Handle *mycfg,
/* Adding address */
GNUNET_ATS_address_add (sched_ats, &test_hello_address, test_session,
test_ats_info, test_ats_count);
- GNUNET_ATS_suggest_address(sched_ats, &test_hello_address.peer, NULL, NULL);
+ GNUNET_ATS_suggest_address(sched_ats, &test_hello_address.peer);
}
+
int
main (int argc, char *argv[])
{
diff --git a/src/ats/test_ats_solver_request_and_add_address.c b/src/ats/test_ats_solver_request_and_add_address.c
index 3c7b8a522c..a70d3e4a59 100644
--- a/src/ats/test_ats_solver_request_and_add_address.c
+++ b/src/ats/test_ats_solver_request_and_add_address.c
@@ -199,7 +199,7 @@ run (void *cls, const struct GNUNET_CONFIGURATION_Handle *mycfg,
test_hello_address.address_length = test_addr.addr_len;
/* Request */
- GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
+ GNUNET_ATS_suggest_address (sched_ats, &p.id);
/* Adding address */
diff --git a/src/ats/test_ats_solver_request_and_delete_address.c b/src/ats/test_ats_solver_request_and_delete_address.c
index 1e4644b2cb..c30aaf8335 100644
--- a/src/ats/test_ats_solver_request_and_delete_address.c
+++ b/src/ats/test_ats_solver_request_and_delete_address.c
@@ -186,10 +186,11 @@ stat_cb(void *cls, const char *subsystem,
GNUNET_log (GNUNET_ERROR_TYPE_INFO, "ATS statistics: `%s' `%s' %llu\n",
subsystem,name, value);
if (GNUNET_NO == address_deleted)
- GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
+ GNUNET_ATS_suggest_address (sched_ats, &p.id);
return GNUNET_OK;
}
+
static void
run (void *cls, const struct GNUNET_CONFIGURATION_Handle *mycfg,
struct GNUNET_TESTING_Peer *peer)
diff --git a/src/include/gnunet_ats_service.h b/src/include/gnunet_ats_service.h
index 8b1aaf5c7b..7be2e47589 100644
--- a/src/include/gnunet_ats_service.h
+++ b/src/include/gnunet_ats_service.h
@@ -386,15 +386,11 @@ GNUNET_ATS_reset_backoff (struct GNUNET_ATS_SchedulingHandle *sh,
*
* @param sh handle
* @param peer identity of the peer we need an address for
- * @param cont the continuation to indicate success to call with the address
- * @param cont_cls the closure for the @a cont
* @return suggestion handle
*/
struct GNUNET_ATS_SuggestHandle *
GNUNET_ATS_suggest_address (struct GNUNET_ATS_SchedulingHandle *sh,
- const struct GNUNET_PeerIdentity *peer,
- GNUNET_ATS_AddressSuggestionCallback cont,
- void *cont_cls);
+ const struct GNUNET_PeerIdentity *peer);
/**
diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c
index cd131ae39f..03fbc95dba 100644
--- a/src/transport/gnunet-service-transport.c
+++ b/src/transport/gnunet-service-transport.c
@@ -928,10 +928,14 @@ ats_request_address_change (void *cls,
return;
}
- GST_neighbours_switch_to_address (&address->peer, address, session, ats,
- ats_count, bandwidth_in, bandwidth_out);
+ GST_neighbours_switch_to_address (&address->peer,
+ address,
+ session,
+ ats, ats_count,
+ bandwidth_in, bandwidth_out);
}
+
/**
* Function called to notify transport users that another
* peer connected to us.
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c
index b4db4c2cbc..9f2f210fbc 100644
--- a/src/transport/gnunet-service-transport_neighbours.c
+++ b/src/transport/gnunet-service-transport_neighbours.c
@@ -2143,21 +2143,6 @@ setup_neighbour (const struct GNUNET_PeerIdentity *peer)
return n;
}
-/* We received a address suggestion after requesting an address in
- * try_connect or after receiving a connect, switch to address
- */
-static void
-address_suggest_cont (void *cls,
- const struct GNUNET_PeerIdentity *peer,
- const struct GNUNET_HELLO_Address *address, struct Session *session,
- struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
- struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
- const struct GNUNET_ATS_Information *ats, uint32_t ats_count)
-{
- GST_neighbours_switch_to_address(peer, address, session, ats, ats_count,
- bandwidth_in, bandwidth_out);
-}
-
struct BlacklistCheckSwitchContext
{
@@ -2217,8 +2202,7 @@ try_connect_bl_check_cont (void *cls,
GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT));
GNUNET_ATS_reset_backoff (GST_ats, peer);
n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats,
- peer,
- &address_suggest_cont, n);
+ peer);
}
@@ -2361,7 +2345,7 @@ GST_neighbours_handle_session_syn (const struct GNUNET_MessageHeader *message,
set_state_and_timeout (n, GNUNET_TRANSPORT_PS_SYN_RECV_ATS,
GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT));
if (NULL == n->suggest_handle)
- GNUNET_ATS_suggest_address (GST_ats, peer, address_suggest_cont, n);
+ GNUNET_ATS_suggest_address (GST_ats, peer);
break;
case GNUNET_TRANSPORT_PS_INIT_ATS:
/* SYN message takes priority over us asking ATS for address:
@@ -2415,7 +2399,7 @@ GST_neighbours_handle_session_syn (const struct GNUNET_MessageHeader *message,
n->ack_state = ACK_SEND_SYN_ACK;
n->connect_ack_timestamp = ts;
/* Request an address for the peer */
- GNUNET_ATS_suggest_address (GST_ats, peer, address_suggest_cont, n);
+ GNUNET_ATS_suggest_address (GST_ats, peer);
GNUNET_ATS_reset_backoff (GST_ats, peer);
set_state (n, GNUNET_TRANSPORT_PS_SYN_RECV_ATS);
break;