gnunet-svn
[Top][All Lists]
Advanced

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



reply via email to

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