@@ -13,6 +13,7 @@ import (
13
13
14
14
"github.com/devilcove/httpclient"
15
15
mqtt "github.com/eclipse/paho.mqtt.golang"
16
+ "github.com/gravitl/netclient/auth"
16
17
"github.com/gravitl/netclient/cache"
17
18
"github.com/gravitl/netclient/config"
18
19
"github.com/gravitl/netclient/daemon"
@@ -44,11 +45,22 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) {
44
45
slog .Info ("processing node update for network" , "network" , network )
45
46
node := config .GetNode (network )
46
47
server := config .Servers [node .Server ]
47
- data , err := decryptMsg ( server . Name , msg .Payload ())
48
+ data , err := decryptAESGCM ( config . Netclient (). TrafficKeyPublic [ 0 : 32 ] , msg .Payload ())
48
49
if err != nil {
49
- slog .Error ("error decrypting message" , "error" , err )
50
- return
50
+ slog .Warn ("error decrypting message" , "warn" , err )
51
+ data , err = decryptMsg (server .Name , msg .Payload ())
52
+ if err != nil {
53
+ slog .Error ("error decrypting message" , "error" , err )
54
+ return
55
+ }
56
+ } else {
57
+ data , err = unzipPayload (data )
58
+ if err != nil {
59
+ slog .Error ("error unzipping message" , "error" , err )
60
+ return
61
+ }
51
62
}
63
+
52
64
serverNode := models.Node {}
53
65
if err = json .Unmarshal ([]byte (data ), & serverNode ); err != nil {
54
66
slog .Error ("error unmarshalling node update data" , "error" , err )
@@ -148,11 +160,22 @@ func HostPeerUpdate(client mqtt.Client, msg mqtt.Message) {
148
160
return
149
161
}
150
162
slog .Info ("processing peer update for server" , "server" , serverName )
151
- data , err := decryptMsg ( serverName , msg .Payload ())
163
+ data , err := decryptAESGCM ( config . Netclient (). TrafficKeyPublic [ 0 : 32 ] , msg .Payload ())
152
164
if err != nil {
153
- slog .Error ("error decrypting message" , "error" , err )
154
- return
165
+ slog .Warn ("error decrypting message" , "warn" , err )
166
+ data , err = decryptMsg (server .Name , msg .Payload ())
167
+ if err != nil {
168
+ slog .Error ("error decrypting message" , "error" , err )
169
+ return
170
+ }
171
+ } else {
172
+ data , err = unzipPayload (data )
173
+ if err != nil {
174
+ slog .Error ("error unzipping message" , "error" , err )
175
+ return
176
+ }
155
177
}
178
+
156
179
err = json .Unmarshal ([]byte (data ), & peerUpdate )
157
180
if err != nil {
158
181
slog .Error ("error unmarshalling peer data" , "error" , err )
@@ -281,10 +304,20 @@ func HostUpdate(client mqtt.Client, msg mqtt.Message) {
281
304
if len (msg .Payload ()) == 0 {
282
305
return
283
306
}
284
- data , err := decryptMsg ( serverName , msg .Payload ())
307
+ data , err := decryptAESGCM ( config . Netclient (). TrafficKeyPublic [ 0 : 32 ] , msg .Payload ())
285
308
if err != nil {
286
- slog .Error ("error decrypting message" , "error" , err )
287
- return
309
+ slog .Warn ("error decrypting message" , "warn" , err )
310
+ data , err = decryptMsg (server .Name , msg .Payload ())
311
+ if err != nil {
312
+ slog .Error ("error decrypting message" , "error" , err )
313
+ return
314
+ }
315
+ } else {
316
+ data , err = unzipPayload (data )
317
+ if err != nil {
318
+ slog .Error ("error unzipping message" , "error" , err )
319
+ return
320
+ }
288
321
}
289
322
err = json .Unmarshal ([]byte (data ), & hostUpdate )
290
323
if err != nil {
@@ -606,6 +639,7 @@ func mqFallback(ctx context.Context, wg *sync.WaitGroup) {
606
639
}
607
640
// Call netclient http config pull
608
641
slog .Info ("### mqfallback routine execute" )
642
+ auth .CleanJwtToken ()
609
643
response , resetInterface , replacePeers , err := Pull (false )
610
644
if err != nil {
611
645
slog .Error ("pull failed" , "error" , err )
0 commit comments