aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client.go6
-rw-r--r--errors.go39
-rw-r--r--messages.go1
3 files changed, 25 insertions, 21 deletions
diff --git a/client.go b/client.go
index 756e649..c67c1c8 100644
--- a/client.go
+++ b/client.go
@@ -96,6 +96,9 @@ func (c *Client) post(s Signer, v interface{}) error {
if err != nil {
return err
}
+ if err, ok := urnErrors[p.Type]; ok {
+ p.Err = err
+ }
return p
}
@@ -157,6 +160,9 @@ func (c *Client) Register(a *Account) (*Registration, error) {
}
c.Location = c.Dir.NewReg
err := c.post(a, r)
+ if err, ok := err.(Problem); ok {
+ log.Println("REGISTER", err.Err, err)
+ }
return r, err
}
diff --git a/errors.go b/errors.go
index 0aaca3e..10053b7 100644
--- a/errors.go
+++ b/errors.go
@@ -3,33 +3,30 @@ package acme
import "errors"
var (
- errBadCSR = errors.New("The CSR is unacceptable (e.g., due to a short key)")
- errBadNonce = errors.New("The client sent an unacceptable anti-replay nonce")
- errConnection = errors.New("The server could not connect to the client for DV")
- errDnssec = errors.New("The server could not validate a DNSSEC signed domain")
- errMalformed = errors.New("The request message was malformed")
- errServerInternal = errors.New("The server experienced an internal error")
- errTLS = errors.New("The server experienced a TLS error during DV")
- errUnauthorized = errors.New("The client lacks sufficient authorization")
- errUnknownHost = errors.New("The server could not resolve a domain name")
+ ErrBadCSR = errors.New("CSR is unacceptable")
+ ErrBadNonce = errors.New("Client sent an unacceptable anti-replay nonce")
+ ErrConnection = errors.New("Server could not connect to the client for DV")
+ ErrDnssec = errors.New("Server could not validate a DNSSEC signed domain")
+ ErrMalformed = errors.New("Request message was malformed")
+ ErrServerInternal = errors.New("Server experienced an internal error")
+ ErrTLS = errors.New("Server experienced a TLS error during DV")
+ ErrUnauthorized = errors.New("Client lacks sufficient authorization")
+ ErrUnknownHost = errors.New("Server could not resolve a domain name")
)
// Errors
var urnErrors = map[string]error{
- "urn:acme:error:badCSR": errBadCSR,
- "urn:acme:error:badNonce": errBadNonce,
- "urn:acme:error:connection": errConnection,
- "urn:acme:error:dnssec": errDnssec,
- "urn:acme:error:malformed": errMalformed,
- "urn:acme:error:serverInternal": errServerInternal,
- "urn:acme:error:tls": errTLS,
- "urn:acme:error:unauthorized": errUnauthorized,
- "urn:acme:error:unknownHost": errUnknownHost,
+ "urn:acme:error:badCSR": ErrBadCSR,
+ "urn:acme:error:badNonce": ErrBadNonce,
+ "urn:acme:error:connection": ErrConnection,
+ "urn:acme:error:dnssec": ErrDnssec,
+ "urn:acme:error:malformed": ErrMalformed,
+ "urn:acme:error:serverInternal": ErrServerInternal,
+ "urn:acme:error:tls": ErrTLS,
+ "urn:acme:error:unauthorized": ErrUnauthorized,
+ "urn:acme:error:unknownHost": ErrUnknownHost,
}
func (p Problem) Error() string {
- if err, ok := urnErrors[p.Type]; ok {
- return err.Error() + ": " + p.Detail
- }
return p.Detail
}
diff --git a/messages.go b/messages.go
index 6c9c523..6a2846b 100644
--- a/messages.go
+++ b/messages.go
@@ -69,6 +69,7 @@ type Problem struct {
Type string `json:"type"`
Detail string `json:"detail"`
Instance string `json:"instance"`
+ Err error `json:"-"`
}
// Status of request