From a2b4abd89adf0404b43fcd19766bac37009032a5 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Fri, 9 Dec 2016 19:51:21 +0100 Subject: [PATCH] rpc: send nil on subscription Err channel when Client is closed This change makes client subscriptions compatible with the new Subscription semantics introduced in the previous commit. --- rpc/client.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rpc/client.go b/rpc/client.go index 34a3b78317..269eb78c86 100644 --- a/rpc/client.go +++ b/rpc/client.go @@ -682,7 +682,7 @@ func newClientSubscription(c *Client, channel reflect.Value) *ClientSubscription // resubscription when the client connection is closed unexpectedly. // // The error channel receives a value when the subscription has ended due -// to an error. The received error is ErrClientQuit if Close has been called +// to an error. The received error is nil if Close has been called // on the underlying client and no other error has occurred. // // The error channel is closed when Unsubscribe is called on the subscription. @@ -707,6 +707,9 @@ func (sub *ClientSubscription) quitWithError(err error, unsubscribeServer bool) sub.requestUnsubscribe() } if err != nil { + if err == ErrClientQuit { + err = nil // Adhere to subscription semantics. + } sub.err <- err } })