[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet] 01/02: update udp communicator
From: |
gnunet |
Subject: |
[gnunet] 01/02: update udp communicator |
Date: |
Tue, 31 Dec 2019 04:58:46 +0100 |
This is an automated email from the git hooks/post-receive script.
martin-schanzenbach pushed a commit to branch master
in repository gnunet.
commit 9aa5f80626ef47b1c5f027308abc5dcef0adbb89
Author: Schanzenbach, Martin <address@hidden>
AuthorDate: Tue Dec 31 12:39:14 2019 +0900
update udp communicator
---
src/transport/gnunet-communicator-udp.c | 13 ++++--
src/transport/test_communicator_udp_peer1.conf | 1 +
src/transport/test_communicator_udp_peer2.conf | 1 +
src/transport/transport-testing2.c | 60 +++++++++++++++++++++++---
src/transport/transport_api2_communication.c | 1 +
5 files changed, 68 insertions(+), 8 deletions(-)
diff --git a/src/transport/gnunet-communicator-udp.c
b/src/transport/gnunet-communicator-udp.c
index 6a4fea315..5abf42588 100644
--- a/src/transport/gnunet-communicator-udp.c
+++ b/src/transport/gnunet-communicator-udp.c
@@ -1083,6 +1083,7 @@ pass_plaintext_to_core (struct SenderAddress *sender,
size_t plaintext_len)
{
const struct GNUNET_MessageHeader *hdr = plaintext;
+ const char *pos = plaintext;
while (ntohs (hdr->size) < plaintext_len)
{
@@ -1090,19 +1091,25 @@ pass_plaintext_to_core (struct SenderAddress *sender,
"# bytes given to core",
ntohs (hdr->size),
GNUNET_NO);
- (void)
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Giving %u bytes to TNG\n", ntohs (hdr->size));
+ GNUNET_assert (GNUNET_SYSERR !=
GNUNET_TRANSPORT_communicator_receive (ch,
&sender->target,
hdr,
ADDRESS_VALIDITY_PERIOD,
NULL /* no flow control possible
*/
,
- NULL);
+ NULL));
/* move on to next message, if any */
plaintext_len -= ntohs (hdr->size);
if (plaintext_len < sizeof(*hdr))
break;
- hdr = plaintext + ntohs (hdr->size);
+ pos += ntohs (hdr->size);
+ hdr = (const struct GNUNET_MessageHeader *)pos;
+ //TODO for now..., we do not actually sen >1msg or have a way of telling
+ //if we are done
+ break;
}
GNUNET_STATISTICS_update (stats,
"# bytes padding discarded",
diff --git a/src/transport/test_communicator_udp_peer1.conf
b/src/transport/test_communicator_udp_peer1.conf
index 417e92ab5..1b35d8e8a 100644
--- a/src/transport/test_communicator_udp_peer1.conf
+++ b/src/transport/test_communicator_udp_peer1.conf
@@ -30,3 +30,4 @@ DISABLE_V6 = YES
[communicator-udp]
BINDTO = 60002
DISABLE_V6 = YES
+MAX_QUEUE_LENGTH=5000
diff --git a/src/transport/test_communicator_udp_peer2.conf
b/src/transport/test_communicator_udp_peer2.conf
index a063a545a..0472820aa 100644
--- a/src/transport/test_communicator_udp_peer2.conf
+++ b/src/transport/test_communicator_udp_peer2.conf
@@ -30,3 +30,4 @@ DISABLE_V6 = YES
[communicator-udp]
BINDTO = 60003
DISABLE_V6 = YES
+MAX_QUEUE_LENGTH=5000
diff --git a/src/transport/transport-testing2.c
b/src/transport/transport-testing2.c
index 22a767fce..41d4ab937 100644
--- a/src/transport/transport-testing2.c
+++ b/src/transport/transport-testing2.c
@@ -279,6 +279,54 @@ handle_communicator_available (
}
+/**
+ * Incoming message. Test message is well-formed.
+ *
+ * @param cls the client
+ * @param msg the send message that was sent
+ * @return #GNUNET_OK if message is well-formed
+ */
+static int
+check_communicator_backchannel (void *cls,
+ const struct
+ GNUNET_TRANSPORT_CommunicatorBackchannel *msg)
+{
+ // struct TransportClient *tc = cls;
+
+ // if (CT_COMMUNICATOR != tc->type)
+ // {
+ // GNUNET_break (0);
+ // return GNUNET_SYSERR;
+ // }
+ // GNUNET_MQ_check_boxed_message (msg);
+ return GNUNET_OK;
+}
+
+
+/**
+ * @brief Receive an incoming message.
+ *
+ * Pass the message to the client.
+ *
+ * @param cls Closure - communicator handle
+ * @param msg Message
+ */
+static void
+handle_communicator_backchannel (void *cls,
+ const struct
+ GNUNET_TRANSPORT_CommunicatorBackchannel *
+ bc_msg)
+{
+ struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorHandle *tc_h = cls;
+ struct GNUNET_MessageHeader *msg;
+ msg = (struct GNUNET_MessageHeader *) &bc_msg[1];
+ size_t payload_len = ntohs (msg->size) - sizeof (struct
+ GNUNET_MessageHeader);
+
+ GNUNET_SERVICE_client_continue (tc_h->client);
+}
+
+
/**
* Address of our peer added. Test message is well-formed.
*
@@ -373,6 +421,8 @@ handle_incoming_msg (void *cls,
msg = (struct GNUNET_MessageHeader *) &inc_msg[1];
size_t payload_len = ntohs (msg->size) - sizeof (struct
GNUNET_MessageHeader);
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Incoming message from communicator!\n");
if (NULL != tc_h->incoming_msg_cb)
{
@@ -386,7 +436,7 @@ handle_incoming_msg (void *cls,
LOG (GNUNET_ERROR_TYPE_WARNING,
"Incoming message from communicator but no handler!\n");
}
- if (0 != ntohl (inc_msg->fc_on))
+ if (GNUNET_YES == ntohl (inc_msg->fc_on))
{
/* send ACK when done to communicator for flow control! */
struct GNUNET_MQ_Envelope *env;
@@ -613,10 +663,10 @@ transport_communicator_start (
GNUNET_MESSAGE_TYPE_TRANSPORT_NEW_COMMUNICATOR,
struct
GNUNET_TRANSPORT_CommunicatorAvailableMessage,
tc_h),
- // GNUNET_MQ_hd_var_size (communicator_backchannel,
- // GNUNET_MESSAGE_TYPE_TRANSPORT_COMMUNICATOR_BACKCHANNEL,
- // struct GNUNET_TRANSPORT_CommunicatorBackchannel,
- // NULL),
+ GNUNET_MQ_hd_var_size (communicator_backchannel,
+
GNUNET_MESSAGE_TYPE_TRANSPORT_COMMUNICATOR_BACKCHANNEL,
+ struct GNUNET_TRANSPORT_CommunicatorBackchannel,
+ tc_h),
GNUNET_MQ_hd_var_size (add_address,
GNUNET_MESSAGE_TYPE_TRANSPORT_ADD_ADDRESS,
struct GNUNET_TRANSPORT_AddAddressMessage,
diff --git a/src/transport/transport_api2_communication.c
b/src/transport/transport_api2_communication.c
index 9df9424da..01a2447fa 100644
--- a/src/transport/transport_api2_communication.c
+++ b/src/transport/transport_api2_communication.c
@@ -893,6 +893,7 @@ GNUNET_TRANSPORT_communicator_receive (
// and then have the application fill in the body so we do
// not have to memcpy()
memcpy (&im[1], msg, msize);
+ im->fc_on = htonl (GNUNET_NO);
if (NULL != cb)
{
struct FlowControl *fc;
--
To stop receiving notification emails like this one, please contact
address@hidden.