From: Matthias Wachs Date: Thu, 11 Aug 2011 23:32:53 +0000 (+0000) Subject: version with connecting peer working X-Git-Tag: initial-import-from-subversion-38251~17394 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=96c4f70b09d1413e2fedba83b2dcbeba13c9b1f7;p=oweals%2Fgnunet.git version with connecting peer working --- diff --git a/src/transport/test_transport_testing.c b/src/transport/test_transport_testing.c index c67d1b27e..d9789d980 100644 --- a/src/transport/test_transport_testing.c +++ b/src/transport/test_transport_testing.c @@ -48,7 +48,44 @@ */ #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 30) -static struct PeerContext * p; +GNUNET_SCHEDULER_TaskIdentifier timeout_task; + +static struct PeerContext * p1; +static struct PeerContext * p2; + +static int connected = GNUNET_NO; + +static int ret = 0; + +static void +end () +{ + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n"); + + if (timeout_task != GNUNET_SCHEDULER_NO_TASK) + GNUNET_SCHEDULER_cancel(timeout_task); + + GNUNET_TRANSPORT_TESTING_stop_peer(p1); + GNUNET_TRANSPORT_TESTING_stop_peer(p2); +} + +static void +end_badly () +{ + timeout_task = GNUNET_SCHEDULER_NO_TASK; + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n"); + + GNUNET_TRANSPORT_TESTING_stop_peer(p1); + GNUNET_TRANSPORT_TESTING_stop_peer(p2); + + ret = GNUNET_SYSERR; +} + +static void +testing_connect_cb (struct PeerContext * p1, struct PeerContext * p2, void *cls) +{ + end(); +} static void notify_connect (void *cls, @@ -58,6 +95,10 @@ notify_connect (void *cls, { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer `%s' connected \n", GNUNET_i2s (peer)); + connected++; + + if (connected == 2) + end (); } static void @@ -83,32 +124,43 @@ run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) { + timeout_task = GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_MINUTES, &end_badly, NULL); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Starting peer\n"); - p = GNUNET_TRANSPORT_TESTING_start_peer("test_quota_compliance_tcp_peer1.conf", + p1 = GNUNET_TRANSPORT_TESTING_start_peer("test_transport_api_tcp_peer1.conf", ¬ify_receive, ¬ify_connect, ¬ify_disconnect, - NULL); + p1); - if (p != NULL) - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer was successfully started\n"); - else - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer was not started successfully\n"); - GNUNET_assert (p != NULL); - GNUNET_assert (p->th != NULL); + p2 = GNUNET_TRANSPORT_TESTING_start_peer("test_transport_api_tcp_peer2.conf", + ¬ify_receive, + ¬ify_connect, + ¬ify_disconnect, + p2); - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peer\n"); + if (p1 != NULL) + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer1 was successfully started\n"); + else + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer1 was not started successfully\n"); + GNUNET_assert (p1 != NULL); + GNUNET_assert (p1->th != NULL); - GNUNET_TRANSPORT_TESTING_stop_peer(p); + if (p2 != NULL) + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer2 was successfully started\n"); + else + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer2 was not started successfully\n"); + GNUNET_assert (p2 != NULL); + GNUNET_assert (p2->th != NULL); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Connecting peers\n"); + GNUNET_TRANSPORT_TESTING_connect_peers(p1, p2, NULL, NULL); } int main (int argc, char *argv[]) { - int ret = 0; - GNUNET_log_setup ("test_transport_testing", #if VERBOSE "DEBUG", diff --git a/src/transport/transport-testing.c b/src/transport/transport-testing.c index 910d9a6d8..25e173b4a 100644 --- a/src/transport/transport-testing.c +++ b/src/transport/transport-testing.c @@ -40,9 +40,6 @@ notify_connect (void *cls, const struct GNUNET_TRANSPORT_ATS_Information *ats, uint32_t ats_count) { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer `%s' connected \n", - GNUNET_i2s (peer)); - struct PeerContext * p = cls; if (p == NULL) return; @@ -53,9 +50,6 @@ notify_connect (void *cls, static void notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer) { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer `%s' disconnected \n", - GNUNET_i2s (peer)); - struct PeerContext * p = cls; if (p == NULL) return; @@ -70,8 +64,6 @@ notify_receive (void *cls, const struct GNUNET_TRANSPORT_ATS_Information *ats, uint32_t ats_count) { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Receiving\n"); - struct PeerContext * p = cls; if (p == NULL) return; @@ -97,6 +89,7 @@ exchange_hello_last (void *cls, GNUNET_HELLO_get_id ((const struct GNUNET_HELLO_Message *) message, &me->id)); GNUNET_TRANSPORT_offer_hello (p1->th, message, NULL, NULL); + GNUNET_TRANSPORT_get_hello_cancel (me->th, &exchange_hello_last, cc); } @@ -117,6 +110,7 @@ exchange_hello (void *cls, (int) GNUNET_HELLO_size((const struct GNUNET_HELLO_Message *)message), GNUNET_i2s (&me->id)); GNUNET_TRANSPORT_offer_hello (p2->th, message, NULL, NULL); + GNUNET_TRANSPORT_get_hello_cancel (me->th, &exchange_hello, cc); } static void @@ -134,9 +128,9 @@ try_connect (void *cls, &p1->id); GNUNET_TRANSPORT_try_connect (p1->th, &p2->id); - cc->tct = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, - &try_connect, - cc); +// cc->tct = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, +// &try_connect, +// cc); } struct PeerContext * @@ -157,7 +151,13 @@ GNUNET_TRANSPORT_TESTING_start_peer (const char * cfgname, GNUNET_DISK_directory_remove (p->servicehome); p->arm_proc = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm", "gnunet-service-arm", - "-c", cfgname, NULL); + "-c", cfgname, +#if VERBOSE_PEERS + "-L", "DEBUG", +#else + "-L", "ERROR", +#endif + NULL); p->nc = nc; p->nd = nd; p->rec = rec;