Merge pull request #413 from qkzsky/qkzsky-rpc-fix
client close: rpc: unable to write error response
This commit is contained in:
		| @@ -157,15 +157,17 @@ func (s *rpcServer) ServeConn(sock transport.Socket) { | ||||
|  | ||||
| 		// TODO: handle error better | ||||
| 		if err := handler(ctx, request, response); err != nil { | ||||
| 			// write an error response | ||||
| 			err = rcodec.Write(&codec.Message{ | ||||
| 				Header: msg.Header, | ||||
| 				Error:  err.Error(), | ||||
| 				Type:   codec.Error, | ||||
| 			}, nil) | ||||
| 			// could not write the error response | ||||
| 			if err != nil { | ||||
| 				log.Logf("rpc: unable to write error response: %v", err) | ||||
| 			if err != lastStreamResponseError { | ||||
| 				// write an error response | ||||
| 				err = rcodec.Write(&codec.Message{ | ||||
| 					Header: msg.Header, | ||||
| 					Error:  err.Error(), | ||||
| 					Type:   codec.Error, | ||||
| 				}, nil) | ||||
| 				// could not write the error response | ||||
| 				if err != nil { | ||||
| 					log.Logf("rpc: unable to write error response: %v", err) | ||||
| 				} | ||||
| 			} | ||||
| 			s.wg.Done() | ||||
| 			return | ||||
|   | ||||
		Reference in New Issue
	
	Block a user