mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-02-26 15:47:21 +00:00
rpc/comms reconnect ipc client after write error
This commit is contained in:
parent
382d35bf40
commit
9bf17eb05a
1 changed files with 5 additions and 3 deletions
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue