[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet-scheme] 03/12: bv-slice: Use new bv-slice/read-only bv-slice/wri
From: |
gnunet |
Subject: |
[gnunet-scheme] 03/12: bv-slice: Use new bv-slice/read-only bv-slice/write-only where appropriate. |
Date: |
Mon, 12 Sep 2022 18:49:03 +0200 |
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 ab704f8eb2bc46d553496486f746b622e48a8af7
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Sun Sep 11 18:18:03 2022 +0200
bv-slice: Use new bv-slice/read-only bv-slice/write-only where appropriate.
This indirectly tests the bv-slice and modified code a little,
by restriction the permissions and hence making accidents more
visible. In places where bv-slice/read-write was used in combination
with slice/read-only, this simplifies the code a little.
* examples/web.scm (decode/key,decode/data,process-cadet-chat,data->string)
(parameters->cadet-address): Adjust.
* gnu/gnunet/crypto.scm (hash-slice!,hash-slice): Adjust.
* gnu/gnunet/mq-impl/stream.scm (handl-input!): Adjust.
* gnu/gnunet/util/cmsg.scm (ancillary-vector->bytevector): Adjust.
* tests/bv-slice.scm
("slice to string, read-only", "slice to string, write-only"): Adjust.
---
examples/web.scm | 12 ++++++------
gnu/gnunet/crypto.scm | 5 ++---
gnu/gnunet/mq-impl/stream.scm | 8 ++------
gnu/gnunet/util/cmsg.scm | 2 +-
tests/bv-slice.scm | 4 ++--
5 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/examples/web.scm b/examples/web.scm
index d2e4468..14811f9 100644
--- a/examples/web.scm
+++ b/examples/web.scm
@@ -140,14 +140,14 @@ for success is used."
(define (decode/key encoding data)
(match encoding
("utf-8-text"
- (hash/sha512 (bv-slice/read-write (string->utf8 data))))
+ (hash/sha512 (bv-slice/read-only (string->utf8 data))))
;; TODO other encodings
))
(define (decode/data encoding data)
(match encoding
("utf-8-text"
- (bv-slice/read-write (string->utf8 data))
+ (bv-slice/read-only (string->utf8 data))
;; TODO other encodings
)))
@@ -193,7 +193,7 @@ for success is used."
(set* '(header size) (slice-length s))
(set* '(header type)
(value->index (symbol-value message-type
msg:cadet:command-line-traffic)))
- (slice-copy! (bv-slice/read-write message)
+ (slice-copy! (bv-slice/read-only message)
(slice-slice s (sizeof /:msg:cadet:command-line-traffic '())))
(send-message! mq s)
(pk 'p channel mq))
@@ -205,7 +205,7 @@ for success is used."
(define (data->string slice)
(define bv (make-bytevector (slice-length slice)))
- (slice-copy! slice (bv-slice/read-write bv))
+ (slice-copy! slice (bv-slice/write-only bv))
(define as-string (try-utf8->string bv))
(or as-string (object->string bv)))
@@ -228,8 +228,8 @@ If incorrect, return @code{#false}. TODO more validation."
(define (parameters->cadet-address parameters)
(pk 'p parameters)
(cadet:make-cadet-address
- (bv-slice/read-write (string->eddsa-public-key (assoc-ref parameters
"peer")))
- (hash/sha512 (bv-slice/read-write (string->utf8 (assoc-ref parameters
"port"))))))
+ (bv-slice/read-only (string->eddsa-public-key (assoc-ref parameters
"peer")))
+ (hash/sha512 (bv-slice/read-only (string->utf8 (assoc-ref parameters
"port"))))))
(define (process-search-dht dht-server parameters)
(define search-result)
diff --git a/gnu/gnunet/crypto.scm b/gnu/gnunet/crypto.scm
index c62b753..2a388fc 100644
--- a/gnu/gnunet/crypto.scm
+++ b/gnu/gnunet/crypto.scm
@@ -64,14 +64,13 @@ return a bytevector with the resulting hash."
(define (hash-slice! algorithm slice to)
"Hash the data in the readable bytevector slice @var{slice} and write the
hash to the bytevector slice @var{to}."
- (slice-copy! (bv-slice/read-write (hash-slice/bytevector algorithm
slice))
+ (slice-copy! (bv-slice/read-only (hash-slice/bytevector algorithm slice))
to))
(define (hash-slice algorithm slice)
"Hash the data in the readable bytevector slice @var{slice} and return a
fresh readable bytevector slice with the hash."
- (slice/read-only
- (bv-slice/read-write (hash-slice/bytevector algorithm slice))))
+ (bv-slice/read-only (hash-slice/bytevector algorithm slice)))
(define (hasher! algorithm)
(lambda (slice to)
diff --git a/gnu/gnunet/mq-impl/stream.scm b/gnu/gnunet/mq-impl/stream.scm
index 23129f4..ff22a88 100644
--- a/gnu/gnunet/mq-impl/stream.scm
+++ b/gnu/gnunet/mq-impl/stream.scm
@@ -35,8 +35,7 @@
trigger-condition!)
(only (gnu gnunet utils bv-slice)
slice-bv slice-offset slice-length
- slice-readable? bv-slice/read-write
- slice/read-only)
+ slice-readable? bv-slice/read-only)
(only (gnu gnunet mq envelope)
attempt-irrevocable-sent!)
(only (gnu gnunet utils tokeniser)
@@ -136,10 +135,7 @@ This might or might not be correct. In case of an I/O
error, TODO.
TODO closing message queues."
(let^ ((! tok (make-tokeniser))
(! (handle/message bv offset length)
- (inject-message!
- mq
- (slice/read-only
- (bv-slice/read-write bv offset length))))
+ (inject-message! mq (bv-slice/read-only bv offset length)))
(! (return/overly-small type size)
(values 'input:overly-small type size))
(! (return/premature-eof)
diff --git a/gnu/gnunet/util/cmsg.scm b/gnu/gnunet/util/cmsg.scm
index 38e7257..57613a8 100644
--- a/gnu/gnunet/util/cmsg.scm
+++ b/gnu/gnunet/util/cmsg.scm
@@ -301,7 +301,7 @@ the vector @var{a}."
(bv (make-bytevector size))
;; should not result in &control-data-too-small
(written (write-ancillary-vector->control!
- (bv-slice/read-write bv)
+ (bv-slice/write-only bv)
a)))
(assert (= size written))
bv))
diff --git a/tests/bv-slice.scm b/tests/bv-slice.scm
index edaefbf..e4a7f84 100644
--- a/tests/bv-slice.scm
+++ b/tests/bv-slice.scm
@@ -169,14 +169,14 @@
(test-equal "slice to string, read-only"
"#<slice (CAP_READ): 1 2 3>"
(object->string
- (slice/read-only (bv-slice/read-write #vu8(1 2 3)))))
+ (bv-slice/read-only #vu8(1 2 3))))
;; Make sure the lack of a read capability cannot be circumvented by
;; object->string.
(test-equal "slice to string, write-only"
"#<slice (CAP_WRITE) length: 3>"
(object->string
- (slice/write-only (bv-slice/read-write #vu8(1 2 3)))))
+ (bv-slice/write-only #vu8(1 2 3))))
(test-missing-caps
"source of slice-copy/read-write must be readable"
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [gnunet-scheme] branch master updated (58b0a65 -> c0c1dff), gnunet, 2022/09/12
- [gnunet-scheme] 12/12: tests/distributed-hash-table: Skip a to-be-investigated hanging test., gnunet, 2022/09/12
- [gnunet-scheme] 07/12: doc/bytevector-slices: Document types supported by bytevector slices., gnunet, 2022/09/12
- [gnunet-scheme] 02/12: doc: Document how to construct bytevector slices., gnunet, 2022/09/12
- [gnunet-scheme] 05/12: bv-slice: Add slice-slice to the index., gnunet, 2022/09/12
- [gnunet-scheme] 01/12: bv-slice: Define read-only and write-only variants of bv-slice/read-write., gnunet, 2022/09/12
- [gnunet-scheme] 03/12: bv-slice: Use new bv-slice/read-only bv-slice/write-only where appropriate.,
gnunet <=
- [gnunet-scheme] 06/12: doc/bytevector-slices: Document the predicates., gnunet, 2022/09/12
- [gnunet-scheme] 11/12: Merge branch 'bytevector-slices', gnunet, 2022/09/12
- [gnunet-scheme] 04/12: bv-slice: Test capabilities of bv-slice/..., gnunet, 2022/09/12
- [gnunet-scheme] 08/12: doc/bytevector-slices: Document slice-X-ref and slice-X-set!., gnunet, 2022/09/12
- [gnunet-scheme] 10/12: NEWS: Mention the new bytevector slices documentation., gnunet, 2022/09/12
- [gnunet-scheme] 09/12: doc/bytevector-slices: Document slice-X-ref and slice-X-set! more., gnunet, 2022/09/12