Skip to content

Commit dc3fb69

Browse files
fjlGustav Simonsson
authored andcommitted
Merge pull request #1710 from bas-vk/useragent
user agent messages were dumped in some cases (cherry picked from commit a219159)
1 parent d51d002 commit dc3fb69

File tree

4 files changed

+48
-20
lines changed

4 files changed

+48
-20
lines changed

rpc/comms/ipc.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,12 @@ func (self *ipcClient) Close() {
4242
self.coder.Close()
4343
}
4444

45-
func (self *ipcClient) Send(req interface{}) error {
45+
func (self *ipcClient) Send(msg interface{}) error {
4646
var err error
47-
if r, ok := req.(*shared.Request); ok {
48-
if err = self.coder.WriteResponse(r); err != nil {
49-
if err = self.reconnect(); err == nil {
50-
err = self.coder.WriteResponse(r)
51-
}
47+
if err = self.coder.WriteResponse(msg); err != nil {
48+
if err = self.reconnect(); err == nil {
49+
err = self.coder.WriteResponse(msg)
5250
}
53-
54-
return err
5551
}
5652
return err
5753
}

rpc/comms/ipc_unix.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/ethereum/go-ethereum/logger/glog"
2727
"github.com/ethereum/go-ethereum/rpc/codec"
2828
"github.com/ethereum/go-ethereum/rpc/shared"
29+
"github.com/ethereum/go-ethereum/rpc/useragent"
2930
)
3031

3132
func newIpcClient(cfg IpcConfig, codec codec.Codec) (*ipcClient, error) {
@@ -34,14 +35,34 @@ func newIpcClient(cfg IpcConfig, codec codec.Codec) (*ipcClient, error) {
3435
return nil, err
3536
}
3637

37-
return &ipcClient{cfg.Endpoint, c, codec, codec.New(c)}, nil
38+
coder := codec.New(c)
39+
msg := shared.Request{
40+
Id: 0,
41+
Method: useragent.EnableUserAgentMethod,
42+
Jsonrpc: shared.JsonRpcVersion,
43+
Params: []byte("[]"),
44+
}
45+
46+
coder.WriteResponse(msg)
47+
coder.Recv()
48+
49+
return &ipcClient{cfg.Endpoint, c, codec, coder}, nil
3850
}
3951

4052
func (self *ipcClient) reconnect() error {
4153
self.coder.Close()
4254
c, err := net.DialUnix("unix", nil, &net.UnixAddr{self.endpoint, "unix"})
4355
if err == nil {
4456
self.coder = self.codec.New(c)
57+
58+
msg := shared.Request{
59+
Id: 0,
60+
Method: useragent.EnableUserAgentMethod,
61+
Jsonrpc: shared.JsonRpcVersion,
62+
Params: []byte("[]"),
63+
}
64+
self.coder.WriteResponse(msg)
65+
self.coder.Recv()
4566
}
4667

4768
return err

rpc/comms/ipc_windows.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"github.com/ethereum/go-ethereum/logger/glog"
3333
"github.com/ethereum/go-ethereum/rpc/codec"
3434
"github.com/ethereum/go-ethereum/rpc/shared"
35+
"github.com/ethereum/go-ethereum/rpc/useragent"
3536
)
3637

3738
var (
@@ -656,13 +657,33 @@ func newIpcClient(cfg IpcConfig, codec codec.Codec) (*ipcClient, error) {
656657
return nil, err
657658
}
658659

659-
return &ipcClient{cfg.Endpoint, c, codec, codec.New(c)}, nil
660+
coder := codec.New(c)
661+
msg := shared.Request{
662+
Id: 0,
663+
Method: useragent.EnableUserAgentMethod,
664+
Jsonrpc: shared.JsonRpcVersion,
665+
Params: []byte("[]"),
666+
}
667+
668+
coder.WriteResponse(msg)
669+
coder.Recv()
670+
671+
return &ipcClient{cfg.Endpoint, c, codec, coder}, nil
660672
}
661673

662674
func (self *ipcClient) reconnect() error {
663675
c, err := Dial(self.endpoint)
664676
if err == nil {
665677
self.coder = self.codec.New(c)
678+
679+
req := shared.Request{
680+
Id: 0,
681+
Method: useragent.EnableUserAgentMethod,
682+
Jsonrpc: shared.JsonRpcVersion,
683+
Params: []byte("[]"),
684+
}
685+
self.coder.WriteResponse(req)
686+
self.coder.Recv()
666687
}
667688
return err
668689
}

rpc/jeth.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,6 @@ type Jeth struct {
4040
}
4141

4242
func NewJeth(ethApi shared.EthereumApi, re *jsre.JSRE, client comms.EthereumClient, fe xeth.Frontend) *Jeth {
43-
// enable the jeth as the user agent
44-
req := shared.Request{
45-
Id: 0,
46-
Method: useragent.EnableUserAgentMethod,
47-
Jsonrpc: shared.JsonRpcVersion,
48-
Params: []byte("[]"),
49-
}
50-
client.Send(&req)
51-
client.Recv()
52-
5343
return &Jeth{ethApi, re, client, fe}
5444
}
5545

0 commit comments

Comments
 (0)