[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet-scheme] 03/04: cadet: Define procedures for /:msg:cadet:local:ac
From: |
gnunet |
Subject: |
[gnunet-scheme] 03/04: cadet: Define procedures for /:msg:cadet:local:acknowledgement. |
Date: |
Tue, 01 Mar 2022 11:01:25 +0100 |
This is an automated email from the git hooks/post-receive script.
maxime-devos pushed a commit to branch master
in repository gnunet-scheme.
commit a4e991ad2c95f34abec1a793efff1791ae0ca702
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Tue Mar 1 09:58:35 2022 +0000
cadet: Define procedures for /:msg:cadet:local:acknowledgement.
* gnu/gnunet/cadet/client.scm
(construct-local-acknowledgement,analyse-local-acknowledgement):
New procedures.
* gnu/gnunet/cadet/network.scm: Export new procedures.
* tests/cadet.scm
("analyse + construct round-tripes (local-acknowledgement)"):
Test new procedures.
---
gnu/gnunet/cadet/client.scm | 29 +++++++++++++++++++++++++++--
gnu/gnunet/cadet/network.scm | 9 +++++++--
tests/cadet.scm | 3 +++
3 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/gnu/gnunet/cadet/client.scm b/gnu/gnunet/cadet/client.scm
index d467aa4..d14fe66 100644
--- a/gnu/gnunet/cadet/client.scm
+++ b/gnu/gnunet/cadet/client.scm
@@ -33,13 +33,18 @@
(construct-local-channel-destroy
#{ construct-local-channel-destroy}#)
(analyse-local-data #{ analyse-local-data}#)
- (construct-local-data #{ construct-local-data}#)))
+ (construct-local-data #{ construct-local-data}#)
+ (analyse-local-acknowledgement
+ #{ analyse-local-acknowledgement}#)
+ (construct-local-acknowledgement
+ #{ construct-local-acknowledgement}#)))
(import (only (gnu extractor enum)
value->index symbol-value)
(only (gnu gnunet cadet struct)
/:msg:cadet:local:channel:create
/:msg:cadet:local:channel:destroy
- /:msg:cadet:local:data)
+ /:msg:cadet:local:data
+ /:msg:cadet:local:acknowledgement)
(only (gnu gnunet crypto struct)
/peer-identity)
(only (gnu gnunet concurrency lost-and-found)
@@ -252,6 +257,26 @@ in the @code{/:msg:cadet:local:data} message
@var{message}."
(slice-slice message
(sizeof /:msg:cadet:local:data '()))))
+ (define (construct-local-acknowledgement channel-number)
+ "Create a @code{/:msg:cadet:local:acknowledgement} message,
+to inform the client that more data can be sent across the channel
+identified by @var{channel-number}."
+ (define s
+ (make-slice/read-write (sizeof /:msg:cadet:local:acknowledgement '())))
+ (define-syntax set*
+ (cut-syntax set%! /:msg:cadet:local:acknowledgement <> s <>))
+ (set* '(header size) (slice-length s))
+ (set* '(header type)
+ (value->index
+ (symbol-value message-type msg:cadet:local:acknowledgement)))
+ (set* '(client-channel-number) channel-number)
+ s)
+
+ (define (analyse-local-acknowledgement message)
+ "Return the channel number in the @code{/:msg:cadet:local:data}
+message @var{message}."
+ (read% /:msg:cadet:local:acknowledgement '(client-channel-number)
message))
+
(define (stub . foo)
(error "todo"))
(define channel? stub)
diff --git a/gnu/gnunet/cadet/network.scm b/gnu/gnunet/cadet/network.scm
index 31bf849..9e51482 100644
--- a/gnu/gnunet/cadet/network.scm
+++ b/gnu/gnunet/cadet/network.scm
@@ -18,7 +18,8 @@
(define-library (gnu gnunet cadet network)
(export construct-local-channel-create analyse-local-channel-create
construct-local-channel-destroy analyse-local-channel-destroy
- construct-local-data analyse-local-data)
+ construct-local-data analyse-local-data
+ construct-local-acknowledgement analyse-local-acknowledgement)
(import (rename (gnu gnunet cadet client)
(#{ construct-local-channel-create}#
construct-local-channel-create)
@@ -29,4 +30,8 @@
(#{ analyse-local-channel-destroy}#
analyse-local-channel-destroy)
(#{ construct-local-data}# construct-local-data)
- (#{ analyse-local-data}# analyse-local-data))))
+ (#{ analyse-local-data}# analyse-local-data)
+ (#{ construct-local-acknowledgement}#
+ construct-local-acknowledgement)
+ (#{ analyse-local-acknowledgement}#
+ analyse-local-acknowledgement))))
diff --git a/tests/cadet.scm b/tests/cadet.scm
index c0e6b79..d8295f2 100644
--- a/tests/cadet.scm
+++ b/tests/cadet.scm
@@ -151,6 +151,9 @@
(channel-number $channel-number)
(priority-preference $priority-preference)
(data $cadet-data))
+(test-roundtrip "analyse + construct round-tripes (local-acknowledgement)"
+ analyse-local-acknowledgement construct-local-acknowledgement
+ (channel-number $channel-number))
;; header information will be tested elsewhere (TODO)
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.