aboutsummaryrefslogtreecommitdiff
path: root/client.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-12-24 13:41:53 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-12-24 13:41:53 +0100
commitc7e20e280579bcabcb7b122ec11c88ccd057c4e2 (patch)
tree03f062250a0e49af68068eccb981984fe93545b7 /client.go
parent4a18ae2b6d3ae3347881fdd7187201a9746acfd7 (diff)
Use ticker and err channel
Diffstat (limited to 'client.go')
-rw-r--r--client.go18
1 files changed, 14 insertions, 4 deletions
diff --git a/client.go b/client.go
index 1c21b7b..8cfc06e 100644
--- a/client.go
+++ b/client.go
@@ -250,13 +250,23 @@ func (c *Client) Authorize(a *Account, domain []string) error {
ns := parseHeader(resp)
done := make(chan bool)
+ errc := make(chan error)
+ ticker := time.NewTicker(time.Second)
+ defer ticker.Stop()
go func() {
- for {
- c.Status(ns.Location.String(), n, done)
- time.Sleep(time.Second)
+ for range ticker.C {
+ err := c.Status(ns.Location.String(), n, done)
+ if err != nil {
+ errc <- err
+ return
+ }
}
}()
- <-done
+ select {
+ case <-done:
+ case err = <-errc:
+ }
+
}
return err
}