diff options
author | wachs <wachs@140774ce-b5e7-0310-ab8b-a85725594a96> | 2012-12-06 12:32:28 +0000 |
---|---|---|
committer | wachs <wachs@140774ce-b5e7-0310-ab8b-a85725594a96> | 2012-12-06 12:32:28 +0000 |
commit | 3ff34746f2717ce25325d87d7a6ca7179afb0acc (patch) | |
tree | cb0c667e2e3c4d6a3cdf6169f7452537e56c748c /src/ats | |
parent | 020e3080a5ec67b3d298ff126a4223902830ef11 (diff) |
improvements
git-svn-id: https://gnunet.org/svn/gnunet@25291 140774ce-b5e7-0310-ab8b-a85725594a96
Diffstat (limited to 'src/ats')
-rw-r--r-- | src/ats/test_ats_api_scheduling_add_address.c | 27 | ||||
-rw-r--r-- | src/ats/test_ats_api_scheduling_destroy_address.c | 91 | ||||
-rw-r--r-- | src/ats/test_ats_api_scheduling_destroy_session.c | 130 | ||||
-rw-r--r-- | src/ats/test_ats_api_scheduling_update_address.c | 7 |
4 files changed, 121 insertions, 134 deletions
diff --git a/src/ats/test_ats_api_scheduling_add_address.c b/src/ats/test_ats_api_scheduling_add_address.c index a52bda3e71..ce69cad4f1 100644 --- a/src/ats/test_ats_api_scheduling_add_address.c +++ b/src/ats/test_ats_api_scheduling_add_address.c @@ -149,31 +149,6 @@ address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address, const struct GNUNET_ATS_Information *atsi, uint32_t ats_count) { - if (0 != memcmp (&address->peer, &p.id, sizeof (struct GNUNET_PeerIdentity))) - { - 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 - { - - } - if (GNUNET_OK == compare_addresses (address, session, &test_hello_address, test_session)) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback with correct address `%s'\n", @@ -184,7 +159,7 @@ address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address, { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback with invalid address `%s'\n", GNUNET_i2s (&address->peer)); - ret = 0; + ret = 1; } GNUNET_ATS_suggest_address_cancel (sched_ats, &p.id); GNUNET_SCHEDULER_add_now (&end, NULL); diff --git a/src/ats/test_ats_api_scheduling_destroy_address.c b/src/ats/test_ats_api_scheduling_destroy_address.c index 0d139a4f07..f904595a19 100644 --- a/src/ats/test_ats_api_scheduling_destroy_address.c +++ b/src/ats/test_ats_api_scheduling_destroy_address.c @@ -62,6 +62,10 @@ static struct PeerContext p; */ struct GNUNET_HELLO_Address test_hello_address; +/** + * Session + */ +static void *test_session; static void create_test_address (struct Test_Address *dest, char * plugin, void *session, void *addr, size_t addrlen) @@ -86,7 +90,11 @@ static void end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { die_task = GNUNET_SCHEDULER_NO_TASK; - + if (GNUNET_SCHEDULER_NO_TASK != wait_task) + { + GNUNET_SCHEDULER_cancel (wait_task); + wait_task = GNUNET_SCHEDULER_NO_TASK; + } if (sched_ats != NULL) GNUNET_ATS_scheduling_done (sched_ats); free_test_address (&test_addr); @@ -109,6 +117,41 @@ end () sched_ats = NULL; } +static int +compare_addresses (const struct GNUNET_HELLO_Address *address1, void *session1, + const struct GNUNET_HELLO_Address *address2, void *session2) +{ + if (0 != memcmp (&address1->peer, &address2->peer, sizeof (struct GNUNET_PeerIdentity))) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid peer id'\n"); + return GNUNET_SYSERR; + } + if (0 != strcmp (address1->transport_name, address2->transport_name)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid plugin'\n"); + return GNUNET_SYSERR; + } + if (address1->address_length != address2->address_length) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address length'\n"); + return GNUNET_SYSERR; + + } + else if (0 != memcmp (address1->address, address2->address, address2->address_length)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address'\n"); + return GNUNET_SYSERR; + } + if (session1 != session2) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid session1 %p vs session2 %p'\n", + session1, session2); + return GNUNET_SYSERR; + + } + return GNUNET_OK; +} + static void address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address, struct Session *session, @@ -118,46 +161,25 @@ address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address, uint32_t ats_count) { static int stage = 0; - int res = 0; if (0 ==stage) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 0: Received suggestion for peer `%s'\n", GNUNET_i2s(&address->peer)); - if (0 != memcmp (&address->peer, &p.id, sizeof (struct GNUNET_PeerIdentity))) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid peer id'\n"); - res = 1; - } - else if (0 != strcmp (address->transport_name, test_addr.plugin)) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid plugin'\n"); - res = 1; - } - else if (address->address_length != test_addr.addr_len) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address length'\n"); - res = 1; - } - else if (0 != memcmp (address->address, test_addr.plugin, address->address_length)) + GNUNET_ATS_suggest_address_cancel (sched_ats, &p.id); + if (GNUNET_OK == compare_addresses (address, session, &test_hello_address, test_session)) { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address'\n"); - res = 1; + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback with correct address `%s'\n", + GNUNET_i2s (&address->peer)); } else { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback for correct address `%s'\n", - GNUNET_i2s (&address->peer)); - res = 0; - } - GNUNET_ATS_suggest_address_cancel (sched_ats, &p.id); - if (1 == res) - { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback for invalid address `%s'\n", - GNUNET_i2s (&address->peer)); - GNUNET_SCHEDULER_add_now (&end, NULL); - ret = 1; + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback with invalid address `%s'\n", + GNUNET_i2s (&address->peer)); + GNUNET_SCHEDULER_add_now (&end, NULL); + ret = 1; + return; } stage ++; ret = 0; @@ -167,6 +189,7 @@ address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address, GNUNET_ATS_address_destroyed (sched_ats, &test_hello_address, test_addr.session); /* Request address */ GNUNET_ATS_suggest_address (sched_ats, &p.id); + /* Wait for timeout */ wait_task = GNUNET_SCHEDULER_add_delayed (WAIT_TIMEOUT, &end, NULL); return; } @@ -204,14 +227,14 @@ run (void *cls, GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created peer `%s'\n", GNUNET_i2s_full(&p.id)); - create_test_address (&test_addr, "test", NULL, "test", strlen ("test") + 1); - /* Adding address without session */ + test_session = NULL; + create_test_address (&test_addr, "test", test_session, "test", strlen ("test") + 1); test_hello_address.peer = p.id; test_hello_address.transport_name = test_addr.plugin; test_hello_address.address = test_addr.addr; test_hello_address.address_length = test_addr.addr_len; - GNUNET_ATS_address_add (sched_ats, &test_hello_address, test_addr.session, NULL, 0); + GNUNET_ATS_address_add (sched_ats, &test_hello_address, test_session, NULL, 0); /* Request address */ GNUNET_ATS_suggest_address (sched_ats, &p.id); diff --git a/src/ats/test_ats_api_scheduling_destroy_session.c b/src/ats/test_ats_api_scheduling_destroy_session.c index f27dbbc19b..2984c59544 100644 --- a/src/ats/test_ats_api_scheduling_destroy_session.c +++ b/src/ats/test_ats_api_scheduling_destroy_session.c @@ -93,7 +93,11 @@ static void end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { die_task = GNUNET_SCHEDULER_NO_TASK; - + if (wait_task != GNUNET_SCHEDULER_NO_TASK) + { + GNUNET_SCHEDULER_cancel (wait_task); + wait_task = GNUNET_SCHEDULER_NO_TASK; + } if (sched_ats != NULL) GNUNET_ATS_scheduling_done (sched_ats); free_test_address (&test_addr); @@ -116,6 +120,42 @@ end () sched_ats = NULL; } +static int +compare_addresses (const struct GNUNET_HELLO_Address *address1, void *session1, + const struct GNUNET_HELLO_Address *address2, void *session2) +{ + if (0 != memcmp (&address1->peer, &address2->peer, sizeof (struct GNUNET_PeerIdentity))) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid peer id'\n"); + return GNUNET_SYSERR; + } + if (0 != strcmp (address1->transport_name, address2->transport_name)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid plugin'\n"); + return GNUNET_SYSERR; + } + if (address1->address_length != address2->address_length) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address length'\n"); + return GNUNET_SYSERR; + + } + else if (0 != memcmp (address1->address, address2->address, address2->address_length)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address'\n"); + return GNUNET_SYSERR; + } + if (session1 != session2) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid session1 %p vs session2 %p'\n", + session1, session2); + return GNUNET_SYSERR; + + } + return GNUNET_OK; +} + + static void address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address, struct Session *session, @@ -125,51 +165,25 @@ address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address, uint32_t ats_count) { static int stage = 0; - int res = 0; if (0 == stage) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 0: Received suggestion for peer `%s'\n", GNUNET_i2s(&address->peer)); - if (0 != memcmp (&address->peer, &p.id, sizeof (struct GNUNET_PeerIdentity))) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid peer id'\n"); - res = 1; - } - else if (0 != strcmp (address->transport_name, test_addr.plugin)) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid plugin'\n"); - res = 1; - } - else if (address->address_length != test_addr.addr_len) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address length'\n"); - res = 1; - } - else if (0 != memcmp (address->address, test_addr.plugin, address->address_length)) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address'\n"); - res = 1; - } - else if (test_session != &test_addr) + GNUNET_ATS_suggest_address_cancel (sched_ats, &p.id); + if (GNUNET_OK == compare_addresses (address, session, &test_hello_address, test_session)) { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid session'\n"); - res = 1; + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 0: Callback with correct address `%s'\n", + GNUNET_i2s (&address->peer)); } else { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback for correct address `%s'\n", - GNUNET_i2s (&address->peer)); - res = 0; - } - GNUNET_ATS_suggest_address_cancel (sched_ats, &p.id); - if (1 == res) - { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback for invalid address `%s'\n", - GNUNET_i2s (&address->peer)); - GNUNET_SCHEDULER_add_now (&end, NULL); - ret = 1; + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 0: Callback with invalid address `%s'\n", + GNUNET_i2s (&address->peer)); + GNUNET_SCHEDULER_add_now (&end, NULL); + ret = 1; + return; } stage ++; ret = 0; @@ -187,44 +201,20 @@ address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address, GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 1: Received suggestion for peer `%s'\n", GNUNET_i2s(&address->peer)); - if (0 != memcmp (&address->peer, &p.id, sizeof (struct GNUNET_PeerIdentity))) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid peer id'\n"); - res = 1; - } - else if (0 != strcmp (address->transport_name, test_addr.plugin)) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid plugin'\n"); - res = 1; - } - else if (address->address_length != test_addr.addr_len) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address length'\n"); - res = 1; - } - else if (0 != memcmp (address->address, test_addr.plugin, address->address_length)) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address'\n"); - res = 1; - } - else if (session != test_session) + + GNUNET_ATS_suggest_address_cancel (sched_ats, &p.id); + if (GNUNET_OK == compare_addresses (address, session, &test_hello_address, test_session)) { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid session %p != %p'\n", test_session, session); - res = 1; + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 1: Callback with correct address `%s'\n", + GNUNET_i2s (&address->peer)); } else { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback for correct address `%s'\n", - GNUNET_i2s (&address->peer)); - res = 0; - } - GNUNET_ATS_suggest_address_cancel (sched_ats, &p.id); - if (1 == res) - { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback for invalid address `%s'\n", - GNUNET_i2s (&address->peer)); - GNUNET_SCHEDULER_add_now (&end, NULL); - ret = 1; + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 1: Callback with invalid address `%s'\n", + GNUNET_i2s (&address->peer)); + GNUNET_SCHEDULER_add_now (&end, NULL); + ret = 1; + return; } stage ++; ret = 0; diff --git a/src/ats/test_ats_api_scheduling_update_address.c b/src/ats/test_ats_api_scheduling_update_address.c index 184b3afc07..ce2bf40ee5 100644 --- a/src/ats/test_ats_api_scheduling_update_address.c +++ b/src/ats/test_ats_api_scheduling_update_address.c @@ -163,13 +163,13 @@ address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address, } else { - ret = 1; - GNUNET_SCHEDULER_add_now (&end, NULL); + ret = 1; + GNUNET_SCHEDULER_add_now (&end, NULL); + return; } /* Update address */ - /* Request address */ GNUNET_ATS_suggest_address (sched_ats, &p.id); stage ++; @@ -192,7 +192,6 @@ address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address, GNUNET_SCHEDULER_add_now (&end, NULL); } - } static void |