gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r35263 - gnunet/src/rps


From: gnunet
Subject: [GNUnet-SVN] r35263 - gnunet/src/rps
Date: Sun, 15 Feb 2015 18:19:51 +0100

Author: ch3
Date: 2015-02-15 18:19:51 +0100 (Sun, 15 Feb 2015)
New Revision: 35263

Modified:
   gnunet/src/rps/gnunet-service-rps.c
Log:
- changed behaviour on peer disconnect

Modified: gnunet/src/rps/gnunet-service-rps.c
===================================================================
--- gnunet/src/rps/gnunet-service-rps.c 2015-02-15 17:19:48 UTC (rev 35262)
+++ gnunet/src/rps/gnunet-service-rps.c 2015-02-15 17:19:51 UTC (rev 35263)
@@ -1750,9 +1750,17 @@
     if (NULL == peer_ctx) /* It could have been removed by shutdown_task */
       return;
 
-    /* Somwewhat {ab,re}use the iterator function */
-    /* Cast to void is ok, because it's used as void in peer_remove_cb */
-    (void) peer_remove_cb ((void *) channel, peer, peer_ctx);
+    if (channel == peer_ctx->send_channel)
+    { /* Peer probably went down */
+      rem_from_list (&gossip_list, &gossip_list_size, peer);
+      rem_from_list (&pending_pull_reply_list, &pending_pull_reply_list_size, 
peer);
+
+      /* Somwewhat {ab,re}use the iterator function */
+      /* Cast to void is ok, because it's used as void in peer_remove_cb */
+      (void) peer_remove_cb ((void *) channel, peer, peer_ctx);
+    }
+    else
+      peer_ctx->recv_channel = NULL;
   }
 }
 




reply via email to

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