Fix return values from socket.io

This commit is contained in:
Martin Boehm 2018-02-07 13:23:45 +01:00
parent e094fce3dd
commit d50392b0d0

View File

@ -100,26 +100,22 @@ type reqRange struct {
To int `json:"to"` To int `json:"to"`
} }
func (s *SocketIoServer) onMessage(c *gosocketio.Channel, req map[string]json.RawMessage) string { func (s *SocketIoServer) onMessage(c *gosocketio.Channel, req map[string]json.RawMessage) interface{} {
var err error var err error
var rv []byte var rv interface{}
var rvi interface{}
method := string(req["method"]) method := string(req["method"])
params := req["params"] params := req["params"]
if method == "\"getAddressTxids\"" { if method == "\"getAddressTxids\"" {
addr, rr, err := unmarshalGetAddressTxids(params) addr, rr, err := unmarshalGetAddressTxids(params)
if err == nil { if err == nil {
rvi, err = s.getAddressTxids(addr, &rr) rv, err = s.getAddressTxids(addr, &rr)
} }
} else { } else {
err = errors.New("unknown method") err = errors.New("unknown method")
} }
if err == nil { if err == nil {
rv, err = json.Marshal(rvi) glog.Info(c.Id(), " ", method, " success")
} return rv
if err == nil {
glog.Info(c.Id(), " ", method, " success, returning ", len(rv), " bytes")
return string(rv)
} }
glog.Error(c.Id(), " ", method, ": ", err) glog.Error(c.Id(), " ", method, ": ", err)
return "" return ""
@ -140,7 +136,7 @@ func unmarshalGetAddressTxids(params []byte) (addr []string, rr reqRange, err er
} }
func (s *SocketIoServer) getAddressTxids(addr []string, rr *reqRange) ([]string, error) { func (s *SocketIoServer) getAddressTxids(addr []string, rr *reqRange) ([]string, error) {
var txids []string txids := make([]string, 0)
lower, higher := uint32(rr.To), uint32(rr.Start) lower, higher := uint32(rr.To), uint32(rr.Start)
for _, address := range addr { for _, address := range addr {
script, err := bchain.AddressToOutputScript(address) script, err := bchain.AddressToOutputScript(address)