Fix Yggdrasil v0.4.5 build

This commit is contained in:
Neil Alexander
2022-10-19 10:48:18 +01:00
parent 4cbf7d63de
commit 50ca0a837b

View File

@@ -14,12 +14,12 @@ import (
"fmt"
"log"
"net"
"regexp"
iwt "github.com/Arceliar/ironwood/types"
"github.com/fatih/color"
gologme "github.com/gologme/log"
"github.com/neilalexander/utp"
"github.com/yggdrasil-network/yggdrasil-go/src/config"
"github.com/yggdrasil-network/yggdrasil-go/src/core"
"github.com/yggdrasil-network/yggdrasil-go/src/multicast"
)
@@ -29,42 +29,46 @@ type YggdrasilTransport struct {
}
func NewYggdrasilTransport(log *log.Logger, sk ed25519.PrivateKey, pk ed25519.PublicKey, peers []string, mcast bool) (*YggdrasilTransport, error) {
config := &config.NodeConfig{
PublicKey: hex.EncodeToString(pk),
PrivateKey: hex.EncodeToString(sk),
Peers: peers,
MulticastInterfaces: []config.MulticastInterfaceConfig{
{
Regex: ".*",
Beacon: true,
Listen: true,
},
},
NodeInfo: map[string]interface{}{
"name": hex.EncodeToString(pk) + "@yggmail",
},
NodeInfoPrivacy: true,
}
yellow := color.New(color.FgYellow).SprintfFunc()
glog := gologme.New(log.Writer(), fmt.Sprintf("[ %s ] ", yellow("Yggdrasil")), gologme.LstdFlags|gologme.Lmsgprefix)
glog.EnableLevel("warn")
glog.EnableLevel("error")
glog.EnableLevel("info")
core := &core.Core{}
if err := core.Start(config, glog); err != nil {
return nil, fmt.Errorf("core.Start: %w", err)
}
if mcast {
multicast := &multicast.Multicast{}
if err := multicast.Init(core, config, glog, nil); err != nil {
return nil, fmt.Errorf("multicast.Init: %w", err)
var ygg *core.Core
var err error
// Setup the Yggdrasil node itself.
{
options := []core.SetupOption{
core.NodeInfo(map[string]interface{}{
"name": hex.EncodeToString(pk) + "@yggmail",
}),
core.NodeInfoPrivacy(true),
}
if err := multicast.Start(); err != nil {
return nil, fmt.Errorf("multicast.Start: %w", err)
for _, peer := range peers {
options = append(options, core.Peer{URI: peer})
}
if ygg, err = core.New(sk[:], glog, options...); err != nil {
panic(err)
}
}
us, err := utp.NewSocketFromPacketConnNoClose(core)
// Setup the multicast module.
{
options := []multicast.SetupOption{
multicast.MulticastInterface{
Regex: regexp.MustCompile(".*"),
Beacon: true,
Listen: true,
},
}
if _, err = multicast.New(ygg, glog, options...); err != nil {
panic(err)
}
}
us, err := utp.NewSocketFromPacketConnNoClose(ygg)
if err != nil {
return nil, fmt.Errorf("utp.NewSocketFromPacketConnNoClose: %w", err)
}