OSDN Git Service

Specify lan discovery service name (#407)
authoryahtoo <yahtoo.ma@gmail.com>
Fri, 27 Sep 2019 07:26:36 +0000 (15:26 +0800)
committerPaladz <yzhu101@uottawa.ca>
Fri, 27 Sep 2019 07:26:36 +0000 (15:26 +0800)
p2p/discover/mdns/mdns.go
p2p/switch.go
toolbar/precognitive/monitor/monitor.go

index 2c9ca7b..5d38bc8 100644 (file)
@@ -2,46 +2,49 @@ package mdns
 
 import (
        "context"
 
 import (
        "context"
+       "fmt"
 
        "github.com/grandcat/zeroconf"
 )
 
 const (
        instanceName = "vapord"
 
        "github.com/grandcat/zeroconf"
 )
 
 const (
        instanceName = "vapord"
-       serviceName  = "lanDiscover"
+       serviceName  = "vapor%sLanDiscover"
        domainName   = "local"
 )
 
 // Protocol decoration ZeroConf,which is a pure Golang library
 // that employs Multicast DNS-SD.
 type Protocol struct {
        domainName   = "local"
 )
 
 // Protocol decoration ZeroConf,which is a pure Golang library
 // that employs Multicast DNS-SD.
 type Protocol struct {
-       entries chan *zeroconf.ServiceEntry
-       server  *zeroconf.Server
-       quite   chan struct{}
+       entries     chan *zeroconf.ServiceEntry
+       server      *zeroconf.Server
+       serviceName string
+       quite       chan struct{}
 }
 
 // NewProtocol create a specific Protocol.
 }
 
 // NewProtocol create a specific Protocol.
-func NewProtocol() *Protocol {
+func NewProtocol(chainID string) *Protocol {
        return &Protocol{
        return &Protocol{
-               entries: make(chan *zeroconf.ServiceEntry),
-               quite:   make(chan struct{}),
+               entries:     make(chan *zeroconf.ServiceEntry),
+               serviceName: fmt.Sprintf(serviceName, chainID),
+               quite:       make(chan struct{}),
        }
 }
 
        }
 }
 
-func (m *Protocol) getLanPeerLoop(event chan LANPeerEvent) {
+func (p *Protocol) getLanPeerLoop(event chan LANPeerEvent) {
        for {
                select {
        for {
                select {
-               case entry := <-m.entries:
+               case entry := <-p.entries:
                        event <- LANPeerEvent{IP: entry.AddrIPv4, Port: entry.Port}
                        event <- LANPeerEvent{IP: entry.AddrIPv4, Port: entry.Port}
-               case <-m.quite:
+               case <-p.quite:
                        return
                }
        }
 }
 
                        return
                }
        }
 }
 
-func (m *Protocol) registerService(port int) error {
+func (p *Protocol) registerService(port int) error {
        var err error
        var err error
-       m.server, err = zeroconf.Register(instanceName, serviceName, domainName, port, nil, nil)
+       p.server, err = zeroconf.Register(instanceName, p.serviceName, domainName, port, nil, nil)
        return err
 }
 
        return err
 }
 
@@ -52,15 +55,15 @@ func (m *Protocol) registerResolver(event chan LANPeerEvent) error {
                return err
        }
 
                return err
        }
 
-       return resolver.Browse(context.Background(), serviceName, domainName, m.entries)
+       return resolver.Browse(context.Background(), m.serviceName, domainName, m.entries)
 }
 
 }
 
-func (m *Protocol) stopResolver() {
-       close(m.quite)
+func (p *Protocol) stopResolver() {
+       close(p.quite)
 }
 
 }
 
-func (m *Protocol) stopService() {
-       if m.server != nil {
-               m.server.Shutdown()
+func (p *Protocol) stopService() {
+       if p.server != nil {
+               p.server.Shutdown()
        }
 }
        }
 }
index 075498f..72a995d 100644 (file)
@@ -105,7 +105,7 @@ func NewSwitchMaybeDiscover(config *cfg.Config) (*Switch, error) {
                        return nil, err
                }
                if config.P2P.LANDiscover {
                        return nil, err
                }
                if config.P2P.LANDiscover {
-                       lanDiscv = mdns.NewLANDiscover(mdns.NewProtocol(), int(l.ExternalAddress().Port))
+                       lanDiscv = mdns.NewLANDiscover(mdns.NewProtocol(config.ChainID), int(l.ExternalAddress().Port))
                }
        }
 
                }
        }
 
index 8a838ae..d32e2a4 100644 (file)
@@ -108,7 +108,7 @@ func (m *monitor) makeSwitch() error {
        }
 
        // no need for lanDiscv, but passing &mdns.LANDiscover{} will cause NilPointer
        }
 
        // no need for lanDiscv, but passing &mdns.LANDiscover{} will cause NilPointer
-       lanDiscv := mdns.NewLANDiscover(mdns.NewProtocol(), int(l.ExternalAddress().Port))
+       lanDiscv := mdns.NewLANDiscover(mdns.NewProtocol(m.nodeCfg.ChainID), int(l.ExternalAddress().Port))
        m.sw, err = p2p.NewSwitch(m.nodeCfg, discv, lanDiscv, l, m.privKey, listenAddr, m.cfg.NetworkID)
        if err != nil {
                return err
        m.sw, err = p2p.NewSwitch(m.nodeCfg, discv, lanDiscv, l, m.privKey, listenAddr, m.cfg.NetworkID)
        if err != nil {
                return err