Memoize computing tokens
As I'm not sure how expensive this is, but it doesn't need doing for every request.
This commit is contained in:
parent
241a704db1
commit
b9026488ed
1 changed files with 16 additions and 13 deletions
|
|
@ -21,9 +21,12 @@
|
||||||
#:use-module (squee)
|
#:use-module (squee)
|
||||||
#:use-module (gcrypt hash)
|
#:use-module (gcrypt hash)
|
||||||
#:use-module (gcrypt base64)
|
#:use-module (gcrypt base64)
|
||||||
|
#:use-module (guix memoization)
|
||||||
#:export (compute-tokens-for-build-server))
|
#:export (compute-tokens-for-build-server))
|
||||||
|
|
||||||
(define (compute-token secret-key-base build-server-id token-seed)
|
(define compute-token
|
||||||
|
(memoize
|
||||||
|
(lambda (secret-key-base build-server-id token-seed)
|
||||||
(let ((source-string
|
(let ((source-string
|
||||||
(simple-format #f "~A:~A:~A"
|
(simple-format #f "~A:~A:~A"
|
||||||
secret-key-base
|
secret-key-base
|
||||||
|
|
@ -35,7 +38,7 @@
|
||||||
(base64-encode
|
(base64-encode
|
||||||
(bytevector-hash
|
(bytevector-hash
|
||||||
(string->utf8 source-string)
|
(string->utf8 source-string)
|
||||||
(hash-algorithm sha1))))))
|
(hash-algorithm sha1))))))))
|
||||||
|
|
||||||
(define (compute-tokens-for-build-server conn secret-key-base build-server-id)
|
(define (compute-tokens-for-build-server conn secret-key-base build-server-id)
|
||||||
(define query
|
(define query
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue