From 125b7cc899ec4cd622405c75a0416eced1eaaf1d Mon Sep 17 00:00:00 2001 From: Regstar2 Date: Thu, 3 Sep 2026 20:01:55 +0300 Subject: [PATCH 1/2] fix: authenticate non-config DTLS workers --- core/protocol.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/protocol.go b/core/protocol.go index ab81268f..77471f15 100644 --- a/core/protocol.go +++ b/core/protocol.go @@ -44,3 +44,12 @@ func RequestConfig(conn net.Conn, localPort, deviceID, password string) (string, return resp, nil } + +// SendAuth авторизует рабочую DTLS-сессию, которая не запрашивает WireGuard-конфиг. +func SendAuth(conn net.Conn, deviceID, password string) error { + payload := fmt.Sprintf("AUTH:%s|%s", deviceID, password) + if _, err := conn.Write([]byte(payload)); err != nil { + return fmt.Errorf("отправка AUTH: %w", err) + } + return nil +} From 645d1bdefd53fd0daa75eb8334d3001c4e58a356 Mon Sep 17 00:00:00 2001 From: Regstar2 Date: Thu, 3 Sep 2026 20:02:45 +0300 Subject: [PATCH 2/2] fix: send AUTH on worker sessions --- core/session.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/session.go b/core/session.go index aebcb167..41fd8a65 100644 --- a/core/session.go +++ b/core/session.go @@ -380,6 +380,10 @@ func RunSession( } else { log.Printf("[ВОРКЕР #%d] Сервер ещё не выдал WireGuard-конфиг, повторим позже", sessionID) } + } else { + if authErr := SendAuth(dtlsConn, deviceID, password); authErr != nil { + log.Printf("[ВОРКЕР #%d] Ошибка авторизации: %v", sessionID, authErr) + } } emitReady()