aboutsummaryrefslogtreecommitdiff
path: root/gnu/gnunet/dht/client.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/gnunet/dht/client.scm')
-rw-r--r--gnu/gnunet/dht/client.scm66
1 files changed, 33 insertions, 33 deletions
diff --git a/gnu/gnunet/dht/client.scm b/gnu/gnunet/dht/client.scm
index 95aedc8..12bd9d7 100644
--- a/gnu/gnunet/dht/client.scm
+++ b/gnu/gnunet/dht/client.scm
@@ -103,11 +103,13 @@
103 slice-length slice/read-only make-slice/read-write slice-copy! 103 slice-length slice/read-only make-slice/read-write slice-copy!
104 slice-slice verify-slice-readable) 104 slice-slice verify-slice-readable)
105 (gnu gnunet utils hat-let) 105 (gnu gnunet utils hat-let)
106 (only (gnu gnunet utils cut-syntax)
107 cut-syntax)
106 (only (rnrs base) 108 (only (rnrs base)
107 and >= = quote * / + - define begin ... let* 109 and >= = quote * / + - define begin ... let*
108 quote case else values apply let cond if > 110 quote case else values apply let cond if >
109 <= expt assert exact? integer? lambda for-each 111 <= expt assert exact? integer? lambda for-each
110 not expt min max div-and-mod positive?) 112 not expt min max div-and-mod positive? define-syntax)
111 (only (rnrs control) 113 (only (rnrs control)
112 unless when) 114 unless when)
113 (only (rnrs records syntactic) 115 (only (rnrs records syntactic)
@@ -399,15 +401,16 @@ slices in @var{old} do not impact the new search result."
399 "Create a new @code{/:msg:dht:client:get} message for the query object 401 "Create a new @code{/:msg:dht:client:get} message for the query object
400 @var{query}, with @var{unique-id} as ‘unique id’ and @var{options} as options." 402 @var{query}, with @var{unique-id} as ‘unique id’ and @var{options} as options."
401 (define s (make-slice/read-write (sizeof /:msg:dht:client:get '()))) 403 (define s (make-slice/read-write (sizeof /:msg:dht:client:get '())))
402 (set%! /:msg:dht:client:get '(header size) s (slice-length s)) 404 (define-syntax set%!/get (cut-syntax set%! /:msg:dht:client:get <> s <>))
403 (set%! /:msg:dht:client:get '(header type) s 405 (set%!/get '(header size) (slice-length s))
404 (value->index (symbol-value message-type msg:dht:client:get))) 406 (set%!/get '(header type)
405 (set%! /:msg:dht:client:get '(options) s options) 407 (value->index (symbol-value message-type msg:dht:client:get)))
406 (set%! /:msg:dht:client:get '(desired-replication-level) s 408 (set%!/get '(options) options)
407 (query-desired-replication-level query)) 409 (set%!/get '(desired-replication-level)
408 (set%! /:msg:dht:client:get '(type) s (query-type query)) 410 (query-desired-replication-level query))
411 (set%!/get '(type) (query-type query))
409 (slice-copy! (query-key query) (select /:msg:dht:client:get '(key) s)) 412 (slice-copy! (query-key query) (select /:msg:dht:client:get '(key) s))
410 (set%! /:msg:dht:client:get '(unique-id) s unique-id) 413 (set%!/get '(unique-id) unique-id)
411 s) 414 s)
412 415
413 (define* (construct-client-put insertion #:optional (options 0)) 416 (define* (construct-client-put insertion #:optional (options 0))
@@ -421,17 +424,17 @@ object insertion with @var{options} as options."
421 (+ size/header (slice-length (datum-value datum))))) 424 (+ size/header (slice-length (datum-value datum)))))
422 (define header (slice-slice message 0 size/header)) 425 (define header (slice-slice message 0 size/header))
423 (define rest (slice-slice message size/header)) 426 (define rest (slice-slice message size/header))
424 (set%! /:msg:dht:client:put '(header type) header 427 (define-syntax set%!/put (cut-syntax set%! /:msg:dht:client:put <> header <>))
425 (value->index (symbol-value message-type msg:dht:client:put))) 428 (set%!/put '(header type)
426 (set%! /:msg:dht:client:put '(header size) header size) 429 (value->index (symbol-value message-type msg:dht:client:put)))
427 (set%! /:msg:dht:client:put '(type) header (datum-type datum)) 430 (set%!/put '(header size) size)
428 (set%! /:msg:dht:client:put '(option) header options) 431 (set%!/put '(type) (datum-type datum))
429 (set%! /:msg:dht:client:put '(desired-replication-level) header 432 (set%!/put '(option) options)
430 (insertion-desired-replication-level insertion)) 433 (set%!/put '(desired-replication-level)
431 (set%! /:msg:dht:client:put '(expiration) header (datum-expiration datum)) 434 (insertion-desired-replication-level insertion))
435 (set%!/put '(expiration) (datum-expiration datum))
432 ;; Copy key-data pair to insert into the DHT. 436 ;; Copy key-data pair to insert into the DHT.
433 (slice-copy! (datum-key datum) 437 (slice-copy! (datum-key datum) (select /:msg:dht:client:put '(key) header))
434 (select /:msg:dht:client:put '(key) header))
435 (slice-copy! (datum-value datum) rest) 438 (slice-copy! (datum-value datum) rest)
436 message) 439 message)
437 440
@@ -459,20 +462,17 @@ result object @var{search-result}, with @var{unique-id} as ‘unique id’"
459 (! message (make-slice/read-write size)) 462 (! message (make-slice/read-write size))
460 (! header (slice-slice message 0 size/header)) 463 (! header (slice-slice message 0 size/header))
461 (! rest (slice-slice message size/header))) 464 (! rest (slice-slice message size/header)))
462 (set%! /:msg:dht:client:result '(header type) 465 (define-syntax set%!/result
463 header 466 (cut-syntax set%! /:msg:dht:client:result <> header <>))
464 (value->index 467 (set%!/result '(header type)
465 (symbol-value message-type msg:dht:client:result))) 468 (value->index
466 (set%! /:msg:dht:client:result '(header size) 469 (symbol-value message-type msg:dht:client:result)))
467 header 470 (set%!/result '(header size) size)
468 size) 471 (set%!/result '(type) type)
469 (set%! /:msg:dht:client:result '(type) header type) 472 (set%!/result '(get-path-length) get-path-length)
470 (set%! /:msg:dht:client:result '(get-path-length) 473 (set%!/result '(put-path-length) put-path-length)
471 header get-path-length) 474 (set%!/result '(unique-id) unique-id)
472 (set%! /:msg:dht:client:result '(put-path-length) 475 (set%!/result '(expiration) expiration)
473 header put-path-length)
474 (set%! /:msg:dht:client:result '(unique-id) header unique-id)
475 (set%! /:msg:dht:client:result '(expiration) header expiration)
476 (slice-copy! key (select /:msg:dht:client:result '(key) header)) 476 (slice-copy! key (select /:msg:dht:client:result '(key) header))
477 ;; TODO: get-path and put path! 477 ;; TODO: get-path and put path!
478 (slice-copy! value rest) 478 (slice-copy! value rest)