linting: apply errcheck part1

This commit is contained in:
Zach Ramsay
2017-09-06 11:50:43 -04:00
committed by Ethan Buchman
parent d95ba866b8
commit 57ea4987f7
25 changed files with 272 additions and 81 deletions

View File

@ -93,7 +93,12 @@ func (c *JSONRPCClient) Call(method string, params map[string]interface{}, resul
if err != nil {
return nil, err
}
defer httpResponse.Body.Close()
defer func() {
if err := httpResponse.Body.Close(); err != nil {
panic(err)
return
}
}()
responseBytes, err := ioutil.ReadAll(httpResponse.Body)
if err != nil {
return nil, err
@ -128,7 +133,12 @@ func (c *URIClient) Call(method string, params map[string]interface{}, result in
if err != nil {
return nil, err
}
defer resp.Body.Close()
defer func() {
if err := resp.Body.Close(); err != nil {
panic(err)
return
}
}()
responseBytes, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err

View File

@ -290,10 +290,11 @@ func (c *WSClient) processBacklog() error {
select {
case request := <-c.backlog:
if c.writeWait > 0 {
c.conn.SetWriteDeadline(time.Now().Add(c.writeWait))
if err := c.conn.SetWriteDeadline(time.Now().Add(c.writeWait)); err != nil {
panic(err)
}
}
err := c.conn.WriteJSON(request)
if err != nil {
if err := c.conn.WriteJSON(request); err != nil {
c.Logger.Error("failed to resend request", "err", err)
c.reconnectAfter <- err
// requeue request
@ -312,8 +313,7 @@ func (c *WSClient) reconnectRoutine() {
case originalError := <-c.reconnectAfter:
// wait until writeRoutine and readRoutine finish
c.wg.Wait()
err := c.reconnect()
if err != nil {
if err := c.reconnect(); err != nil {
c.Logger.Error("failed to reconnect", "err", err, "original_err", originalError)
c.Stop()
return
@ -352,7 +352,9 @@ func (c *WSClient) writeRoutine() {
defer func() {
ticker.Stop()
c.conn.Close()
if err := c.conn.Close(); err != nil {
// panic(err) FIXME: this panic will trigger in tests
}
c.wg.Done()
}()
@ -360,10 +362,11 @@ func (c *WSClient) writeRoutine() {
select {
case request := <-c.send:
if c.writeWait > 0 {
c.conn.SetWriteDeadline(time.Now().Add(c.writeWait))
if err := c.conn.SetWriteDeadline(time.Now().Add(c.writeWait)); err != nil {
panic(err)
}
}
err := c.conn.WriteJSON(request)
if err != nil {
if err := c.conn.WriteJSON(request); err != nil {
c.Logger.Error("failed to send request", "err", err)
c.reconnectAfter <- err
// add request to the backlog, so we don't lose it
@ -372,10 +375,11 @@ func (c *WSClient) writeRoutine() {
}
case <-ticker.C:
if c.writeWait > 0 {
c.conn.SetWriteDeadline(time.Now().Add(c.writeWait))
if err := c.conn.SetWriteDeadline(time.Now().Add(c.writeWait)); err != nil {
panic(err)
}
}
err := c.conn.WriteMessage(websocket.PingMessage, []byte{})
if err != nil {
if err := c.conn.WriteMessage(websocket.PingMessage, []byte{}); err != nil {
c.Logger.Error("failed to write ping", "err", err)
c.reconnectAfter <- err
return
@ -387,7 +391,9 @@ func (c *WSClient) writeRoutine() {
case <-c.readRoutineQuit:
return
case <-c.Quit:
c.conn.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, ""))
if err := c.conn.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, "")); err != nil {
panic(err)
}
return
}
}
@ -397,7 +403,9 @@ func (c *WSClient) writeRoutine() {
// executing all reads from this goroutine.
func (c *WSClient) readRoutine() {
defer func() {
c.conn.Close()
if err := c.conn.Close(); err != nil {
// panic(err) FIXME: this panic will trigger in tests
}
c.wg.Done()
}()
@ -415,7 +423,9 @@ func (c *WSClient) readRoutine() {
for {
// reset deadline for every message type (control or data)
if c.readWait > 0 {
c.conn.SetReadDeadline(time.Now().Add(c.readWait))
if err := c.conn.SetReadDeadline(time.Now().Add(c.readWait)); err != nil {
panic(err)
}
}
_, data, err := c.conn.ReadMessage()
if err != nil {

View File

@ -34,7 +34,11 @@ func (h *myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if err != nil {
panic(err)
}
defer conn.Close()
defer func() {
if err := conn.Close(); err != nil {
panic(err)
}
}()
for {
messageType, _, err := conn.ReadMessage()
if err != nil {
@ -43,7 +47,9 @@ func (h *myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
h.mtx.RLock()
if h.closeConnAfterRead {
conn.Close()
if err := conn.Close(); err != nil {
panic(err)
}
}
h.mtx.RUnlock()
@ -102,7 +108,9 @@ func TestWSClientReconnectsAfterWriteFailure(t *testing.T) {
go callWgDoneOnResult(t, c, &wg)
// hacky way to abort the connection before write
c.conn.Close()
if err := c.conn.Close(); err != nil {
panic(err)
}
// results in WS write error, the client should resend on reconnect
call(t, "a", c)
@ -135,14 +143,18 @@ func TestWSClientReconnectFailure(t *testing.T) {
}()
// hacky way to abort the connection before write
c.conn.Close()
if err := c.conn.Close(); err != nil {
t.Error(err)
}
s.Close()
// results in WS write error
// provide timeout to avoid blocking
ctx, cancel := context.WithTimeout(context.Background(), wsCallTimeout)
defer cancel()
c.Call(ctx, "a", make(map[string]interface{}))
if err := c.Call(ctx, "a", make(map[string]interface{})); err != nil {
t.Error(err)
}
// expect to reconnect almost immediately
time.Sleep(10 * time.Millisecond)