|
|
@@ -66,10 +66,6 @@ type Server struct {
|
|
|
// each peer.
|
|
|
Protocols []Protocol
|
|
|
|
|
|
- // If Blacklist is set to a non-nil value, the given Blacklist
|
|
|
- // is used to verify peer connections.
|
|
|
- Blacklist Blacklist
|
|
|
-
|
|
|
// If ListenAddr is set to a non-nil address, the server
|
|
|
// will listen for incoming connections.
|
|
|
//
|
|
|
@@ -183,9 +179,6 @@ func (srv *Server) Start() (err error) {
|
|
|
if srv.setupFunc == nil {
|
|
|
srv.setupFunc = setupConn
|
|
|
}
|
|
|
- if srv.Blacklist == nil {
|
|
|
- srv.Blacklist = NewBlacklist()
|
|
|
- }
|
|
|
|
|
|
// node table
|
|
|
ntab, err := discover.ListenUDP(srv.PrivateKey, srv.ListenAddr, srv.NAT)
|
|
|
@@ -417,8 +410,6 @@ func (srv *Server) addPeer(id discover.NodeID, p *Peer) (bool, DiscReason) {
|
|
|
return false, DiscTooManyPeers
|
|
|
case srv.peers[id] != nil:
|
|
|
return false, DiscAlreadyConnected
|
|
|
- case srv.Blacklist.Exists(id[:]):
|
|
|
- return false, DiscUselessPeer
|
|
|
case id == srv.ntab.Self():
|
|
|
return false, DiscSelf
|
|
|
}
|
|
|
@@ -432,53 +423,3 @@ func (srv *Server) removePeer(p *Peer) {
|
|
|
srv.lock.Unlock()
|
|
|
srv.peerWG.Done()
|
|
|
}
|
|
|
-
|
|
|
-type Blacklist interface {
|
|
|
- Get([]byte) (bool, error)
|
|
|
- Put([]byte) error
|
|
|
- Delete([]byte) error
|
|
|
- Exists(pubkey []byte) (ok bool)
|
|
|
-}
|
|
|
-
|
|
|
-type BlacklistMap struct {
|
|
|
- blacklist map[string]bool
|
|
|
- lock sync.RWMutex
|
|
|
-}
|
|
|
-
|
|
|
-func NewBlacklist() *BlacklistMap {
|
|
|
- return &BlacklistMap{
|
|
|
- blacklist: make(map[string]bool),
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func (self *BlacklistMap) Get(pubkey []byte) (bool, error) {
|
|
|
- self.lock.RLock()
|
|
|
- defer self.lock.RUnlock()
|
|
|
- v, ok := self.blacklist[string(pubkey)]
|
|
|
- var err error
|
|
|
- if !ok {
|
|
|
- err = fmt.Errorf("not found")
|
|
|
- }
|
|
|
- return v, err
|
|
|
-}
|
|
|
-
|
|
|
-func (self *BlacklistMap) Exists(pubkey []byte) (ok bool) {
|
|
|
- self.lock.RLock()
|
|
|
- defer self.lock.RUnlock()
|
|
|
- _, ok = self.blacklist[string(pubkey)]
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-func (self *BlacklistMap) Put(pubkey []byte) error {
|
|
|
- self.lock.Lock()
|
|
|
- defer self.lock.Unlock()
|
|
|
- self.blacklist[string(pubkey)] = true
|
|
|
- return nil
|
|
|
-}
|
|
|
-
|
|
|
-func (self *BlacklistMap) Delete(pubkey []byte) error {
|
|
|
- self.lock.Lock()
|
|
|
- defer self.lock.Unlock()
|
|
|
- delete(self.blacklist, string(pubkey))
|
|
|
- return nil
|
|
|
-}
|