util/ipfsaddr: recover from panics parsing
Juan Batiz-Benet committed
Jan 31, 2015 at 18:13 UTC
af5b835dc702b78e2f42509f31397564f92c3784
1 file changed
+11
-7
util/ipfsaddr/ipfsaddr.go
+11
-7
@@ -7,8 +7,11 @@ import (
7
ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
8
9
peer "github.com/jbenet/go-ipfs/p2p/peer"
10
+ eventlog "github.com/jbenet/go-ipfs/thirdparty/eventlog"
11
)
12
13
+var log = eventlog.Logger("ipfsaddr")
14
+
15
// ErrInvalidAddr signals an address is not a valid ipfs address.
16
var ErrInvalidAddr = errors.New("invalid ipfs address")
17
@@ -62,13 +65,14 @@ func ParseString(str string) (a IPFSAddr, err error) {
65
66
// ParseMultiaddr parses a multiaddr into an IPFSAddr
67
func ParseMultiaddr(m ma.Multiaddr) (a IPFSAddr, err error) {
65
- // // never panic.
66
- // defer func() {
67
- // if r := recover(); r != nil {
68
- // a = nil
69
- // err = ErrInvalidAddr
70
- // }
71
- // }()
68
+ // never panic.
69
+ defer func() {
70
+ if r := recover(); r != nil {
71
+ log.Debug("recovered from panic: ", r)
72
+ a = nil
73
+ err = ErrInvalidAddr
74
+ }
75
+ }()
76
77
if m == nil {
78
return nil, ErrInvalidAddr