diff --git a/client/client.go b/client/client.go index 1c79b87..c0562b2 100644 --- a/client/client.go +++ b/client/client.go @@ -25,8 +25,8 @@ type Client interface { Close() Notify(method string, args interface{}) error - Call(method string, args interface{}) (result interface{}, err error) - CallTimeout(method string, args interface{}, timeout time.Duration) (result interface{}, err error) + Call(method string, args interface{}, result interface{}) error + CallTimeout(method string, args interface{}, result interface{}, timeout time.Duration) (err error) } type client struct { @@ -78,11 +78,11 @@ func (c *client) Notify(method string, args interface{}) error { return err } -func (c *client) Call(method string, args interface{}) (result interface{}, err error) { - return c.CallTimeout(method, args, c.ch.GetRequestTimeout()) +func (c *client) Call(method string, args interface{}, result interface{}) error { + return c.CallTimeout(method, args, result, c.ch.GetRequestTimeout()) } -func (c *client) CallTimeout(method string, args interface{}, timeout time.Duration) (result interface{}, err error) { +func (c *client) CallTimeout(method string, args interface{}, result interface{}, timeout time.Duration) (err error) { var cs *CallState if cs, err = c.send(method, args, result, true, true); nil != err { return @@ -312,8 +312,11 @@ func (c *client) responseHandle(codecResponse protocol.ClientCodecResponse) erro atomic.AddUint32(&c.pendingRequestsCount, ^uint32(0)) - cs.Result = codecResponse.Result() + if err := codecResponse.Result(cs.Result); nil != err { + log.Printf("responseHandle:%v", err) + } if err := codecResponse.Error(); nil != err { + log.Printf("responseHandle:%v", err) // cs.Error = &ClientError{ // Server: true, // err: fmt.Errorf("gorpc.Client: [%s]. Server error: [%s]", c.Addr, wr.Error),