aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client.go10
-rw-r--r--errors.go23
2 files changed, 8 insertions, 25 deletions
diff --git a/client.go b/client.go
index a83ef1c..756e649 100644
--- a/client.go
+++ b/client.go
@@ -88,18 +88,22 @@ func (c *Client) post(s Signer, v interface{}) error {
return err
}
defer resp.Body.Close()
-
c.parseHeader(resp)
if resp.StatusCode >= http.StatusBadRequest {
- return handleError(resp)
+ var p Problem
+ err = json.NewDecoder(resp.Body).Decode(&p)
+ if err != nil {
+ return err
+ }
+ return p
}
+ // DEBUG
body, err = ioutil.ReadAll(resp.Body)
if err != nil {
return err
}
- // DEBUG
log.Println("RESPONSE", string(body))
return json.Unmarshal(body, v)
//return json.NewDecoder(resp.Body).Decode(v)
diff --git a/errors.go b/errors.go
index 9be62bf..0aaca3e 100644
--- a/errors.go
+++ b/errors.go
@@ -1,12 +1,6 @@
package acme
-import (
- "encoding/json"
- "errors"
- "io/ioutil"
- "log"
- "net/http"
-)
+import "errors"
var (
errBadCSR = errors.New("The CSR is unacceptable (e.g., due to a short key)")
@@ -33,21 +27,6 @@ var urnErrors = map[string]error{
"urn:acme:error:unknownHost": errUnknownHost,
}
-func handleError(r *http.Response) error {
- log.Println("Status:", r.Status)
- defer r.Body.Close()
- body, err := ioutil.ReadAll(r.Body)
- if err != nil {
- return err
- }
- var p Problem
- err = json.Unmarshal(body, &p)
- if err != nil {
- return err
- }
- return p
-}
-
func (p Problem) Error() string {
if err, ok := urnErrors[p.Type]; ok {
return err.Error() + ": " + p.Detail