diff options
Diffstat (limited to 'rpc/server.go')
-rw-r--r-- | rpc/server.go | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/rpc/server.go b/rpc/server.go index 8925419fe..214e1d3ed 100644 --- a/rpc/server.go +++ b/rpc/server.go @@ -25,8 +25,8 @@ import ( "sync" "sync/atomic" + mapset "github.com/deckarep/golang-set" "github.com/ethereum/go-ethereum/log" - "gopkg.in/fatih/set.v0" ) const MetadataApi = "rpc" @@ -46,7 +46,7 @@ const ( func NewServer() *Server { server := &Server{ services: make(serviceRegistry), - codecs: set.New(), + codecs: mapset.NewSet(), run: 1, } @@ -94,11 +94,12 @@ func (s *Server) RegisterName(name string, rcvr interface{}) error { methods, subscriptions := suitableCallbacks(rcvrVal, svc.typ) - // already a previous service register under given sname, merge methods/subscriptions + if len(methods) == 0 && len(subscriptions) == 0 { + return fmt.Errorf("Service %T doesn't have any suitable methods/subscriptions to expose", rcvr) + } + + // already a previous service register under given name, merge methods/subscriptions if regsvc, present := s.services[name]; present { - if len(methods) == 0 && len(subscriptions) == 0 { - return fmt.Errorf("Service %T doesn't have any suitable methods/subscriptions to expose", rcvr) - } for _, m := range methods { regsvc.callbacks[formatName(m.method.Name)] = m } @@ -111,10 +112,6 @@ func (s *Server) RegisterName(name string, rcvr interface{}) error { svc.name = name svc.callbacks, svc.subscriptions = methods, subscriptions - if len(svc.callbacks) == 0 && len(svc.subscriptions) == 0 { - return fmt.Errorf("Service %T doesn't have any suitable methods/subscriptions to expose", rcvr) - } - s.services[svc.name] = svc return nil } |