diff options
-rw-r--r-- | src/ats/ats_api_scheduling.c | 22 | ||||
-rw-r--r-- | src/ats/test_ats_solver_add_address_and_request.c | 2 | ||||
-rw-r--r-- | src/ats/test_ats_solver_alternative_after_delete_address.c | 3 | ||||
-rw-r--r-- | src/ats/test_ats_solver_convergence.c | 2 | ||||
-rw-r--r-- | src/ats/test_ats_solver_preferences.c | 3 | ||||
-rw-r--r-- | src/ats/test_ats_solver_request_and_add_address.c | 2 | ||||
-rw-r--r-- | src/ats/test_ats_solver_request_and_delete_address.c | 3 | ||||
-rw-r--r-- | src/include/gnunet_ats_service.h | 6 | ||||
-rw-r--r-- | src/transport/gnunet-service-transport.c | 8 | ||||
-rw-r--r-- | src/transport/gnunet-service-transport_neighbours.c | 22 |
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; |