work around shitty wallet server error response
This commit is contained in:
parent
d89b58c52a
commit
ad8d623863
1 changed files with 27 additions and 5 deletions
|
@ -147,13 +147,35 @@ func (n *Node) listen() {
|
||||||
Message string `json:"message"`
|
Message string `json:"message"`
|
||||||
} `json:"error"`
|
} `json:"error"`
|
||||||
}{}
|
}{}
|
||||||
if err := json.Unmarshal(bytes, msg); err != nil {
|
msg2 := &struct {
|
||||||
n.err(err)
|
Id uint32 `json:"id"`
|
||||||
continue
|
Method string `json:"method"`
|
||||||
|
Error struct {
|
||||||
|
Code int `json:"code"`
|
||||||
|
Message struct {
|
||||||
|
Code int `json:"code"`
|
||||||
|
Message string `json:"message"`
|
||||||
|
} `json:"message"`
|
||||||
|
} `json:"error"`
|
||||||
|
}{}
|
||||||
|
r := response{}
|
||||||
|
|
||||||
|
err := json.Unmarshal(bytes, msg)
|
||||||
|
if err != nil {
|
||||||
|
// try msg2, a hack around the weird error-in-error response we sometimes get from wallet server
|
||||||
|
// maybe that happens because the wallet server passes a lbrycrd error through to us?
|
||||||
|
if err2 := json.Unmarshal(bytes, msg2); err2 == nil {
|
||||||
|
err = nil
|
||||||
|
msg.Id = msg2.Id
|
||||||
|
msg.Method = msg2.Method
|
||||||
|
msg.Error = msg2.Error.Message
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
r := response{}
|
if err != nil {
|
||||||
if len(msg.Error.Message) > 0 {
|
n.err(err)
|
||||||
|
r.err = errors.Err(err)
|
||||||
|
} else if len(msg.Error.Message) > 0 {
|
||||||
r.err = errors.Base("%d: %s", msg.Error.Code, msg.Error.Message)
|
r.err = errors.Base("%d: %s", msg.Error.Code, msg.Error.Message)
|
||||||
} else {
|
} else {
|
||||||
r.data = bytes
|
r.data = bytes
|
||||||
|
|
Loading…
Reference in a new issue