gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

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