gnunet-svn
[Top][All Lists]
Advanced

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

[gnunet] branch master updated: quic: differentiate receiver


From: gnunet
Subject: [gnunet] branch master updated: quic: differentiate receiver
Date: Wed, 23 Aug 2023 21:59:31 +0200

This is an automated email from the git hooks/post-receive script.

marshall pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new 227bceda7 quic: differentiate receiver
227bceda7 is described below

commit 227bceda73093c37c1a0ab8e340be775b830d40f
Author: marshall <stmr@umich.edu>
AuthorDate: Wed Aug 23 15:59:08 2023 -0400

    quic: differentiate receiver
---
 src/transport/gnunet-communicator-quic.c | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/transport/gnunet-communicator-quic.c 
b/src/transport/gnunet-communicator-quic.c
index 13600a3fb..7c89b10b6 100644
--- a/src/transport/gnunet-communicator-quic.c
+++ b/src/transport/gnunet-communicator-quic.c
@@ -28,7 +28,6 @@
 #define TOKEN_LEN sizeof(uint8_t) * MAX_TOKEN_LEN
 /* Generic, bidirectional, client-initiated quic stream id */
 #define STREAMID_BI 4
-#define PEERID_LEN sizeof(struct GNUNET_PeerIdentity)
 /**
  * How long do we believe our addresses to remain up (before
  * the other peer should revalidate).
@@ -91,6 +90,11 @@ struct PeerAddress
   */
   int id_sent;
 
+  /**
+   * Flag to indicate if we are the initiator of the connection
+  */
+  int is_receiver;
+
   /**
    * Address of the receiver in the human-readable format
    * with the #COMMUNICATOR_ADDRESS_PREFIX.
@@ -239,9 +243,9 @@ recv_from_streams (struct PeerAddress *peer)
       break;
     }
     /**
-     * Initial packet should contain peerid
+     * Initial packet should contain peerid if they are the initiator
     */
-    if (GNUNET_NO == peer->id_rcvd)
+    if (! peer->is_receiver && GNUNET_NO == peer->id_rcvd)
     {
       if (recv_len < sizeof(struct GNUNET_PeerIdentity))
       {
@@ -1015,6 +1019,8 @@ mq_init (void *cls, const struct GNUNET_PeerIdentity 
*peer_id, const
   peer->address = in;
   peer->address_len = in_len;
   peer->target = *peer_id;
+  peer->id_rcvd = GNUNET_YES;
+  peer->is_receiver = GNUNET_YES;
   peer->nt = GNUNET_NT_scanner_get_type (is, in, in_len);
   peer->timeout =
     GNUNET_TIME_relative_to_absolute 
(GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT);
@@ -1256,6 +1262,7 @@ sock_read (void *cls)
       peer->address_len = salen;
       peer->id_rcvd = GNUNET_NO;
       peer->id_sent = GNUNET_NO;
+      peer->is_receiver = GNUNET_NO;
       peer->conn = NULL;
       peer->foreign_addr = sockaddr_to_udpaddr_string (peer->address,
                                                        peer->address_len);
@@ -1403,16 +1410,16 @@ sock_read (void *cls)
     /**
      * Send our PeerIdentity if the connection is established now
     */
-    if (quiche_conn_is_established (peer->conn->conn) && ! peer->id_sent)
+    if (quiche_conn_is_established (peer->conn->conn) && ! peer->id_sent &&
+        peer->is_receiver)
     {
-      char my_pid[PEERID_LEN];
       ssize_t send_len;
 
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                   "handshake established with peer, sending our peer id\n");
-      GNUNET_memcpy (my_pid, &my_identity, PEERID_LEN);
-      send_len = quiche_conn_stream_send (peer->conn->conn, STREAMID_BI, 
my_pid,
-                                          PEERID_LEN,
+      send_len = quiche_conn_stream_send (peer->conn->conn, STREAMID_BI,
+                                          (const uint8_t *) &my_identity,
+                                          sizeof(my_identity),
                                           true);
       if (0 > send_len)
       {

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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