diff --git a/cmd/dendrite-demo-yggdrasil/main.go b/cmd/dendrite-demo-yggdrasil/main.go index 33e1606b5..b7a018c0f 100644 --- a/cmd/dendrite-demo-yggdrasil/main.go +++ b/cmd/dendrite-demo-yggdrasil/main.go @@ -45,6 +45,7 @@ import ( var ( instanceName = flag.String("name", "dendrite-p2p-ygg", "the name of this P2P demo instance") instancePort = flag.Int("port", 8008, "the port that the client API will listen on") + instancePeer = flag.String("peer", "", "an internet Yggdrasil peer to connect to") ) type yggroundtripper struct { @@ -95,7 +96,7 @@ func main() { }, } - ygg, err := yggconn.Setup(*instanceName) + ygg, err := yggconn.Setup(*instanceName, *instancePeer) if err != nil { panic(err) } diff --git a/cmd/dendrite-demo-yggdrasil/yggconn/node.go b/cmd/dendrite-demo-yggdrasil/yggconn/node.go index 777b54f55..12acbea6d 100644 --- a/cmd/dendrite-demo-yggdrasil/yggconn/node.go +++ b/cmd/dendrite-demo-yggdrasil/yggconn/node.go @@ -32,7 +32,7 @@ type Node struct { incoming chan *yamux.Stream } -func Setup(instanceName string) (*Node, error) { +func Setup(instanceName, instancePeer string) (*Node, error) { n := &Node{ core: &yggdrasil.Core{}, config: yggdrasilconfig.GenerateConfig(), @@ -71,6 +71,11 @@ func Setup(instanceName string) (*Node, error) { if err != nil { panic(err) } + if instancePeer != "" { + if err = n.core.AddPeer(instancePeer, ""); err != nil { + panic(err) + } + } if err = n.admin.Init(n.core, n.state, n.log, nil); err != nil { panic(err) }