From 5eca512bccdae709eafb0a8ba4288c12451ac389 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 28 Nov 2015 12:52:31 +0100 Subject: Change nonce provider --- client.go | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) (limited to 'client.go') diff --git a/client.go b/client.go index e99bb74..6e83b5a 100644 --- a/client.go +++ b/client.go @@ -6,22 +6,10 @@ import ( "log" "net/http" - jose "github.com/square/go-jose" + "github.com/square/go-jose" ) -type Nonce []string - -var nonce = Nonce([]string{}) - -func (n *Nonce) Parse(r *http.Response) { - nonce := r.Header.Get("Replay-Nonce") - *n = append(*n, nonce) -} - -func (n Nonce) Nonce() (string, error) { - last := n[len(n)-1] - return last, nil -} +var nonces = make(nonce, 100) // buffered channel for nonces func Get(uri string, v interface{}) error { resp, err := http.Get(uri) @@ -29,7 +17,7 @@ func Get(uri string, v interface{}) error { return err } defer resp.Body.Close() - nonce.Parse(resp) + nonces.parse(resp) return json.NewDecoder(resp.Body).Decode(v) } @@ -51,7 +39,7 @@ func Post(uri string, v interface{}) error { func Sign(acc Account, body []byte) (string, error) { signer, err := jose.NewSigner(jose.RS256, acc.PrivKey) - signer.SetNonceSource(nonce) + signer.SetNonceSource(nonces) if err != nil { return "", err } -- cgit v1.2.3