mirror of
https://codeberg.org/cunicu/cunicu.git
synced 2025-10-06 01:06:59 +08:00
47 lines
717 B
Go
47 lines
717 B
Go
//go:build linux
|
|
|
|
package nodes
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
g "github.com/stv0g/gont/pkg"
|
|
)
|
|
|
|
type RelayList []RelayNode
|
|
|
|
func AddRelayNodes(n *g.Network, numNodes int, opts ...g.Option) (RelayList, error) {
|
|
nodes := RelayList{}
|
|
|
|
for i := 1; i <= numNodes; i++ {
|
|
node, err := NewCoturnNode(n, fmt.Sprintf("n%d", i))
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to create relay: %w", err)
|
|
}
|
|
|
|
nodes = append(nodes, node)
|
|
}
|
|
|
|
return nodes, nil
|
|
}
|
|
|
|
func (nl *RelayList) Start() error {
|
|
for _, n := range *nl {
|
|
if err := n.Start(); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (nl *RelayList) Stop() error {
|
|
for _, n := range *nl {
|
|
if err := n.Stop(); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|