This commit is contained in:
2026-08-27 19:41:00 +03:00
parent de0e8f8ad3
commit 0d80f575c1
389 changed files with 183499 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
package discovery
import (
"context"
"net"
"strings"
"time"
)
func Serve(ctx context.Context, port int, grpcAddr string) error {
conn, err := net.ListenUDP("udp4", &net.UDPAddr{IP: net.IPv4zero, Port: port})
if err != nil {
return err
}
defer conn.Close()
buf := make([]byte, 256)
for {
if err := conn.SetReadDeadline(time.Now().Add(time.Second)); err != nil {
return err
}
n, remote, err := conn.ReadFromUDP(buf)
if err != nil {
if ne, ok := err.(net.Error); ok && ne.Timeout() {
select {
case <-ctx.Done():
return nil
default:
continue
}
}
return err
}
if strings.TrimSpace(string(buf[:n])) != requestMagic {
continue
}
_, _ = conn.WriteToUDP([]byte(responsePrefix+grpcAddr), remote)
}
}