[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet-scheme] 03/03: fs/network: Define analyse-request-loc-signature.
From: |
gnunet |
Subject: |
[gnunet-scheme] 03/03: fs/network: Define analyse-request-loc-signature. |
Date: |
Wed, 30 Nov 2022 11:50:34 +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 0ea9aa3acd870f7f0e3abda0cb984337e8d557fe
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Wed Nov 30 11:50:00 2022 +0100
fs/network: Define analyse-request-loc-signature.
Counterpart to construct-request-loc-signature.
---
gnu/gnunet/fs/network.scm | 32 ++++++++++++++++++++++++++------
1 file changed, 26 insertions(+), 6 deletions(-)
diff --git a/gnu/gnunet/fs/network.scm b/gnu/gnunet/fs/network.scm
index 981ecac..4b3b01c 100644
--- a/gnu/gnunet/fs/network.scm
+++ b/gnu/gnunet/fs/network.scm
@@ -19,22 +19,25 @@
;; TODO: untested
(define-library (gnu gnunet fs network)
- (export construct-request-loc-signature)
- (import (only (rnrs base) define define-syntax quote)
+ (export construct-request-loc-signature analyse-request-loc-signature)
+ (import (only (rnrs base) define define-syntax quote values)
(only (guile) begin define*)
(only (gnu gnunet utils bv-slice)
make-slice/read-write slice-copy! slice-length )
+ (only (gnu gnunet utils hat-let) let^)
(only (gnu extractor enum) value->index symbol-value)
(only (gnu gnunet message protocols) message-type)
- (only (gnu gnunet fs struct) /:msg:fs:request-loc-signature)
+ (only (gnu gnunet fs struct)
+ /content-hash-key /:msg:fs:request-loc-signature)
(only (gnu gnunet fs uri)
chk-key ;; TODO rename
- chk-query)
+ chk-query
+ make-content-hash-key/share)
(only (gnu gnunet hashcode)
hashcode:512->slice)
(only (gnu gnunet utils cut-syntax) cut-syntax)
(only (gnu gnunet netstruct syntactic)
- set%! sizeof select))
+ set%! sizeof select read%))
(begin
;; GNUNET_SIGNATURE_PURPOSE_PEER_PLACEMENT,
;; (see gnunet-signatures/gnunet_signatures.rst)
@@ -67,4 +70,21 @@ expiring at @var{expiration-time} (TODO type), for
@var{purpose}
(hashcode:512->slice (chk-query content-hash-key))
(select* '(content-hash-key query)))
(set%!* '(file-length) file-length)
- s)))
+ s)
+
+ (define (analyse-request-loc-signature message)
+ "Return the file length, content hash key, expiration time (TODO type)
+and signature purpose corresponding to the
@code{/:msg:fs:request-loc-signature}
+message @var{message}."
+ (let^ ((! file-length
+ (read% /:msg:fs:request-loc-signature '(file-length) message))
+ (! content-hash-key
+ (make-content-hash-key/share
+ (select /:msg:fs:request-loc-signature
+ '(content-hash-key) message)))
+ (! expiration-time
+ (read% /:msg:fs:request-loc-signature
+ '(expiration-time) message))
+ (! purpose
+ (read% /:msg:fs:request-loc-signature '(purpose) message)))
+ (values file-length content-hash-key expiration-time purpose)))))
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.