Make non-errored RPC calls return 'nil' error to caller.
Make non-errored RPC calls return 'nil' error to caller.

Error information is carried from RPC server to client in the string
'Error' field of rpc.Response. An empty string is sent in the success
case. This empty string was being returned to the caller (of Client.Call
or Client.Go), resulting in a non-nil error response.

This change detects an empty-string Response.Error at the client, and
translates it into a nil value in Call.Error.

Tests updated to check error return in success cases.

R=r, rsc
http://codereview.appspot.com/154159

Committer: Rob Pike <4dc7c9ec434ed06502767136789763ec11d2c4b7@golang.org>

tav/go,tav/go,tav/go,tav/go,tav/go,tav/go,tav/go