Skip to content

Commit

Permalink
Add mdns and dht command line options
Browse files Browse the repository at this point in the history
  • Loading branch information
dennis-tra committed Mar 21, 2021
1 parent 83ae2bd commit cf3a8a7
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 10 deletions.
8 changes: 8 additions & 0 deletions cmd/pcp/pcp.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,14 @@ func main() {
Name: "debug",
Usage: "enables debug log output",
},
&cli.BoolFlag{
Name: "dht",
Usage: "if set only advertises via the DHT",
},
&cli.BoolFlag{
Name: "mdns",
Usage: "if set only advertises via mDNS",
},
},
}

Expand Down
24 changes: 18 additions & 6 deletions pkg/receive/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,26 @@ func (n *Node) Shutdown() {
n.Node.Shutdown()
}

func (n *Node) StartDiscovering() {
func (n *Node) StartDiscovering(c *cli.Context) {
n.SetState(pcpnode.Discovering)

n.discoverers = []Discoverer{
dht.NewDiscoverer(n, n.DHT),
dht.NewDiscoverer(n, n.DHT).SetOffset(-dht.TruncateDuration),
mdns.NewDiscoverer(n.Node),
mdns.NewDiscoverer(n.Node).SetOffset(-dht.TruncateDuration),
if c.Bool("mdns") == c.Bool("dht") {
n.discoverers = []Discoverer{
dht.NewDiscoverer(n, n.DHT),
dht.NewDiscoverer(n, n.DHT).SetOffset(-dht.TruncateDuration),
mdns.NewDiscoverer(n.Node),
mdns.NewDiscoverer(n.Node).SetOffset(-dht.TruncateDuration),
}
} else if c.Bool("mdns") {
n.discoverers = []Discoverer{
mdns.NewDiscoverer(n.Node),
mdns.NewDiscoverer(n.Node).SetOffset(-dht.TruncateDuration),
}
} else if c.Bool("dht") {
n.discoverers = []Discoverer{
dht.NewDiscoverer(n, n.DHT),
dht.NewDiscoverer(n, n.DHT).SetOffset(-dht.TruncateDuration),
}
}

for _, discoverer := range n.discoverers {
Expand Down
18 changes: 14 additions & 4 deletions pkg/send/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,22 @@ func (n *Node) Shutdown() {

// StartAdvertising asynchronously advertises the given code through the means of all
// registered advertisers. Currently these are multicast DNS and DHT.
func (n *Node) StartAdvertising() {
func (n *Node) StartAdvertising(c *cli.Context) {
n.SetState(pcpnode.Advertising)

n.advertisers = []Advertiser{
dht.NewAdvertiser(n, n.DHT),
mdns.NewAdvertiser(n.Node),
if c.Bool("mdns") == c.Bool("dht") {
n.advertisers = []Advertiser{
dht.NewAdvertiser(n, n.DHT),
mdns.NewAdvertiser(n.Node),
}
} else if c.Bool("mdns") {
n.advertisers = []Advertiser{
mdns.NewAdvertiser(n.Node),
}
} else if c.Bool("dht") {
n.advertisers = []Advertiser{
dht.NewAdvertiser(n, n.DHT),
}
}

for _, advertiser := range n.advertisers {
Expand Down

0 comments on commit cf3a8a7

Please sign in to comment.