aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
}