still testing yggdrasil

This commit is contained in:
Gregory Bednov 2025-07-17 13:42:18 +03:00
commit 92cd3ebffe
3 changed files with 113 additions and 12 deletions

View file

@ -3,6 +3,7 @@ package yggdrasil
import (
"context"
"io/fs"
"log"
"math/rand"
"net"
"net/url"
@ -64,9 +65,10 @@ func getPublicPeers() []url.URL {
}
var peers []url.URL
re := regexp.MustCompile(`(?m)^\s*(tcp|tls)://[^\s]+`)
re := regexp.MustCompile(`(?m)(tcp|tls)://[^\s` + "`" + `]+`)
filepath.WalkDir(tempDir, func(path string, d fs.DirEntry, err error) error {
if err != nil {
log.Printf("walk error: %v", err)
return nil
}
if d.IsDir() || !strings.HasSuffix(d.Name(), ".md") || d.Name() == "README.md" {
@ -77,7 +79,8 @@ func getPublicPeers() []url.URL {
return nil
}
for _, m := range re.FindAllStringSubmatch(string(data), -1) {
url, err := url.Parse(strings.TrimSpace(m[1]))
urlStr := strings.TrimSpace(m[0])
url, err := url.Parse(urlStr)
if err != nil {
panic(err)
}

View file

@ -82,12 +82,12 @@ func Yggdrasil(config *viper.Viper, ch chan string) {
cfg.AdminListen = ygg.GetString("admin_listen")
cfg.Listen = ygg.GetStringSlice("listen")
if ygg.GetString("peers") == "auto" {
publicPeers := getPublicPeers()
var urlsAsStrings []string
publicPeers := RandomPick(GetClosestPeers(getPublicPeers(), 20), 3)
var urls []string
for _, u := range publicPeers {
urlsAsStrings = append(urlsAsStrings, u.String())
urls = append(urls, u.String())
}
cfg.Peers = urlsAsStrings
cfg.Peers = urls
} else {
cfg.Peers = ygg.GetStringSlice("peers")
}
@ -284,5 +284,3 @@ func Yggdrasil(config *viper.Viper, ch chan string) {
}
n.core.Stop()
}