+/**
+ * Seed peers.
+ */
+ void
+seed_peers_big (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+ struct RPSPeer *peer = (struct RPSPeer *) cls;
+ unsigned int seed_msg_size;
+ uint32_t num_peers_max;
+ unsigned int amount;
+ unsigned int i;
+
+ seed_msg_size = 8; /* sizeof (struct GNUNET_RPS_CS_SeedMessage) */
+ num_peers_max = (GNUNET_SERVER_MAX_MESSAGE_SIZE - seed_msg_size) /
+ sizeof (struct GNUNET_PeerIdentity);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Peers that fit in one seed msg; %u\n",
+ num_peers_max);
+ amount = num_peers_max + (0.5 * num_peers_max);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Seeding many (%u) peers:\n",
+ amount);
+ struct GNUNET_PeerIdentity ids_to_seed[amount];
+ for (i = 0; i < amount; i++)
+ {
+ ids_to_seed[i] = *peer->peer_id;
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Seeding %u. peer: %s\n",
+ i,
+ GNUNET_i2s (&ids_to_seed[i]));
+ }
+
+ GNUNET_RPS_seed_ids (peer->rps_handle, amount, ids_to_seed);
+}