aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-03-07 03:25:29 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-03-07 03:25:29 +0100
commit3240e105be7ea1a2d3012674e7a694dcafafc237 (patch)
tree2d305ca345ef4d50fd6f57adbaa7e82c74e11c6b /cmd
parent2f4094a0eec39152c599ec4a8f452dd4a4f6577d (diff)
Proper error handling
Diffstat (limited to 'cmd')
-rw-r--r--cmd/acme/file.go22
1 files changed, 18 insertions, 4 deletions
diff --git a/cmd/acme/file.go b/cmd/acme/file.go
index dbc8bd1..7c1c6d9 100644
--- a/cmd/acme/file.go
+++ b/cmd/acme/file.go
@@ -14,8 +14,15 @@ import (
func NewFile(fname string, mode os.FileMode) (io.WriteCloser, error) {
err := os.Rename(fname, fname+".bak")
- if e, ok := err.(*os.LinkError); ok && e.Err != syscall.ENOENT {
- return nil, err
+ if err != nil {
+ switch e := err.(type) {
+ case *os.LinkError:
+ if e.Err != syscall.ENOENT {
+ return nil, err
+ }
+ default:
+ return nil, err
+ }
}
flags := os.O_WRONLY | os.O_CREATE | os.O_TRUNC
return os.OpenFile(fname, flags, mode)
@@ -53,8 +60,15 @@ func (d domain) Save(cert tls.Certificate) error {
func (d domain) Load() (tls.Certificate, error) {
crt, err := tls.LoadX509KeyPair(d.CrtFile, d.KeyFile)
- if e, ok := err.(*os.PathError); ok && e.Err != syscall.ENOENT {
- return tls.Certificate{}, nil
+ if err != nil {
+ switch e := err.(type) {
+ case *os.PathError:
+ if e.Err != syscall.ENOENT {
+ return tls.Certificate{}, err
+ }
+ default:
+ return tls.Certificate{}, nil
+ }
}
crt.Leaf, err = x509.ParseCertificate(crt.Certificate[0])
return crt, err