[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r37192 - gnunet/src/rps
From: |
gnunet |
Subject: |
[GNUnet-SVN] r37192 - gnunet/src/rps |
Date: |
Sun, 22 May 2016 09:12:54 +0200 |
Author: ch3
Date: 2016-05-22 09:12:53 +0200 (Sun, 22 May 2016)
New Revision: 37192
Modified:
gnunet/src/rps/gnunet-service-rps.c
Log:
-rps: only insert online peers in the view
Modified: gnunet/src/rps/gnunet-service-rps.c
===================================================================
--- gnunet/src/rps/gnunet-service-rps.c 2016-05-22 07:12:51 UTC (rev 37191)
+++ gnunet/src/rps/gnunet-service-rps.c 2016-05-22 07:12:53 UTC (rev 37192)
@@ -437,6 +437,43 @@
/**
+ * Insert PeerID in #view
+ *
+ * Called once we know a peer is live.
+ * Implements #PeerOp
+ *
+ * @return GNUNET_OK if peer was actually inserted
+ * GNUNET_NO if peer was not inserted
+ */
+static void
+insert_in_view_op (void *cls,
+ const struct GNUNET_PeerIdentity *peer);
+
+/**
+ * Insert PeerID in #view
+ *
+ * Called once we know a peer is live.
+ *
+ * @return GNUNET_OK if peer was actually inserted
+ * GNUNET_NO if peer was not inserted
+ */
+static int
+insert_in_view (const struct GNUNET_PeerIdentity *peer)
+{
+ int online;
+
+ online = Peers_check_peer_flag (peer, Peers_ONLINE);
+ if ( (GNUNET_NO == online) ||
+ (GNUNET_SYSERR == online) ) /* peer is not even known */
+ {
+ (void) Peers_check_peer_live (peer);
+ (void) Peers_schedule_operation (peer, insert_in_view_op);
+ return GNUNET_NO;
+ }
+ return View_put (peer);
+}
+
+/**
* Put random peer from sampler into the view as history update.
*/
static void
@@ -448,7 +485,7 @@
for (i = 0; i < num_peers; i++)
{
- View_put (&ids[i]);
+ (void) insert_in_view (&ids[i]);
to_file (file_name_view_log,
"+%s\t(hist)",
GNUNET_i2s_full (ids));
@@ -642,11 +679,10 @@
* Implements #PeerOp
*/
static void
-insert_in_view (void *cls,
+insert_in_view_op (void *cls,
const struct GNUNET_PeerIdentity *peer)
{
- GNUNET_assert (GNUNET_YES == Peers_check_peer_flag (peer, Peers_ONLINE));
- View_put (peer);
+ (void) insert_in_view (peer);
}
@@ -687,7 +723,7 @@
if (GNUNET_YES == Peers_check_peer_live (peer))
{
Peers_schedule_operation (peer, insert_in_sampler);
- Peers_schedule_operation (peer, insert_in_view);
+ Peers_schedule_operation (peer, insert_in_view_op);
}
}
@@ -1883,7 +1919,8 @@
CustomPeerMap_size (push_map));
for (i = 0; i < first_border; i++)
{
- View_put (CustomPeerMap_get_peer_by_index (push_map, permut[i]));
+ (void) insert_in_view (CustomPeerMap_get_peer_by_index (push_map,
+ permut[i]));
to_file (file_name_view_log,
"+%s\t(push list)",
GNUNET_i2s_full (&view_array[i]));
@@ -1897,8 +1934,8 @@
CustomPeerMap_size (pull_map));
for (i = first_border; i < second_border; i++)
{
- View_put (CustomPeerMap_get_peer_by_index (pull_map,
- permut[i - first_border]));
+ (void) insert_in_view (CustomPeerMap_get_peer_by_index (pull_map,
+ permut[i - first_border]));
to_file (file_name_view_log,
"+%s\t(pull list)",
GNUNET_i2s_full (&view_array[i]));
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r37192 - gnunet/src/rps,
gnunet <=