Send relay message

This commit is contained in:
Owen
2025-03-27 22:13:16 -04:00
parent 73bd036e58
commit aeb8f203a4
2 changed files with 22 additions and 0 deletions

View File

@@ -311,6 +311,18 @@ func keepSendingUDPHolePunch(endpoint string, olmID string, sourcePort uint16) {
}
}
func sendRelay(olm *websocket.Client) error {
err := olm.SendMessage("olm/wg/relay", map[string]interface{}{
"doIt": "now",
})
if err != nil {
logger.Error("Failed to send registration message: %v", err)
return err
}
logger.Info("Sent relay message")
return nil
}
func sendRegistration(olm *websocket.Client, publicKey string) error {
err := olm.SendMessage("olm/wg/register", map[string]interface{}{
"publicKey": publicKey,

10
main.go
View File

@@ -254,10 +254,18 @@ func main() {
}
})
connectTimes := 0
// Register handlers for different message types
olm.RegisterHandler("olm/wg/connect", func(msg websocket.WSMessage) {
logger.Info("Received message: %v", msg.Data)
if connectTimes > 0 {
logger.Info("Already connected. Ignoring new connection request.")
return
}
connectTimes++
close(stopRegister)
// if there is an existing tunnel then close it
@@ -422,6 +430,8 @@ persistent_keepalive_interval=1`, fixKey(privateKey.String()), fixKey(wgData.Pub
}
logger.Info("Adjusted to point to relay!")
sendRelay(olm)
})
logger.Info("WireGuard device created.")