Lint fixes

This commit is contained in:
Łukasz Magiera 2019-07-15 18:32:43 +02:00
parent 3fca70f112
commit 661043f5c8
4 changed files with 22 additions and 20 deletions

View File

@ -169,8 +169,8 @@ func NewClient(addr string, namespace string, handler interface{}) (ClientCloser
requests <- clientRequest{ requests <- clientRequest{
req: request{ req: request{
Jsonrpc: "2.0", Jsonrpc: "2.0",
Method: wsCancel, Method: wsCancel,
Params: []param{{v: reflect.ValueOf(id)}}, Params: []param{{v: reflect.ValueOf(id)}},
}, },
} }
} }

View File

@ -69,7 +69,7 @@ func TestRPC(t *testing.T) {
AddGet func(int) int AddGet func(int) int
StringMatch func(t TestType, i2 int64) (out TestOut, err error) StringMatch func(t TestType, i2 int64) (out TestOut, err error)
} }
closer, err := NewClient("ws://" + testServ.Listener.Addr().String(), "SimpleServerHandler", &client) closer, err := NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &client)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -132,7 +132,7 @@ func TestRPC(t *testing.T) {
var noret struct { var noret struct {
Add func(int) Add func(int)
} }
closer, err = NewClient("ws://" + testServ.Listener.Addr().String(), "SimpleServerHandler", &noret) closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &noret)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -147,7 +147,7 @@ func TestRPC(t *testing.T) {
var noparam struct { var noparam struct {
Add func() Add func()
} }
closer, err = NewClient("ws://" + testServ.Listener.Addr().String(), "SimpleServerHandler", &noparam) closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &noparam)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -159,7 +159,7 @@ func TestRPC(t *testing.T) {
var erronly struct { var erronly struct {
AddGet func() (int, error) AddGet func() (int, error)
} }
closer, err = NewClient("ws://" + testServ.Listener.Addr().String(), "SimpleServerHandler", &erronly) closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &erronly)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -173,7 +173,7 @@ func TestRPC(t *testing.T) {
var wrongtype struct { var wrongtype struct {
Add func(string) error Add func(string) error
} }
closer, err = NewClient("ws://" + testServ.Listener.Addr().String(), "SimpleServerHandler", &wrongtype) closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &wrongtype)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -187,7 +187,7 @@ func TestRPC(t *testing.T) {
var notfound struct { var notfound struct {
NotThere func(string) error NotThere func(string) error
} }
closer, err = NewClient("ws://" + testServ.Listener.Addr().String(), "SimpleServerHandler", &notfound) closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &notfound)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -236,7 +236,7 @@ func TestCtx(t *testing.T) {
var client struct { var client struct {
Test func(ctx context.Context) Test func(ctx context.Context)
} }
closer, err := NewClient("ws://" + testServ.Listener.Addr().String(), "CtxHandler", &client) closer, err := NewClient("ws://"+testServ.Listener.Addr().String(), "CtxHandler", &client)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -259,7 +259,7 @@ func TestCtx(t *testing.T) {
var noCtxClient struct { var noCtxClient struct {
Test func() Test func()
} }
closer, err = NewClient("ws://" + testServ.Listener.Addr().String(), "CtxHandler", &noCtxClient) closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "CtxHandler", &noCtxClient)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

View File

@ -35,9 +35,13 @@ func (s *RPCServer) handleWS(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(500) w.WriteHeader(500)
return return
} }
defer c.Close()
handleWsConn(r.Context(), c, s.methods, nil, nil) handleWsConn(r.Context(), c, s.methods, nil, nil)
if err := c.Close(); err != nil {
log.Error(err)
return
}
} }
// TODO: return errors to clients per spec // TODO: return errors to clients per spec

View File

@ -15,16 +15,16 @@ const wsCancel = "xrpc.cancel"
type frame struct { type frame struct {
// common // common
Jsonrpc string `json:"jsonrpc"` Jsonrpc string `json:"jsonrpc"`
ID *int64 `json:"id,omitempty"` ID *int64 `json:"id,omitempty"`
// request // request
Method string `json:"method,omitempty"` Method string `json:"method,omitempty"`
Params []param `json:"params,omitempty"` Params []param `json:"params,omitempty"`
// response // response
Result result `json:"result,omitempty"` Result result `json:"result,omitempty"`
Error *respError `json:"error,omitempty"` Error *respError `json:"error,omitempty"`
} }
func handleWsConn(ctx context.Context, conn *websocket.Conn, handler handlers, requests <-chan clientRequest, stop <-chan struct{}) { func handleWsConn(ctx context.Context, conn *websocket.Conn, handler handlers, requests <-chan clientRequest, stop <-chan struct{}) {
@ -137,11 +137,10 @@ func handleWsConn(ctx context.Context, conn *websocket.Conn, handler handlers, r
nw := func(cb func(io.Writer)) { nw := func(cb func(io.Writer)) {
cb(ioutil.Discard) cb(ioutil.Discard)
} }
done := func(){} done := cf
if frame.ID != nil { if frame.ID != nil {
nw = nextWriter nw = nextWriter
handlingLk.Lock() handlingLk.Lock()
handling[*frame.ID] = cf handling[*frame.ID] = cf
handlingLk.Unlock() handlingLk.Unlock()
@ -150,7 +149,6 @@ func handleWsConn(ctx context.Context, conn *websocket.Conn, handler handlers, r
handlingLk.Lock() handlingLk.Lock()
defer handlingLk.Unlock() defer handlingLk.Unlock()
cf := handling[*frame.ID]
cf() cf()
delete(handling, *frame.ID) delete(handling, *frame.ID)
} }