diff options
Diffstat (limited to 'gnu/gnunet/dht/client.scm')
-rw-r--r-- | gnu/gnunet/dht/client.scm | 66 |
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) |