aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2022-10-26 18:37:01 +0100
committerNeil Alexander <neilalexander@users.noreply.github.com>2022-10-26 18:37:01 +0100
commit238b6ef2cd5077482b46c57e9f44f05a19fcbfc7 (patch)
tree23e59ea109d5ea493c63181379cd6a302bcb4eb9 /cmd
parent97491a174b7826c5c9058398e54e4a18c7a5a052 (diff)
Update Yggdrasil demo
Diffstat (limited to 'cmd')
-rw-r--r--cmd/dendrite-demo-yggdrasil/yggconn/node.go86
1 files changed, 44 insertions, 42 deletions
diff --git a/cmd/dendrite-demo-yggdrasil/yggconn/node.go b/cmd/dendrite-demo-yggdrasil/yggconn/node.go
index 83b4cdf9..6df5fa87 100644
--- a/cmd/dendrite-demo-yggdrasil/yggconn/node.go
+++ b/cmd/dendrite-demo-yggdrasil/yggconn/node.go
@@ -20,6 +20,7 @@ import (
"encoding/hex"
"fmt"
"net"
+ "regexp"
"strings"
"github.com/matrix-org/gomatrixserverlib"
@@ -27,9 +28,9 @@ import (
"github.com/sirupsen/logrus"
ironwoodtypes "github.com/Arceliar/ironwood/types"
- yggdrasilconfig "github.com/yggdrasil-network/yggdrasil-go/src/config"
+ "github.com/yggdrasil-network/yggdrasil-go/src/core"
yggdrasilcore "github.com/yggdrasil-network/yggdrasil-go/src/core"
- yggdrasildefaults "github.com/yggdrasil-network/yggdrasil-go/src/defaults"
+ "github.com/yggdrasil-network/yggdrasil-go/src/multicast"
yggdrasilmulticast "github.com/yggdrasil-network/yggdrasil-go/src/multicast"
gologme "github.com/gologme/log"
@@ -37,7 +38,6 @@ import (
type Node struct {
core *yggdrasilcore.Core
- config *yggdrasilconfig.NodeConfig
multicast *yggdrasilmulticast.Multicast
log *gologme.Logger
utpSocket *utp.Socket
@@ -57,43 +57,52 @@ func (n *Node) DialerContext(ctx context.Context, _, address string) (net.Conn,
func Setup(sk ed25519.PrivateKey, instanceName, storageDirectory, peerURI, listenURI string) (*Node, error) {
n := &Node{
- core: &yggdrasilcore.Core{},
- config: yggdrasildefaults.GenerateConfig(),
- multicast: &yggdrasilmulticast.Multicast{},
- log: gologme.New(logrus.StandardLogger().Writer(), "", 0),
- incoming: make(chan net.Conn),
+ log: gologme.New(logrus.StandardLogger().Writer(), "", 0),
+ incoming: make(chan net.Conn),
}
- options := []yggdrasilcore.SetupOption{
- yggdrasilcore.AdminListenAddress("none"),
- }
- if listenURI != "" {
- options = append(options, yggdrasilcore.ListenAddress(listenURI))
- }
- if peerURI != "" {
- for _, uri := range strings.Split(peerURI, ",") {
- options = append(options, yggdrasilcore.Peer{
- URI: uri,
- })
- }
- }
-
- var err error
- if n.core, err = yggdrasilcore.New(sk, options...); err != nil {
- panic(err)
- }
n.log.EnableLevel("error")
n.log.EnableLevel("warn")
n.log.EnableLevel("info")
- n.core.SetLogger(n.log)
- if n.utpSocket, err = utp.NewSocketFromPacketConnNoClose(n.core); err != nil {
- panic(err)
- }
- if err = n.multicast.Init(n.core, n.config, n.log, nil); err != nil {
- panic(err)
+
+ {
+ var err error
+ options := []yggdrasilcore.SetupOption{}
+ if listenURI != "" {
+ options = append(options, yggdrasilcore.ListenAddress(listenURI))
+ }
+ if peerURI != "" {
+ for _, uri := range strings.Split(peerURI, ",") {
+ options = append(options, yggdrasilcore.Peer{
+ URI: uri,
+ })
+ }
+ }
+ if n.core, err = core.New(sk[:], n.log, options...); err != nil {
+ panic(err)
+ }
+ n.core.SetLogger(n.log)
+
+ if n.utpSocket, err = utp.NewSocketFromPacketConnNoClose(n.core); err != nil {
+ panic(err)
+ }
}
- if err = n.multicast.Start(); err != nil {
- panic(err)
+
+ // Setup the multicast module.
+ {
+ var err error
+ options := []multicast.SetupOption{
+ multicast.MulticastInterface{
+ Regex: regexp.MustCompile(".*"),
+ Beacon: true,
+ Listen: true,
+ Port: 0,
+ Priority: 0,
+ },
+ }
+ if n.multicast, err = multicast.New(n.core, n.log, options...); err != nil {
+ panic(err)
+ }
}
n.log.Printf("Public key: %x", n.core.PublicKey())
@@ -114,14 +123,7 @@ func (n *Node) DerivedServerName() string {
}
func (n *Node) PrivateKey() ed25519.PrivateKey {
- sk := make(ed25519.PrivateKey, ed25519.PrivateKeySize)
- sb, err := hex.DecodeString(n.config.PrivateKey)
- if err == nil {
- copy(sk, sb[:])
- } else {
- panic(err)
- }
- return sk
+ return n.core.PrivateKey()
}
func (n *Node) PublicKey() ed25519.PublicKey {