diff options
author | Maxime Devos <maximedevos@telenet.be> | 2021-10-07 11:06:36 +0200 |
---|---|---|
committer | Maxime Devos <maximedevos@telenet.be> | 2021-10-07 11:06:36 +0200 |
commit | 89e65eb3f6ba1af5b9026c26ac1679a04ca15f59 (patch) | |
tree | 91d1f00749b0e2fbea08332a5a21bc40afa5e1df | |
parent | e6d9e0a8e8546a82d599696991a9837bbaa61cfe (diff) |
examples/web: Display UTF-8 keys and data as text.dht
* examples/web.scm
(try-utf8->string,data->string): New procedures
(process-search-dht): Use data->string for 'key' and 'data'.
-rw-r--r-- | examples/web.scm | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/examples/web.scm b/examples/web.scm index f3fdc60..7311376 100644 --- a/examples/web.scm +++ b/examples/web.scm @@ -126,6 +126,17 @@ (decode/data (assoc-ref parameters "data-encoding") (assoc-ref parameters "data")))) +(define (try-utf8->string bv) ; TODO: less duplication + (catch 'decoding-error + (lambda () (utf8->string bv)) + (lambda _ #false))) + +(define (data->string slice) + (define bv (make-bytevector (slice-length slice))) + (slice-copy! slice (bv-slice/read-write bv)) + (define as-string (try-utf8->string bv)) + (or as-string (object->string bv))) + (define (process-search-dht dht-server parameters) (define what) (define found? (make-condition)) @@ -154,9 +165,9 @@ `((dt "Type: ") (dd ,type) (dt "Key: ") - (dd ,key) + (dd ,(data->string key)) (dt "Data: ") - (dd ,(object->string data)) + (dd ,(data->string data)) (dt "Expiration: ") (dd ,(object->string expiration)) (dt "Get path: ") ; TODO as list |