From: Sree Harsha Totakura Date: Tue, 15 May 2012 14:07:36 +0000 (+0000) Subject: handling replies continuously from server X-Git-Tag: initial-import-from-subversion-38251~13481 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f536ece4ac20ca0b6bb3cb4aa7e075125c322d69;p=oweals%2Fgnunet.git handling replies continuously from server --- diff --git a/src/lockmanager/lockmanager_api.c b/src/lockmanager/lockmanager_api.c index b25904d7b..8e482a730 100644 --- a/src/lockmanager/lockmanager_api.c +++ b/src/lockmanager/lockmanager_api.c @@ -290,6 +290,10 @@ handle_replies (void *cls, handle); return; } + GNUNET_CLIENT_receive (handle->conn, + &handle_replies, + handle, + GNUNET_TIME_UNIT_FOREVER_REL); if (GNUNET_MESSAGE_TYPE_LOCKMANAGER_SUCCESS != ntohs(msg->type)) { GNUNET_break (0); diff --git a/src/lockmanager/test_lockmanager_api.c b/src/lockmanager/test_lockmanager_api.c index a5877af7e..9b6f311e4 100644 --- a/src/lockmanager/test_lockmanager_api.c +++ b/src/lockmanager/test_lockmanager_api.c @@ -38,10 +38,26 @@ #define TIME_REL_SECONDS(min) \ GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, min) + +/** + * Enumeration of testing steps + */ +enum Test + { + TEST_FAIL, + + TEST_INIT, + + LOCK1_ACQUIRE, + + LOCK2_ACQUIRE + }; + + /** * The testing result */ -static int result; +static enum Test result; /** * The process id of the GNUNET ARM process @@ -63,6 +79,11 @@ static struct GNUNET_LOCKMANAGER_Handle *handle; */ static struct GNUNET_LOCKMANAGER_LockingRequest *request; +/** + * The second locking request + */ +static struct GNUNET_LOCKMANAGER_LockingRequest *request2; + /** * Abort task identifier */ @@ -82,7 +103,10 @@ do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_SCHEDULER_cancel (abort_task_id); abort_task_id = GNUNET_SCHEDULER_NO_TASK; } - + if (NULL != request) + GNUNET_LOCKMANAGER_cancel_request (request); + if (NULL != request2) + GNUNET_LOCKMANAGER_cancel_request (request2); GNUNET_LOCKMANAGER_disconnect (handle); if (0 != GNUNET_OS_process_kill (arm_pid, SIGTERM)) { @@ -94,9 +118,6 @@ do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc) if (NULL != config) GNUNET_CONFIGURATION_destroy (config); - - if (GNUNET_SYSERR != result) - result = GNUNET_OK; } @@ -111,7 +132,7 @@ do_abort (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc) { LOG (GNUNET_ERROR_TYPE_DEBUG, "Aborting test...\n"); abort_task_id = GNUNET_SCHEDULER_NO_TASK; - result = GNUNET_SYSERR; + result = TEST_FAIL; do_shutdown (cls, tc); } @@ -136,14 +157,31 @@ status_cb (void *cls, LOG (GNUNET_ERROR_TYPE_DEBUG, "Status change callback called on lock: %d of domain: %s\n", lock, domain_name); - GNUNET_assert (GNUNET_LOCKMANAGER_SUCCESS == status); - GNUNET_assert (NULL != request); - GNUNET_LOCKMANAGER_cancel_request (request); - request = NULL; - - GNUNET_SCHEDULER_add_delayed (TIME_REL_SECONDS (1), - &do_shutdown, - NULL); + switch (result) + { + case LOCK1_ACQUIRE: + GNUNET_assert (GNUNET_LOCKMANAGER_SUCCESS == status); + GNUNET_assert (NULL != request); + //GNUNET_LOCKMANAGER_cancel_request (request); + //request = NULL; + result = LOCK2_ACQUIRE; + request2 = GNUNET_LOCKMANAGER_acquire_lock (handle, + "GNUNET_LOCKMANAGER_TESTING", + 100, + &status_cb, + NULL); + GNUNET_assert (NULL != request2); + break; + case LOCK2_ACQUIRE: + GNUNET_assert (GNUNET_LOCKMANAGER_SUCCESS == status); + GNUNET_assert (NULL != request); + GNUNET_SCHEDULER_add_delayed (TIME_REL_SECONDS (1), + &do_shutdown, + NULL); + break; + default: + GNUNET_break (0); + } } @@ -158,7 +196,7 @@ test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { handle = GNUNET_LOCKMANAGER_connect (config); GNUNET_assert (NULL != handle); - + result = LOCK1_ACQUIRE; request = GNUNET_LOCKMANAGER_acquire_lock (handle, "GNUNET_LOCKMANAGER_TESTING", 99, @@ -231,7 +269,7 @@ int main (int argc, char **argv) ret); return 1; } - if (GNUNET_SYSERR == result) + if (TEST_FAIL == result) { LOG (GNUNET_ERROR_TYPE_WARNING, "test failed\n"); return 1; diff --git a/src/lockmanager/test_lockmanager_api_servercrash.c b/src/lockmanager/test_lockmanager_api_servercrash.c index 769e044e0..71e5f421d 100644 --- a/src/lockmanager/test_lockmanager_api_servercrash.c +++ b/src/lockmanager/test_lockmanager_api_servercrash.c @@ -182,7 +182,6 @@ status_cb (void *cls, LOG (GNUNET_ERROR_TYPE_DEBUG, "Status change callback called on lock: %d of domain: %s\n", lock, domain_name); - GNUNET_assert (GNUNET_LOCKMANAGER_SUCCESS == status); switch (result) { case TEST_INIT: @@ -317,7 +316,7 @@ int main (int argc, char **argv) ret); return 1; } - if (TEST_CLIENT2_LOCK_SUCCESS != result) + if (TEST_CLIENT2_SERVER_CRASH_SUCCESS != result) { LOG (GNUNET_ERROR_TYPE_WARNING, "test failed\n"); return 1;