[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r31861 - in gnunet/src: ats include transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r31861 - in gnunet/src: ats include transport |
Date: |
Thu, 9 Jan 2014 15:09:29 +0100 |
Author: wachs
Date: 2014-01-09 15:09:29 +0100 (Thu, 09 Jan 2014)
New Revision: 31861
Modified:
gnunet/src/ats/ats_api_scheduling.c
gnunet/src/ats/test_ats_api_performance_list_all_addresses.c
gnunet/src/ats/test_ats_api_performance_list_all_addresses_active.c
gnunet/src/ats/test_ats_api_performance_list_peer_addresses.c
gnunet/src/ats/test_ats_api_performance_monitor.c
gnunet/src/ats/test_ats_api_performance_monitor_initial_callback.c
gnunet/src/ats/test_ats_api_scheduling_add_address.c
gnunet/src/ats/test_ats_api_scheduling_add_address_duplicate.c
gnunet/src/ats/test_ats_api_scheduling_add_address_inbound.c
gnunet/src/ats/test_ats_api_scheduling_add_session.c
gnunet/src/ats/test_ats_api_scheduling_destroy_address.c
gnunet/src/ats/test_ats_api_scheduling_destroy_address_twice.c
gnunet/src/ats/test_ats_api_scheduling_destroy_session.c
gnunet/src/ats/test_ats_api_scheduling_init.c
gnunet/src/ats/test_ats_simplistic_pref_aging.c
gnunet/src/ats/test_ats_solver_add_address.c
gnunet/src/ats/test_ats_solver_add_address_and_request.c
gnunet/src/ats/test_ats_solver_alternative_after_delete_address.c
gnunet/src/ats/test_ats_solver_convergence.c
gnunet/src/ats/test_ats_solver_preferences.c
gnunet/src/ats/test_ats_solver_request_and_add_address.c
gnunet/src/ats/test_ats_solver_request_and_delete_address.c
gnunet/src/include/gnunet_ats_service.h
gnunet/src/transport/gnunet-service-transport.c
gnunet/src/transport/gnunet-service-transport_neighbours.c
Log:
extending ATS api suggest callback with peer id
adding suggest continuation
Modified: gnunet/src/ats/ats_api_scheduling.c
===================================================================
--- gnunet/src/ats/ats_api_scheduling.c 2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/ats_api_scheduling.c 2014-01-09 14:09:29 UTC (rev 31861)
@@ -656,7 +656,9 @@
return;
}
- sh->suggest_cb (sh->suggest_cb_cls, &address, s, m->bandwidth_out,
+ sh->suggest_cb (sh->suggest_cb_cls,
+ (const struct GNUNET_PeerIdentity *) &m->peer,
+ &address, s, m->bandwidth_out,
m->bandwidth_in, atsi, ats_count);
GNUNET_CLIENT_receive (sh->client, &process_ats_message, sh,
@@ -1055,16 +1057,23 @@
}
/**
- * We would like to establish a new connection with a peer. ATS
- * should suggest a good address to begin with.
+ * We would like to receive address suggestions for a peer. ATS will
+ * respond with a call to the continuation immediately containing an address or
+ * no address if none is available. ATS can suggest more addresses until we
call
+ * #GNUNET_ATS_suggest_address_cancel.
*
+ *
* @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 continuation
* @return suggest handle
*/
struct GNUNET_ATS_SuggestHandle *
GNUNET_ATS_suggest_address (struct GNUNET_ATS_SchedulingHandle *sh,
- const struct GNUNET_PeerIdentity *peer)
+ const struct GNUNET_PeerIdentity *peer,
+ GNUNET_ATS_AddressSuggestionCallback cont,
+ void *cont_cls)
{
struct PendingMessage *p;
struct RequestAddressMessage *m;
Modified: gnunet/src/ats/test_ats_api_performance_list_all_addresses.c
===================================================================
--- gnunet/src/ats/test_ats_api_performance_list_all_addresses.c
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_performance_list_all_addresses.c
2014-01-09 14:09:29 UTC (rev 31861)
@@ -146,7 +146,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_api_performance_list_all_addresses_active.c
===================================================================
--- gnunet/src/ats/test_ats_api_performance_list_all_addresses_active.c
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_performance_list_all_addresses_active.c
2014-01-09 14:09:29 UTC (rev 31861)
@@ -154,7 +154,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_api_performance_list_peer_addresses.c
===================================================================
--- gnunet/src/ats/test_ats_api_performance_list_peer_addresses.c
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_performance_list_peer_addresses.c
2014-01-09 14:09:29 UTC (rev 31861)
@@ -155,7 +155,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_api_performance_monitor.c
===================================================================
--- gnunet/src/ats/test_ats_api_performance_monitor.c 2014-01-09 13:58:37 UTC
(rev 31860)
+++ gnunet/src/ats/test_ats_api_performance_monitor.c 2014-01-09 14:09:29 UTC
(rev 31861)
@@ -144,12 +144,15 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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 *atsi,
uint32_t ats_count)
+
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Did not expect suggestion
callback!\n");
GNUNET_SCHEDULER_add_now (&end_badly, NULL);
Modified: gnunet/src/ats/test_ats_api_performance_monitor_initial_callback.c
===================================================================
--- gnunet/src/ats/test_ats_api_performance_monitor_initial_callback.c
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_performance_monitor_initial_callback.c
2014-01-09 14:09:29 UTC (rev 31861)
@@ -152,12 +152,15 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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 *atsi,
uint32_t ats_count)
+
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Did not expect suggestion
callback!\n");
GNUNET_SCHEDULER_add_now (&end_badly, NULL);
Modified: gnunet/src/ats/test_ats_api_scheduling_add_address.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_add_address.c 2014-01-09
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_add_address.c 2014-01-09
14:09:29 UTC (rev 31861)
@@ -136,7 +136,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_api_scheduling_add_address_duplicate.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_add_address_duplicate.c
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_add_address_duplicate.c
2014-01-09 14:09:29 UTC (rev 31861)
@@ -147,12 +147,15 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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 *atsi,
uint32_t ats_count)
+
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Did not expect suggestion
callback!\n");
GNUNET_SCHEDULER_add_now (&end_badly, NULL);
Modified: gnunet/src/ats/test_ats_api_scheduling_add_address_inbound.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_add_address_inbound.c
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_add_address_inbound.c
2014-01-09 14:09:29 UTC (rev 31861)
@@ -142,7 +142,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_api_scheduling_add_session.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_add_session.c 2014-01-09
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_add_session.c 2014-01-09
14:09:29 UTC (rev 31861)
@@ -149,7 +149,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_api_scheduling_destroy_address.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_destroy_address.c 2014-01-09
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_destroy_address.c 2014-01-09
14:09:29 UTC (rev 31861)
@@ -147,7 +147,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_api_scheduling_destroy_address_twice.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_destroy_address_twice.c
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_destroy_address_twice.c
2014-01-09 14:09:29 UTC (rev 31861)
@@ -149,7 +149,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_api_scheduling_destroy_session.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_destroy_session.c 2014-01-09
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_destroy_session.c 2014-01-09
14:09:29 UTC (rev 31861)
@@ -153,7 +153,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_api_scheduling_init.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_init.c 2014-01-09 13:58:37 UTC
(rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_init.c 2014-01-09 14:09:29 UTC
(rev 31861)
@@ -116,7 +116,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_simplistic_pref_aging.c
===================================================================
--- gnunet/src/ats/test_ats_simplistic_pref_aging.c 2014-01-09 13:58:37 UTC
(rev 31860)
+++ gnunet/src/ats/test_ats_simplistic_pref_aging.c 2014-01-09 14:09:29 UTC
(rev 31861)
@@ -144,7 +144,9 @@
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_solver_add_address.c
===================================================================
--- gnunet/src/ats/test_ats_solver_add_address.c 2014-01-09 13:58:37 UTC
(rev 31860)
+++ gnunet/src/ats/test_ats_solver_add_address.c 2014-01-09 14:09:29 UTC
(rev 31861)
@@ -129,7 +129,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_solver_add_address_and_request.c
===================================================================
--- gnunet/src/ats/test_ats_solver_add_address_and_request.c 2014-01-09
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_solver_add_address_and_request.c 2014-01-09
14:09:29 UTC (rev 31861)
@@ -128,7 +128,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
@@ -157,7 +159,7 @@
GNUNET_log (GNUNET_ERROR_TYPE_INFO, "ATS statistics: `%s' `%s' %llu\n",
subsystem,name, value);
- GNUNET_ATS_suggest_address (sched_ats, &p.id);
+ GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
return GNUNET_OK;
}
Modified: gnunet/src/ats/test_ats_solver_alternative_after_delete_address.c
===================================================================
--- gnunet/src/ats/test_ats_solver_alternative_after_delete_address.c
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_solver_alternative_after_delete_address.c
2014-01-09 14:09:29 UTC (rev 31861)
@@ -167,7 +167,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
@@ -288,7 +290,7 @@
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);
+ GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
}
return GNUNET_OK;
}
Modified: gnunet/src/ats/test_ats_solver_convergence.c
===================================================================
--- gnunet/src/ats/test_ats_solver_convergence.c 2014-01-09 13:58:37 UTC
(rev 31860)
+++ gnunet/src/ats/test_ats_solver_convergence.c 2014-01-09 14:09:29 UTC
(rev 31861)
@@ -152,7 +152,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
Modified: gnunet/src/ats/test_ats_solver_preferences.c
===================================================================
--- gnunet/src/ats/test_ats_solver_preferences.c 2014-01-09 13:58:37 UTC
(rev 31860)
+++ gnunet/src/ats/test_ats_solver_preferences.c 2014-01-09 14:09:29 UTC
(rev 31861)
@@ -150,10 +150,14 @@
}
static void
-address_suggest_cb (void *cls, 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 *atsi, uint32_t ats_count)
+address_suggest_cb (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 *atsi,
+ uint32_t ats_count)
{
int c;
double pref_val;
@@ -249,7 +253,7 @@
/* 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);
+ GNUNET_ATS_suggest_address(sched_ats, &test_hello_address.peer, NULL, NULL);
}
int
Modified: gnunet/src/ats/test_ats_solver_request_and_add_address.c
===================================================================
--- gnunet/src/ats/test_ats_solver_request_and_add_address.c 2014-01-09
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_solver_request_and_add_address.c 2014-01-09
14:09:29 UTC (rev 31861)
@@ -128,7 +128,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
@@ -199,7 +201,7 @@
test_hello_address.address_length = test_addr.addr_len;
/* Request */
- GNUNET_ATS_suggest_address (sched_ats, &p.id);
+ GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
/* Adding address */
Modified: gnunet/src/ats/test_ats_solver_request_and_delete_address.c
===================================================================
--- gnunet/src/ats/test_ats_solver_request_and_delete_address.c 2014-01-09
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_solver_request_and_delete_address.c 2014-01-09
14:09:29 UTC (rev 31861)
@@ -131,7 +131,9 @@
}
static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (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,
@@ -184,7 +186,7 @@
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);
+ GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
return GNUNET_OK;
}
Modified: gnunet/src/include/gnunet_ats_service.h
===================================================================
--- gnunet/src/include/gnunet_ats_service.h 2014-01-09 13:58:37 UTC (rev
31860)
+++ gnunet/src/include/gnunet_ats_service.h 2014-01-09 14:09:29 UTC (rev
31861)
@@ -543,6 +543,11 @@
* Signature of a function called by ATS with the current bandwidth
* and address preferences as determined by ATS.
*
+ * If an address is available immediately the address will be included. If no
+ * address can be suggested, address, session, bandwidth and ATS information
will
+ * be NULL/0. ATS will suggest an address as soon as it can provide such an
+ * address
+ *
* @param cls closure
* @param address suggested address (including peer identity of the peer)
* @param session session to use
@@ -553,11 +558,13 @@
*/
typedef void
(*GNUNET_ATS_AddressSuggestionCallback) (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);
+
/**
* Initialize the ATS subsystem.
*
@@ -596,11 +603,15 @@
*
* @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 cls for the continuation
* @return suggestion handle
*/
struct GNUNET_ATS_SuggestHandle *
GNUNET_ATS_suggest_address (struct GNUNET_ATS_SchedulingHandle *sh,
- const struct GNUNET_PeerIdentity *peer);
+ const struct GNUNET_PeerIdentity *peer,
+ GNUNET_ATS_AddressSuggestionCallback cont,
+ void *cont_cls);
/**
Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c 2014-01-09 13:58:37 UTC
(rev 31860)
+++ gnunet/src/transport/gnunet-service-transport.c 2014-01-09 14:09:29 UTC
(rev 31861)
@@ -754,6 +754,7 @@
*/
static void
ats_request_address_change (void *cls,
+ const struct GNUNET_PeerIdentity *peer,
const struct GNUNET_HELLO_Address *address,
struct Session *session,
struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
@@ -773,6 +774,7 @@
GST_neighbours_force_disconnect (&address->peer);
return;
}
+
GST_neighbours_switch_to_address (&address->peer, address, session, ats,
ats_count, bandwidth_in,
bandwidth_out);
Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c 2014-01-09
13:58:37 UTC (rev 31860)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c 2014-01-09
14:09:29 UTC (rev 31861)
@@ -1742,6 +1742,18 @@
}
+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)
+{
+
+}
+
+
/**
* Try to create a connection to the given target (eventually).
*
@@ -1814,7 +1826,7 @@
set_state_and_timeout (n, GNUNET_TRANSPORT_INIT_ATS,
GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT));
GNUNET_ATS_reset_backoff (GST_ats, target);
- n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats, target);
+ n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats, target,
&address_suggest_cont, n);
}
@@ -1923,7 +1935,7 @@
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Suggesting address for peer %s to ATS\n",
GNUNET_i2s (peer));
- n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats, peer);
+ n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats, peer,
&address_suggest_cont, n);
break;
case GNUNET_TRANSPORT_CONNECT_RECV_ATS:
/* waiting on ATS suggestion, don't care about blacklist */
@@ -2214,7 +2226,6 @@
n = setup_neighbour (peer);
set_state (n, GNUNET_TRANSPORT_CONNECT_RECV_ATS);
GNUNET_ATS_reset_backoff (GST_ats, peer);
- n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats, peer);
break;
case GNUNET_TRANSPORT_DISCONNECT_FINISHED:
/* should not be possible */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r31861 - in gnunet/src: ats include transport,
gnunet <=