diff options
author | Neil Alexander <neilalexander@users.noreply.github.com> | 2022-10-26 18:37:01 +0100 |
---|---|---|
committer | Neil Alexander <neilalexander@users.noreply.github.com> | 2022-10-26 18:37:01 +0100 |
commit | 238b6ef2cd5077482b46c57e9f44f05a19fcbfc7 (patch) | |
tree | 23e59ea109d5ea493c63181379cd6a302bcb4eb9 /cmd | |
parent | 97491a174b7826c5c9058398e54e4a18c7a5a052 (diff) |
Update Yggdrasil demo
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/dendrite-demo-yggdrasil/yggconn/node.go | 86 |
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 { |