gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r16600 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r16600 - gnunet/src/transport
Date: Tue, 23 Aug 2011 13:01:52 +0200

Author: wachs
Date: 2011-08-23 13:01:52 +0200 (Tue, 23 Aug 2011)
New Revision: 16600

Modified:
   gnunet/src/transport/transport-testing.c
   gnunet/src/transport/transport-testing.h
Log:
improved shutdown


Modified: gnunet/src/transport/transport-testing.c
===================================================================
--- gnunet/src/transport/transport-testing.c    2011-08-22 17:35:24 UTC (rev 
16599)
+++ gnunet/src/transport/transport-testing.c    2011-08-23 11:01:52 UTC (rev 
16600)
@@ -246,6 +246,7 @@
 void
 GNUNET_TRANSPORT_TESTING_stop_peer (struct PeerContext *p)
 {
+  GNUNET_assert (p != NULL);
   if (p->th != NULL)
     GNUNET_TRANSPORT_disconnect (p->th);
 
@@ -257,12 +258,15 @@
     GNUNET_OS_process_close (p->arm_proc);
     p->arm_proc = NULL;
   }
-  GNUNET_CONFIGURATION_destroy (p->cfg);
   if (p->servicehome != NULL)
   {
     GNUNET_DISK_directory_remove (p->servicehome);
     GNUNET_free (p->servicehome);
   }
+
+  if (p->cfg != NULL)
+    GNUNET_CONFIGURATION_destroy (p->cfg);
+
   GNUNET_free (p);
 }
 
@@ -274,8 +278,9 @@
  * @param p2 peer 2
  * @param cb the callback to call
  * @param cb_cls callback cls
+ * @return connect context
  */
-void
+GNUNET_TRANSPORT_TESTING_ConnectRequest
 GNUNET_TRANSPORT_TESTING_connect_peers (struct PeerContext *p1,
                                         struct PeerContext *p2,
                                         GNUNET_TRANSPORT_TESTING_connect_cb cb,
@@ -308,8 +313,36 @@
   GNUNET_TRANSPORT_get_hello (cc->th_p2, &exchange_hello_last, cc);
 
   cc->tct = GNUNET_SCHEDULER_add_now (&try_connect, cc);
+  return cc;
 }
 
+/**
+ * Cancels a peer connect request
+ * before.
+ * @param p1 peer 1
+ * @param p2 peer 2
+ * @param cb the callback to call
+ * @param cb_cls callback cls
+ * @return connect context
+ */
+void
+GNUNET_TRANSPORT_TESTING_connect_peers_cancel 
(GNUNET_TRANSPORT_TESTING_ConnectRequest ccr)
+{
+  struct ConnectingContext *cc = ccr;
+  /* clean up */
+  GNUNET_TRANSPORT_get_hello_cancel (cc->th_p2, &exchange_hello_last, cc);
+  GNUNET_TRANSPORT_get_hello_cancel (cc->th_p1, &exchange_hello, cc);
 
+  if (cc->tct != GNUNET_SCHEDULER_NO_TASK)
+    GNUNET_SCHEDULER_cancel (cc->tct);
 
+  cc->tct = GNUNET_SCHEDULER_NO_TASK;
+
+  GNUNET_TRANSPORT_disconnect (cc->th_p1);
+  GNUNET_TRANSPORT_disconnect (cc->th_p2);
+
+  GNUNET_free (cc);
+}
+
+
 /* end of transport_testing.h */

Modified: gnunet/src/transport/transport-testing.h
===================================================================
--- gnunet/src/transport/transport-testing.h    2011-08-22 17:35:24 UTC (rev 
16599)
+++ gnunet/src/transport/transport-testing.h    2011-08-23 11:01:52 UTC (rev 
16600)
@@ -33,6 +33,7 @@
 #include "gnunet_program_lib.h"
 #include "gnunet_transport_service.h"
 
+#define GNUNET_TRANSPORT_TESTING_ConnectRequest void *
 
 /**
  * Context for a single peer
@@ -102,10 +103,13 @@
  * @param cb the callback to call
  * @param cb_cls callback cls
  */
-void
+GNUNET_TRANSPORT_TESTING_ConnectRequest
 GNUNET_TRANSPORT_TESTING_connect_peers (struct PeerContext *p1,
                                         struct PeerContext *p2,
                                         GNUNET_TRANSPORT_TESTING_connect_cb cb,
                                         void *cls);
 
+void
+GNUNET_TRANSPORT_TESTING_connect_peers_cancel (void *cc);
+
 /* end of transport_testing.h */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]