aboutsummaryrefslogtreecommitdiff
path: root/client.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-12-23 15:28:56 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-12-23 15:28:56 +0100
commitc63e37f1c40d1f67d21c10bc6fe505872cefaf9a (patch)
treeac45c401fef8fcb5d076e55e88975912854f3563 /client.go
parentb5092cfdfb4449fd9888dc58cd809985f2b87f75 (diff)
Experimantal
Diffstat (limited to 'client.go')
-rw-r--r--client.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/client.go b/client.go
index 38d9811..7246663 100644
--- a/client.go
+++ b/client.go
@@ -214,6 +214,7 @@ func (c *Client) Authorize(a *Account, domain []string) error {
if err != nil {
return err
}
+ ns := parseHeader(resp)
switch resp.StatusCode {
case http.StatusCreated:
for _, ch := range r.Challenges {
@@ -231,10 +232,30 @@ func (c *Client) Authorize(a *Account, domain []string) error {
}
}
}
+ for {
+ az, err := c.Status(ns.Location.String())
+ if err != nil {
+ return err
+ }
+ log.Println(az)
+ log.Println(ns.RetryAfter)
+ time.Sleep(ns.RetryAfter)
+ }
}
return err
}
+func (c *Client) Status(url string) (*Authorization, error) {
+ r := &Authorization{}
+ resp, err := http.Get(url)
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+ defer c.replyNonce(resp)
+ return r, json.NewDecoder(resp.Body).Decode(r)
+}
+
////////////////////////////////////////////////////////////////////////
// Register