talos

Форк
0
32 строки · 744.0 Байт
1
// This Source Code Form is subject to the terms of the Mozilla Public
2
// License, v. 2.0. If a copy of the MPL was not distributed with this
3
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
4

5
package vm
6

7
import (
8
	"net"
9
	"time"
10

11
	"github.com/pin/tftp/v3"
12
	"golang.org/x/sync/errgroup"
13

14
	"github.com/siderolabs/talos/pkg/provision/providers/vm/internal/ipxe"
15
)
16

17
// TFTPd starts a TFTP server on the given IPs.
18
func TFTPd(ips []net.IP, nextHandler string) error {
19
	server := tftp.NewServer(ipxe.TFTPHandler(nextHandler), nil)
20

21
	server.SetTimeout(5 * time.Second)
22

23
	var eg errgroup.Group
24

25
	for _, ip := range ips {
26
		eg.Go(func() error {
27
			return server.ListenAndServe(net.JoinHostPort(ip.String(), "69"))
28
		})
29
	}
30

31
	return eg.Wait()
32
}
33

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.