diff options
author | wachs <wachs@140774ce-b5e7-0310-ab8b-a85725594a96> | 2012-12-06 09:09:07 +0000 |
---|---|---|
committer | wachs <wachs@140774ce-b5e7-0310-ab8b-a85725594a96> | 2012-12-06 09:09:07 +0000 |
commit | 721ebe1ff21db63d8a7ed1a43185a7795c26bf96 (patch) | |
tree | 62db0c02f6ad12b20f5f784dd635f5cb175aade6 | |
parent | a54e3b383feb47bd8d7b8cf730bdf634bdd2f94c (diff) |
fix
git-svn-id: https://gnunet.org/svn/gnunet@25281 140774ce-b5e7-0310-ab8b-a85725594a96
-rw-r--r-- | src/ats/ats_api_scheduling.c | 2 | ||||
-rw-r--r-- | src/ats/gnunet-service-ats_addresses.c | 9 | ||||
-rw-r--r-- | src/ats/test_ats_api_scheduling_add_address.c | 97 |
3 files changed, 49 insertions, 59 deletions
diff --git a/src/ats/ats_api_scheduling.c b/src/ats/ats_api_scheduling.c index 6cc9cfa666..1787c94cf1 100644 --- a/src/ats/ats_api_scheduling.c +++ b/src/ats/ats_api_scheduling.c @@ -355,7 +355,7 @@ find_session (struct GNUNET_ATS_SchedulingHandle *sh, uint32_t session_id, { GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "ats-scheduling-api", "Session %p belongs to peer `%s'\n", - sh->session_array[session_id].session, GNUNET_i2s_full ((struct GNUNET_PeerIdentity *)sh->session_array[session_id].session)); + sh->session_array[session_id].session, GNUNET_i2s_full ((struct GNUNET_PeerIdentity *) &sh->session_array[session_id].peer)); /* GNUNET_break (0); sh->reconnect = GNUNET_YES; diff --git a/src/ats/gnunet-service-ats_addresses.c b/src/ats/gnunet-service-ats_addresses.c index 605853b5be..45af6a1e54 100644 --- a/src/ats/gnunet-service-ats_addresses.c +++ b/src/ats/gnunet-service-ats_addresses.c @@ -31,7 +31,9 @@ #include "gnunet-service-ats_performance.h" #include "gnunet-service-ats_scheduling.h" #include "gnunet-service-ats_reservations.h" +#if HAVE_LIBGLPK #include "gnunet-service-ats_addresses_mlp.h" +#endif #include "gnunet-service-ats_addresses_simplistic.h" @@ -723,6 +725,10 @@ void GAS_addresses_request_address_cancel (const struct GNUNET_PeerIdentity *peer) { struct GAS_Addresses_Suggestion_Requests *cur = handle->r_head; + + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Received request: `%s' for peer %s\n", "request_address_cancel", GNUNET_i2s (peer)); + while (NULL != cur) { if (0 == memcmp (peer, &cur->id, sizeof (cur->id))) @@ -736,6 +742,9 @@ GAS_addresses_request_address_cancel (const struct GNUNET_PeerIdentity *peer) "No address requests pending for peer `%s', cannot remove!\n", GNUNET_i2s (peer)); return; } + + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Removed request pending for peer `%s\n", GNUNET_i2s (peer)); GNUNET_CONTAINER_DLL_remove (handle->r_head, handle->r_tail, cur); GNUNET_free (cur); } diff --git a/src/ats/test_ats_api_scheduling_add_address.c b/src/ats/test_ats_api_scheduling_add_address.c index f94884cd0c..77f0c3a7ba 100644 --- a/src/ats/test_ats_api_scheduling_add_address.c +++ b/src/ats/test_ats_api_scheduling_add_address.c @@ -37,11 +37,6 @@ static GNUNET_SCHEDULER_TaskIdentifier die_task; static struct GNUNET_ATS_SchedulingHandle *sched_ats; /** - * Performance handle - */ -static struct GNUNET_ATS_PerformanceHandle *perf_ats; - -/** * Return value */ static int ret; @@ -82,8 +77,6 @@ end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (sched_ats != NULL) GNUNET_ATS_scheduling_done (sched_ats); - if (perf_ats != NULL) - GNUNET_ATS_performance_done (perf_ats); free_test_address (&test_addr); ret = GNUNET_SYSERR; } @@ -98,56 +91,51 @@ end () GNUNET_SCHEDULER_cancel (die_task); die_task = GNUNET_SCHEDULER_NO_TASK; } - GNUNET_ATS_scheduling_done (sched_ats); sched_ats = NULL; - GNUNET_ATS_performance_done (perf_ats); - perf_ats = NULL; free_test_address (&test_addr); - ret = 0; } -void address_callback (void *cls, - const struct - GNUNET_HELLO_Address * - address, - struct - GNUNET_BANDWIDTH_Value32NBO - bandwidth_out, - struct - GNUNET_BANDWIDTH_Value32NBO - bandwidth_in, - const struct - GNUNET_ATS_Information * - ats, uint32_t ats_count) +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) { - static int counter = 0; - if (NULL != address) + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created peer `%s'\n", GNUNET_i2s_full(&address->peer)); + + if (0 != memcmp (&address->peer, &p.id, sizeof (struct GNUNET_PeerIdentity))) { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received callback for peer `%s'\n", - GNUNET_i2s (&address->peer)); - if (0 < counter) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Too many callbacks!\n"); - ret = 1; - } - else if ((0 == memcmp (&address->peer, &p.id, sizeof (struct GNUNET_PeerIdentity))) && - (0 == strcmp (address->transport_name, test_addr.plugin)) && - (address->address_length == test_addr.addr_len) && - (0 == memcmp (address->address, test_addr.plugin, address->address_length))) - { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback for correct address `%s'\n", - GNUNET_i2s (&address->peer)); - ret = 0; - } - counter ++; - return; + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid peer id'\n"); + ret = 1; + } + else if (0 != strcmp (address->transport_name, test_addr.plugin)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid plugin'\n"); + ret = 1; + } + else if (address->address_length != test_addr.addr_len) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address length'\n"); + ret = 1; + } + else if (0 != memcmp (address->address, test_addr.plugin, address->address_length)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address'\n"); + ret = 1; + } + else + { + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback for correct address `%s'\n", + GNUNET_i2s (&address->peer)); + ret = 0; } - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received last callback, shutdown\n"); + GNUNET_ATS_suggest_address_cancel (sched_ats, &p.id); GNUNET_SCHEDULER_add_now (&end, NULL); } - static void run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg, @@ -157,7 +145,7 @@ run (void *cls, die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL); /* Connect to ATS scheduling */ - sched_ats = GNUNET_ATS_scheduling_init (cfg, NULL, NULL); + sched_ats = GNUNET_ATS_scheduling_init (cfg, &address_suggest_cb, NULL); if (sched_ats == NULL) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not connect to ATS scheduling!\n"); @@ -166,16 +154,6 @@ run (void *cls, return; } - /* Connect to ATS performance */ - perf_ats = GNUNET_ATS_performance_init (cfg, NULL, NULL); - if (perf_ats == NULL) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not connect to ATS performance!\n"); - ret = 1; - end (); - return; - } - /* Set up peer */ if (GNUNET_SYSERR == GNUNET_CRYPTO_hash_from_string(PEERID, &p.id.hashPubKey)) { @@ -184,6 +162,9 @@ run (void *cls, end (); return; } + + GNUNET_assert (0 == strcmp (PEERID, GNUNET_i2s_full (&p.id))); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created peer `%s'\n", GNUNET_i2s_full(&p.id)); @@ -195,7 +176,7 @@ run (void *cls, hello_address.address_length = test_addr.addr_len; GNUNET_ATS_address_add (sched_ats, &hello_address, test_addr.session, NULL, 0); - GNUNET_ATS_performance_list_addresses (perf_ats, &p.id, GNUNET_YES, address_callback, NULL); + GNUNET_ATS_suggest_address (sched_ats, &p.id); } |