[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r34975 - gnunet/src/rps
From: |
gnunet |
Subject: |
[GNUnet-SVN] r34975 - gnunet/src/rps |
Date: |
Fri, 23 Jan 2015 12:53:41 +0100 |
Author: ch3
Date: 2015-01-23 12:53:41 +0100 (Fri, 23 Jan 2015)
New Revision: 34975
Modified:
gnunet/src/rps/gnunet-service-rps.c
gnunet/src/rps/rps_api.c
gnunet/src/rps/test_rps_multipeer.c
Log:
taking care of send msg size in the api
Modified: gnunet/src/rps/gnunet-service-rps.c
===================================================================
--- gnunet/src/rps/gnunet-service-rps.c 2015-01-23 01:05:11 UTC (rev 34974)
+++ gnunet/src/rps/gnunet-service-rps.c 2015-01-23 11:53:41 UTC (rev 34975)
@@ -38,8 +38,6 @@
// TODO modify @brief in every file
-// TODO take care that messages are not longer than 64k
-
// TODO check for overflows
// TODO align message structs
Modified: gnunet/src/rps/rps_api.c
===================================================================
--- gnunet/src/rps/rps_api.c 2015-01-23 01:05:11 UTC (rev 34974)
+++ gnunet/src/rps/rps_api.c 2015-01-23 11:53:41 UTC (rev 34975)
@@ -228,11 +228,30 @@
GNUNET_RPS_seed_ids (struct GNUNET_RPS_Handle *h, uint64_t n,
const struct GNUNET_PeerIdentity * ids)
{
+ uint32_t size_needed;
+ uint32_t tmp_num_peers;
struct GNUNET_MQ_Envelope *ev;
struct GNUNET_RPS_CS_SeedMessage *msg;
- // FIXME was not able to find MAX size we are allowed to send
+ size_needed = sizeof (struct GNUNET_RPS_CS_SeedMessage) +
+ n * sizeof (struct GNUNET_PeerIdentity);
+ while (GNUNET_SERVER_MAX_MESSAGE_SIZE < size_needed)
+ {
+ tmp_num_peers = (GNUNET_SERVER_MAX_MESSAGE_SIZE -
+ sizeof (struct GNUNET_RPS_CS_SeedMessage)) /
+ sizeof (struct GNUNET_PeerIdentity);
+ n -= tmp_num_peers;
+ size_needed = sizeof (struct GNUNET_RPS_CS_SeedMessage) +
+ n * sizeof (struct GNUNET_PeerIdentity);
+
+ ev = GNUNET_MQ_msg_extra (msg, tmp_num_peers * sizeof (struct
GNUNET_PeerIdentity),
+ GNUNET_MESSAGE_TYPE_RPS_CS_SEED);
+ msg->num_peers = GNUNET_htonll (tmp_num_peers);
+ memcpy (&msg[1], ids, tmp_num_peers * sizeof (struct GNUNET_PeerIdentity));
+ GNUNET_MQ_send (h->mq, ev);
+ }
+
ev = GNUNET_MQ_msg_extra (msg, n * sizeof (struct GNUNET_PeerIdentity),
GNUNET_MESSAGE_TYPE_RPS_CS_SEED);
msg->num_peers = GNUNET_htonll (n);
Modified: gnunet/src/rps/test_rps_multipeer.c
===================================================================
--- gnunet/src/rps/test_rps_multipeer.c 2015-01-23 01:05:11 UTC (rev 34974)
+++ gnunet/src/rps/test_rps_multipeer.c 2015-01-23 11:53:41 UTC (rev 34975)
@@ -207,6 +207,7 @@
request_peers, peer);
GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_SECONDS, 10),
seed_peers, peer);
+ // TODO test seeding > GNUNET_SERVER_MAX_MESSAGE_SIZE peers
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r34975 - gnunet/src/rps,
gnunet <=