From 9024aead607f879bccae9d9d909f8a8972d348e4 Mon Sep 17 00:00:00 2001 From: Yabin Ma Date: Tue, 10 Dec 2024 09:47:05 +0100 Subject: [PATCH] add back compatibility for encrypt message (#3246) --- mq/migrate.go | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/mq/migrate.go b/mq/migrate.go index ea36426a3..7919e829e 100644 --- a/mq/migrate.go +++ b/mq/migrate.go @@ -88,15 +88,32 @@ func SendPullSYN() error { Host: host, } msg, _ := json.Marshal(hostUpdate) - zipped, err := compressPayload(msg) + var encrypted []byte + var encryptErr error + vlt, err := logic.VersionLessThan(host.Version, "v0.30.0") if err != nil { - return err - } - encrypted, encryptErr := encryptAESGCM(host.TrafficKeyPublic[0:32], zipped) - - if encryptErr != nil { + slog.Warn("error checking version less than", "warn", err) continue } + if vlt { + encrypted, encryptErr = encryptMsg(&host, msg) + if encryptErr != nil { + slog.Warn("error encrypt with encryptMsg", "warn", encryptErr) + continue + } + } else { + zipped, err := compressPayload(msg) + if err != nil { + slog.Warn("error compressing message", "warn", err) + continue + } + encrypted, encryptErr = encryptAESGCM(host.TrafficKeyPublic[0:32], zipped) + if encryptErr != nil { + slog.Warn("error encrypt with encryptMsg", "warn", encryptErr) + continue + } + } + logger.Log(0, "sending pull syn to", host.Name) mqclient.Publish(fmt.Sprintf("host/update/%s/%s", hostUpdate.Host.ID.String(), servercfg.GetServer()), 0, true, encrypted) }