[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet] 10/32: transport (quic): define max streamid
From: |
gnunet |
Subject: |
[gnunet] 10/32: transport (quic): define max streamid |
Date: |
Tue, 18 Jul 2023 17:15:59 +0200 |
This is an automated email from the git hooks/post-receive script.
marshall pushed a commit to branch master
in repository gnunet.
commit 0e418c4a70781ff26e8c3b163c2fe7775ec7fdb2
Author: marshall <stmr@umich.edu>
AuthorDate: Tue May 30 11:54:48 2023 -0400
transport (quic): define max streamid
---
src/transport/gnunet-communicator-quic.c | 60 +++++++++++++++++++++++++-------
1 file changed, 47 insertions(+), 13 deletions(-)
diff --git a/src/transport/gnunet-communicator-quic.c
b/src/transport/gnunet-communicator-quic.c
index ab7d4ec6f..f779297de 100644
--- a/src/transport/gnunet-communicator-quic.c
+++ b/src/transport/gnunet-communicator-quic.c
@@ -18,6 +18,10 @@
#define DEFAULT_REKEY_MAX_BYTES (1024LLU * 1024 * 1024 * 4LLU)
#define COMMUNICATOR_ADDRESS_PREFIX "quic"
+
+// #define STREAM_ID_MAX (UINT64_MAX - (0b11 << 62))
+#define STREAM_ID_MAX UINT64_MAX - 0xC000000000000000
+
static const struct GNUNET_CONFIGURATION_Handle *cfg;
static struct GNUNET_TIME_Relative rekey_interval;
/**
@@ -48,6 +52,30 @@ static int have_v6_socket;
static uint16_t my_port;
static unsigned long long rekey_max_bytes;
+/**
+ * @param stream_type ...
+ * Generate a unique stream ID with indicated stream type
+ * quiche library has QUICHE_MAX_CONN_ID_LEN = 20?
+*/
+uint64_t gen_streamid()
+{
+ uint64_t sid;
+ sid = GNUNET_CRYPTO_random_u64(GNUNET_CRYPTO_QUALITY_STRONG, STREAM_ID_MAX);
+ /**
+ * Ensure each peer does NOT reuse one of their own stream ID
+ */
+
+ /**
+ * Modify LSB to represent stream type:
+ * 0x00: client-initiated, bidirectional
+ * 0x01: server-initiated, bidirectional
+ * 0x02: client-initiated, unidirectional
+ * 0x03: server-initiated, unidirectional
+ */
+
+ return sid;
+}
+
/**
* Shutdown the UNIX communicator.
*
@@ -227,24 +255,25 @@ sock_read (void *cls)
char buf[UINT16_MAX];
ssize_t rcvd;
(void) cls;
- // read_task = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
- // udp_sock,
- // &sock_read,
- // NULL);
+ read_task = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
+ udp_sock,
+ &sock_read,
+ NULL);
rcvd = GNUNET_NETWORK_socket_recvfrom (udp_sock,
buf,
sizeof(buf),
(struct sockaddr *) &sa,
&salen);
+
+ // ssize_t quic_rcvd = quiche_conn_recv(conn, buf, rcvd, &recv_info)
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Read %lu bytes\n", rcvd);
- // if (-1 == rcvd)
- // {
- // GNUNET_log_strerror (GNUNET_ERROR_TYPE_DEBUG, "recv");
- // return;
- // }
- // GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- // "Read %lu bytes\n", rcvd);
+
+ if (-1 == rcvd)
+ {
+ GNUNET_log_strerror (GNUNET_ERROR_TYPE_DEBUG, "recv");
+ return;
+ }
// if (rcvd > sizeof(struct UDPRekey))
// {
@@ -578,7 +607,7 @@ run (void *cls,
udp_sock,
&sock_read,
NULL);
-
+
// if (NULL == ch)
// {
// GNUNET_break (0);
@@ -592,7 +621,7 @@ run (void *cls,
GNUNET_SCHEDULER_shutdown ();
return;
}
-
+
/* start broadcasting */
// if (GNUNET_YES !=
// GNUNET_CONFIGURATION_get_value_yesno (cfg,
@@ -606,6 +635,11 @@ run (void *cls,
int
main(int argc, char *const *argv)
{
+ /**
+ * Setup QUICHE configuration
+ */
+ quiche_config *quiche_conf = quiche_config_new(QUICHE_PROTOCOL_VERSION);
+
static const struct GNUNET_GETOPT_CommandLineOption options[] = {
GNUNET_GETOPT_OPTION_END
};
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [gnunet] branch master updated (7e08ec566 -> deb73d21b), gnunet, 2023/07/18
- [gnunet] 07/32: transport (quic): Makefile.am add necessary linker flags, gnunet, 2023/07/18
- [gnunet] 03/32: transport (quic): add include for quiche.h, gnunet, 2023/07/18
- [gnunet] 02/32: configure: remove remnants from old libunistring checks, gnunet, 2023/07/18
- [gnunet] 08/32: transport (quic): handle reading data from socket, gnunet, 2023/07/18
- [gnunet] 10/32: transport (quic): define max streamid,
gnunet <=
- [gnunet] 04/32: transport (quic): UDP listener skeleton, gnunet, 2023/07/18
- [gnunet] 05/32: transport (quic): change configure files/add changes, gnunet, 2023/07/18
- [gnunet] 01/32: transport (QUIC): create starter file and update Makefile, gnunet, 2023/07/18
- [gnunet] 06/32: transport (quic): remove binary, add quic communicator to gitignore, gnunet, 2023/07/18
- [gnunet] 09/32: transport (quic): link quiche w/ quic communicator, gnunet, 2023/07/18
- [gnunet] 12/32: transport (quic): get recv info from incoming data, gnunet, 2023/07/18
- [gnunet] 11/32: transport (quic): conn object implement, gnunet, 2023/07/18
- [gnunet] 14/32: transport (quic): more logic for reading stream, gnunet, 2023/07/18
- [gnunet] 15/32: transport (quic): mint_token for generating tokens, gnunet, 2023/07/18
- [gnunet] 13/32: transport (quic): establish connection, gnunet, 2023/07/18