aboutsummaryrefslogtreecommitdiff
path: root/provider.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-01-20 11:37:12 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-01-20 11:37:12 +0100
commit7bdae1c7e85119bfcade2e90c03dc7b4bb176ef9 (patch)
tree1a68066af2d6e2b37056c699622f934a95ea248a /provider.go
parenta1259adec2840f1a6519fefb21ce9c3c4b1b6656 (diff)
Use ticker
Diffstat (limited to 'provider.go')
-rw-r--r--provider.go17
1 files changed, 12 insertions, 5 deletions
diff --git a/provider.go b/provider.go
index 020dec5..8388a90 100644
--- a/provider.go
+++ b/provider.go
@@ -16,6 +16,7 @@ type Provider struct {
nonces chan string
http.Client
http.Transport
+ poll time.Duration
}
var (
@@ -62,7 +63,10 @@ func (p Provider) Nonce() (string, error) {
// DialProvider fetches directory and initializes nonce
func DialProvider(directory string) (*Provider, error) {
- p := &Provider{nonces: make(chan string, 10)}
+ p := &Provider{
+ nonces: make(chan string, 10),
+ poll: time.Second,
+ }
p.Client = http.Client{
Transport: p,
Timeout: time.Duration(5 * time.Second),
@@ -168,13 +172,16 @@ func (p *Provider) solve(s Signer, ch Challenge) error {
if err != nil {
return err
}
- var done bool
- for !done {
- done, err = p.queryStatus(ns.Location)
+ t := time.NewTicker(p.poll)
+ defer t.Stop()
+ for range t.C {
+ done, err := p.queryStatus(ns.Location)
if err != nil {
return err
}
- time.Sleep(time.Second)
+ if done {
+ break
+ }
}
return nil
}