aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-08-20 04:29:51 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-08-20 04:29:51 +0800
commitbd3a44cac9664ff72584fb123b3348f24c62d066 (patch)
tree6968700dd4b1b213db49d76aafce312a6a490b94
parent61a6911eebfac5c70959227a8fe0a4e9c2ef5c61 (diff)
parent9bf17eb05a4591d8dec9779a9efddc5c2276699a (diff)
downloaddexon-bd3a44cac9664ff72584fb123b3348f24c62d066.tar.gz
dexon-bd3a44cac9664ff72584fb123b3348f24c62d066.tar.zst
dexon-bd3a44cac9664ff72584fb123b3348f24c62d066.zip
Merge pull request #1652 from bas-vk/autoreconnect
rpc/comms: reconnect ipc client after write error
-rw-r--r--rpc/comms/ipc.go8
1 files changed, 5 insertions, 3 deletions
diff --git a/rpc/comms/ipc.go b/rpc/comms/ipc.go
index e982ada13..d897bf313 100644
--- a/rpc/comms/ipc.go
+++ b/rpc/comms/ipc.go
@@ -44,12 +44,14 @@ func (self *ipcClient) Close() {
func (self *ipcClient) Send(req interface{}) error {
var err error
- if err = self.coder.WriteResponse(req); err != nil {
- if _, ok := err.(*net.OpError); ok { // connection lost, retry once
+ if r, ok := req.(*shared.Request); ok {
+ if err = self.coder.WriteResponse(r); err != nil {
if err = self.reconnect(); err == nil {
- err = self.coder.WriteResponse(req)
+ err = self.coder.WriteResponse(r)
}
}
+
+ return err
}
return err
}