1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-20 18:54:51 +08:00

fix(commands/err)

I didn't know there were dragons here.

When casting errors we've gotta be careful. Apparently both values and
pointers satisfy the error interface. Type checking for one doesn't
catch the other.

cc @whyrusleeping @mappum @jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
This commit is contained in:
Brian Tiger Chow
2014-11-13 03:43:07 -08:00
committed by Juan Batiz-Benet
parent ca2828f33c
commit ef0826acd6

View File

@ -103,11 +103,12 @@ func (c *Command) Call(req Request) Response {
if err != nil {
// if returned error is a commands.Error, use its error code
// otherwise, just default the code to ErrNormal
var e Error
e, ok := err.(Error)
if ok {
switch e := err.(type) {
case *Error:
res.SetError(e, e.Code)
} else {
case Error:
res.SetError(e, e.Code)
default:
res.SetError(err, ErrNormal)
}
return res