diff options
Diffstat (limited to 'src')
-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 4cf48d761..d2bf06c17 100644 --- a/src/ats/ats_api_scheduling.c +++ b/src/ats/ats_api_scheduling.c | |||
@@ -90,17 +90,22 @@ struct ATS_Network | |||
90 | struct ATS_Network * prev; | 90 | struct ATS_Network * prev; |
91 | 91 | ||
92 | struct sockaddr *network; | 92 | struct sockaddr *network; |
93 | |||
93 | struct sockaddr *netmask; | 94 | struct sockaddr *netmask; |
95 | |||
94 | socklen_t length; | 96 | socklen_t length; |
95 | }; | 97 | }; |
96 | 98 | ||
99 | |||
97 | /** | 100 | /** |
98 | * Handle for address suggestions | 101 | * Handle for address suggestions |
99 | */ | 102 | */ |
100 | struct GNUNET_ATS_SuggestHandle | 103 | struct GNUNET_ATS_SuggestHandle |
101 | { | 104 | { |
102 | struct GNUNET_ATS_SuggestHandle *prev; | 105 | struct GNUNET_ATS_SuggestHandle *prev; |
106 | |||
103 | struct GNUNET_ATS_SuggestHandle *next; | 107 | struct GNUNET_ATS_SuggestHandle *next; |
108 | |||
104 | struct GNUNET_PeerIdentity id; | 109 | struct GNUNET_PeerIdentity id; |
105 | }; | 110 | }; |
106 | 111 | ||
@@ -1104,15 +1109,11 @@ GNUNET_ATS_reset_backoff (struct GNUNET_ATS_SchedulingHandle *sh, | |||
1104 | * | 1109 | * |
1105 | * @param sh handle | 1110 | * @param sh handle |
1106 | * @param peer identity of the peer we need an address for | 1111 | * @param peer identity of the peer we need an address for |
1107 | * @param cont the continuation to call with the address | ||
1108 | * @param cont_cls the cls for the @a cont | ||
1109 | * @return suggest handle | 1112 | * @return suggest handle |
1110 | */ | 1113 | */ |
1111 | struct GNUNET_ATS_SuggestHandle * | 1114 | struct GNUNET_ATS_SuggestHandle * |
1112 | GNUNET_ATS_suggest_address (struct GNUNET_ATS_SchedulingHandle *sh, | 1115 | GNUNET_ATS_suggest_address (struct GNUNET_ATS_SchedulingHandle *sh, |
1113 | const struct GNUNET_PeerIdentity *peer, | 1116 | const struct GNUNET_PeerIdentity *peer) |
1114 | GNUNET_ATS_AddressSuggestionCallback cont, | ||
1115 | void *cont_cls) | ||
1116 | { | 1117 | { |
1117 | struct PendingMessage *p; | 1118 | struct PendingMessage *p; |
1118 | struct RequestAddressMessage *m; | 1119 | struct RequestAddressMessage *m; |
@@ -1123,17 +1124,20 @@ GNUNET_ATS_suggest_address (struct GNUNET_ATS_SchedulingHandle *sh, | |||
1123 | p = GNUNET_malloc (sizeof (struct PendingMessage) + | 1124 | p = GNUNET_malloc (sizeof (struct PendingMessage) + |
1124 | sizeof (struct RequestAddressMessage)); | 1125 | sizeof (struct RequestAddressMessage)); |
1125 | p->size = sizeof (struct RequestAddressMessage); | 1126 | p->size = sizeof (struct RequestAddressMessage); |
1126 | p->is_init = GNUNET_NO; | ||
1127 | m = (struct RequestAddressMessage *) &p[1]; | 1127 | m = (struct RequestAddressMessage *) &p[1]; |
1128 | m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS); | 1128 | m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS); |
1129 | m->header.size = htons (sizeof (struct RequestAddressMessage)); | 1129 | m->header.size = htons (sizeof (struct RequestAddressMessage)); |
1130 | m->reserved = htonl (0); | 1130 | m->reserved = htonl (0); |
1131 | m->peer = *peer; | 1131 | m->peer = *peer; |
1132 | GNUNET_CONTAINER_DLL_insert_tail (sh->pending_head, sh->pending_tail, p); | 1132 | GNUNET_CONTAINER_DLL_insert_tail (sh->pending_head, |
1133 | sh->pending_tail, | ||
1134 | p); | ||
1133 | do_transmit (sh); | 1135 | do_transmit (sh); |
1134 | s = GNUNET_new (struct GNUNET_ATS_SuggestHandle); | 1136 | s = GNUNET_new (struct GNUNET_ATS_SuggestHandle); |
1135 | s->id = (*peer); | 1137 | s->id = *peer; |
1136 | GNUNET_CONTAINER_DLL_insert_tail (sh->sug_head, sh->sug_tail, s); | 1138 | GNUNET_CONTAINER_DLL_insert_tail (sh->sug_head, |
1139 | sh->sug_tail, | ||
1140 | s); | ||
1137 | return s; | 1141 | return s; |
1138 | } | 1142 | } |
1139 | 1143 | ||
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 cca1e4692..0fb678166 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, | |||
159 | 159 | ||
160 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "ATS statistics: `%s' `%s' %llu\n", | 160 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "ATS statistics: `%s' `%s' %llu\n", |
161 | subsystem,name, value); | 161 | subsystem,name, value); |
162 | GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL); | 162 | GNUNET_ATS_suggest_address (sched_ats, &p.id); |
163 | return GNUNET_OK; | 163 | return GNUNET_OK; |
164 | } | 164 | } |
165 | 165 | ||
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 1f713801f..fd6a5188a 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, | |||
266 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "All addresses added, requesting....\n"); | 266 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "All addresses added, requesting....\n"); |
267 | /* We have 2 addresses, so we can request */ | 267 | /* We have 2 addresses, so we can request */ |
268 | addresses_added = GNUNET_YES; | 268 | addresses_added = GNUNET_YES; |
269 | GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL); | 269 | GNUNET_ATS_suggest_address (sched_ats, &p.id); |
270 | } | 270 | } |
271 | return GNUNET_OK; | 271 | return GNUNET_OK; |
272 | } | 272 | } |
273 | 273 | ||
274 | |||
274 | static void | 275 | static void |
275 | run (void *cls, const struct GNUNET_CONFIGURATION_Handle *mycfg, | 276 | run (void *cls, const struct GNUNET_CONFIGURATION_Handle *mycfg, |
276 | struct GNUNET_TESTING_Peer *peer) | 277 | struct GNUNET_TESTING_Peer *peer) |
diff --git a/src/ats/test_ats_solver_convergence.c b/src/ats/test_ats_solver_convergence.c index aa8704ccf..e33b138ac 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, | |||
219 | "ATS statistics: `%s' `%s' %llu\n", | 219 | "ATS statistics: `%s' `%s' %llu\n", |
220 | subsystem,name, | 220 | subsystem,name, |
221 | (unsigned long long) value); | 221 | (unsigned long long) value); |
222 | GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL); | 222 | GNUNET_ATS_suggest_address (sched_ats, &p.id); |
223 | return GNUNET_OK; | 223 | return GNUNET_OK; |
224 | } | 224 | } |
225 | 225 | ||
diff --git a/src/ats/test_ats_solver_preferences.c b/src/ats/test_ats_solver_preferences.c index 946cb5476..048e19b6b 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, | |||
256 | /* Adding address */ | 256 | /* Adding address */ |
257 | GNUNET_ATS_address_add (sched_ats, &test_hello_address, test_session, | 257 | GNUNET_ATS_address_add (sched_ats, &test_hello_address, test_session, |
258 | test_ats_info, test_ats_count); | 258 | test_ats_info, test_ats_count); |
259 | GNUNET_ATS_suggest_address(sched_ats, &test_hello_address.peer, NULL, NULL); | 259 | GNUNET_ATS_suggest_address(sched_ats, &test_hello_address.peer); |
260 | } | 260 | } |
261 | 261 | ||
262 | |||
262 | int | 263 | int |
263 | main (int argc, char *argv[]) | 264 | main (int argc, char *argv[]) |
264 | { | 265 | { |
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 3c7b8a522..a70d3e4a5 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, | |||
199 | test_hello_address.address_length = test_addr.addr_len; | 199 | test_hello_address.address_length = test_addr.addr_len; |
200 | 200 | ||
201 | /* Request */ | 201 | /* Request */ |
202 | GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL); | 202 | GNUNET_ATS_suggest_address (sched_ats, &p.id); |
203 | 203 | ||
204 | 204 | ||
205 | /* Adding address */ | 205 | /* 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 1e4644b2c..c30aaf833 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, | |||
186 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "ATS statistics: `%s' `%s' %llu\n", | 186 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "ATS statistics: `%s' `%s' %llu\n", |
187 | subsystem,name, value); | 187 | subsystem,name, value); |
188 | if (GNUNET_NO == address_deleted) | 188 | if (GNUNET_NO == address_deleted) |
189 | GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL); | 189 | GNUNET_ATS_suggest_address (sched_ats, &p.id); |
190 | return GNUNET_OK; | 190 | return GNUNET_OK; |
191 | } | 191 | } |
192 | 192 | ||
193 | |||
193 | static void | 194 | static void |
194 | run (void *cls, const struct GNUNET_CONFIGURATION_Handle *mycfg, | 195 | run (void *cls, const struct GNUNET_CONFIGURATION_Handle *mycfg, |
195 | struct GNUNET_TESTING_Peer *peer) | 196 | struct GNUNET_TESTING_Peer *peer) |
diff --git a/src/include/gnunet_ats_service.h b/src/include/gnunet_ats_service.h index 8b1aaf5c7..7be2e4758 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, | |||
386 | * | 386 | * |
387 | * @param sh handle | 387 | * @param sh handle |
388 | * @param peer identity of the peer we need an address for | 388 | * @param peer identity of the peer we need an address for |
389 | * @param cont the continuation to indicate success to call with the address | ||
390 | * @param cont_cls the closure for the @a cont | ||
391 | * @return suggestion handle | 389 | * @return suggestion handle |
392 | */ | 390 | */ |
393 | struct GNUNET_ATS_SuggestHandle * | 391 | struct GNUNET_ATS_SuggestHandle * |
394 | GNUNET_ATS_suggest_address (struct GNUNET_ATS_SchedulingHandle *sh, | 392 | GNUNET_ATS_suggest_address (struct GNUNET_ATS_SchedulingHandle *sh, |
395 | const struct GNUNET_PeerIdentity *peer, | 393 | const struct GNUNET_PeerIdentity *peer); |
396 | GNUNET_ATS_AddressSuggestionCallback cont, | ||
397 | void *cont_cls); | ||
398 | 394 | ||
399 | 395 | ||
400 | /** | 396 | /** |
diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c index cd131ae39..03fbc95db 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, | |||
928 | return; | 928 | return; |
929 | } | 929 | } |
930 | 930 | ||
931 | GST_neighbours_switch_to_address (&address->peer, address, session, ats, | 931 | GST_neighbours_switch_to_address (&address->peer, |
932 | ats_count, bandwidth_in, bandwidth_out); | 932 | address, |
933 | session, | ||
934 | ats, ats_count, | ||
935 | bandwidth_in, bandwidth_out); | ||
933 | } | 936 | } |
934 | 937 | ||
938 | |||
935 | /** | 939 | /** |
936 | * Function called to notify transport users that another | 940 | * Function called to notify transport users that another |
937 | * peer connected to us. | 941 | * peer connected to us. |
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c index b4db4c2cb..9f2f210fb 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) | |||
2143 | return n; | 2143 | return n; |
2144 | } | 2144 | } |
2145 | 2145 | ||
2146 | /* We received a address suggestion after requesting an address in | ||
2147 | * try_connect or after receiving a connect, switch to address | ||
2148 | */ | ||
2149 | static void | ||
2150 | address_suggest_cont (void *cls, | ||
2151 | const struct GNUNET_PeerIdentity *peer, | ||
2152 | const struct GNUNET_HELLO_Address *address, struct Session *session, | ||
2153 | struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out, | ||
2154 | struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in, | ||
2155 | const struct GNUNET_ATS_Information *ats, uint32_t ats_count) | ||
2156 | { | ||
2157 | GST_neighbours_switch_to_address(peer, address, session, ats, ats_count, | ||
2158 | bandwidth_in, bandwidth_out); | ||
2159 | } | ||
2160 | |||
2161 | 2146 | ||
2162 | struct BlacklistCheckSwitchContext | 2147 | struct BlacklistCheckSwitchContext |
2163 | { | 2148 | { |
@@ -2217,8 +2202,7 @@ try_connect_bl_check_cont (void *cls, | |||
2217 | GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT)); | 2202 | GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT)); |
2218 | GNUNET_ATS_reset_backoff (GST_ats, peer); | 2203 | GNUNET_ATS_reset_backoff (GST_ats, peer); |
2219 | n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats, | 2204 | n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats, |
2220 | peer, | 2205 | peer); |
2221 | &address_suggest_cont, n); | ||
2222 | } | 2206 | } |
2223 | 2207 | ||
2224 | 2208 | ||
@@ -2361,7 +2345,7 @@ GST_neighbours_handle_session_syn (const struct GNUNET_MessageHeader *message, | |||
2361 | set_state_and_timeout (n, GNUNET_TRANSPORT_PS_SYN_RECV_ATS, | 2345 | set_state_and_timeout (n, GNUNET_TRANSPORT_PS_SYN_RECV_ATS, |
2362 | GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT)); | 2346 | GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT)); |
2363 | if (NULL == n->suggest_handle) | 2347 | if (NULL == n->suggest_handle) |
2364 | GNUNET_ATS_suggest_address (GST_ats, peer, address_suggest_cont, n); | 2348 | GNUNET_ATS_suggest_address (GST_ats, peer); |
2365 | break; | 2349 | break; |
2366 | case GNUNET_TRANSPORT_PS_INIT_ATS: | 2350 | case GNUNET_TRANSPORT_PS_INIT_ATS: |
2367 | /* SYN message takes priority over us asking ATS for address: | 2351 | /* SYN message takes priority over us asking ATS for address: |
@@ -2415,7 +2399,7 @@ GST_neighbours_handle_session_syn (const struct GNUNET_MessageHeader *message, | |||
2415 | n->ack_state = ACK_SEND_SYN_ACK; | 2399 | n->ack_state = ACK_SEND_SYN_ACK; |
2416 | n->connect_ack_timestamp = ts; | 2400 | n->connect_ack_timestamp = ts; |
2417 | /* Request an address for the peer */ | 2401 | /* Request an address for the peer */ |
2418 | GNUNET_ATS_suggest_address (GST_ats, peer, address_suggest_cont, n); | 2402 | GNUNET_ATS_suggest_address (GST_ats, peer); |
2419 | GNUNET_ATS_reset_backoff (GST_ats, peer); | 2403 | GNUNET_ATS_reset_backoff (GST_ats, peer); |
2420 | set_state (n, GNUNET_TRANSPORT_PS_SYN_RECV_ATS); | 2404 | set_state (n, GNUNET_TRANSPORT_PS_SYN_RECV_ATS); |
2421 | break; | 2405 | break; |