gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [gnunet] branch master updated: do notify client about dest


From: gnunet
Subject: [GNUnet-SVN] [gnunet] branch master updated: do notify client about destroyed channel on MQ error
Date: Mon, 13 Aug 2018 17:58:12 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new b8da8b39b do notify client about destroyed channel on MQ error
b8da8b39b is described below

commit b8da8b39b97eb830a7c03c79e5e1d8508026987c
Author: Christian Grothoff <address@hidden>
AuthorDate: Mon Aug 13 17:58:10 2018 +0200

    do notify client about destroyed channel on MQ error
---
 src/cadet/cadet_api.c                  |  3 +++
 src/cadet/gnunet-service-cadet_hello.c |  7 ++-----
 src/hostlist/hostlist.conf             |  2 ++
 src/rps/gnunet-service-rps.c           | 22 +++++++++++++++++-----
 src/rps/test_rps.conf                  |  1 +
 5 files changed, 25 insertions(+), 10 deletions(-)

diff --git a/src/cadet/cadet_api.c b/src/cadet/cadet_api.c
index e2ca461a5..23ea46e59 100644
--- a/src/cadet/cadet_api.c
+++ b/src/cadet/cadet_api.c
@@ -549,6 +549,9 @@ cadet_mq_error_handler (void *cls,
   else
   {
     GNUNET_break (0);
+    if (NULL != ch->disconnects)
+      ch->disconnects (ch->ctx,
+                      ch);
     GNUNET_CADET_channel_destroy (ch);
   }
 }
diff --git a/src/cadet/gnunet-service-cadet_hello.c 
b/src/cadet/gnunet-service-cadet_hello.c
index 61686e5da..0061bddc2 100644
--- a/src/cadet/gnunet-service-cadet_hello.c
+++ b/src/cadet/gnunet-service-cadet_hello.c
@@ -17,13 +17,10 @@
 */
 /**
  * @file cadet/gnunet-service-cadet_hello.c
- * @brief spread knowledge about how to contact other peers from PEERINFO
+ * @brief spread knowledge about how to contact us (get HELLO from peerinfo),
+ *         and remember HELLOs of other peers we have an interest in
  * @author Bartlomiej Polot
  * @author Christian Grothoff
- *
- * TODO:
- * - is most of this necessary/helpful?
- * - should we not simply restrict this to OUR hello?
  */
 #include "platform.h"
 #include "gnunet_util_lib.h"
diff --git a/src/hostlist/hostlist.conf b/src/hostlist/hostlist.conf
index 59cc351cc..32e5d8320 100644
--- a/src/hostlist/hostlist.conf
+++ b/src/hostlist/hostlist.conf
@@ -41,3 +41,5 @@ SERVERS = http://v10.gnunet.org/hostlist 
https://gnunet.io/hostlist
 # Valid values: HTTP, HTTP_1_0, SOCKS4, SOCKS5, SOCKS4A, SOCKS5_HOSTNAME
 # Default: HTTP
 # PROXY_TYPE = HTTP
+
+
diff --git a/src/rps/gnunet-service-rps.c b/src/rps/gnunet-service-rps.c
index e0301af6b..41769ca24 100644
--- a/src/rps/gnunet-service-rps.c
+++ b/src/rps/gnunet-service-rps.c
@@ -701,7 +701,7 @@ get_channel (const struct GNUNET_PeerIdentity *peer)
                                    &port,
                                    GNUNET_CADET_OPTION_RELIABLE,
                                    NULL, /* WindowSize handler */
-                                   cleanup_destroyed_channel, /* Disconnect 
handler */
+                                   &cleanup_destroyed_channel, /* Disconnect 
handler */
                                    cadet_handlers);
   }
   GNUNET_assert (NULL != peer_ctx->send_channel_ctx);
@@ -860,6 +860,7 @@ check_operation_scheduled (const struct GNUNET_PeerIdentity 
*peer,
   return GNUNET_NO;
 }
 
+
 /**
  * @brief Callback for scheduler to destroy a channel
  *
@@ -869,17 +870,20 @@ static void
 destroy_channel (struct ChannelCtx *channel_ctx)
 {
   struct PeerContext *peer_ctx = channel_ctx->peer_ctx;
-
+  struct GNUNET_CADET_Channel *channel;
+  
   if (NULL != channel_ctx->destruction_task)
   {
     GNUNET_SCHEDULER_cancel (channel_ctx->destruction_task);
     channel_ctx->destruction_task = NULL;
   }
-  GNUNET_CADET_channel_destroy (channel_ctx->channel);
+  channel = channel_ctx->channel;
   channel_ctx->channel = NULL;
+  GNUNET_CADET_channel_destroy (channel);
   remove_channel_ctx (channel_ctx);
 }
 
+
 /**
  * @brief Destroy a cadet channel.
  *
@@ -891,10 +895,12 @@ static void
 destroy_channel_cb (void *cls)
 {
   struct ChannelCtx *channel_ctx = cls;
+
   channel_ctx->destruction_task = NULL;
   destroy_channel (channel_ctx);
 }
 
+
 /**
  * @brief Schedule the destruction of a channel for immediately afterwards.
  *
@@ -908,10 +914,16 @@ destroy_channel_cb (void *cls)
 static void
 schedule_channel_destruction (struct ChannelCtx *channel_ctx)
 {
+  GNUNET_assert (NULL ==
+                channel_ctx->destruction_task);
+  GNUNET_assert (NULL !=
+                channel_ctx->channel);
   channel_ctx->destruction_task =
-    GNUNET_SCHEDULER_add_now (destroy_channel_cb, channel_ctx);
+    GNUNET_SCHEDULER_add_now (&destroy_channel_cb,
+                             channel_ctx);
 }
 
+
 /**
  * @brief Remove peer
  *
@@ -2530,7 +2542,7 @@ cleanup_destroyed_channel (void *cls,
   //  * cleanup everything related to the channel
   //    * memory
   //  * remove peer if necessary
-
+  channel_ctx->channel = NULL;
   if (peer_ctx->recv_channel_ctx == channel_ctx)
   {
     remove_channel_ctx (channel_ctx);
diff --git a/src/rps/test_rps.conf b/src/rps/test_rps.conf
index 02fbf76a4..e751dafbc 100644
--- a/src/rps/test_rps.conf
+++ b/src/rps/test_rps.conf
@@ -1,6 +1,7 @@
 [rps]
 #PREFIX = valgrind --leak-check=full --show-leak-kinds=all 
--log-file=/tmp/rps/valgrind!gnunet-service-rps!%p
 #PREFIX = valgrind --log-file=/tmp/rps/valgrind!gnunet-service-rps!%p
+#PREFIX = valgrind 
 #BINARY = gnunet-service-rps
 UNIXPATH = $GNUNET_TMP/gnunet-service-rps.sock
 HOME = $SERVICEHOME

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

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