36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
|
//go:build plus && packet
|
|
|
|
package nodes
|
|
|
|
import (
|
|
"encoding/json"
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
|
networksecurity "github.com/TeaOSLab/EdgeNode/internal/network-security"
|
|
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
|
|
"github.com/TeaOSLab/EdgeNode/internal/rpc"
|
|
)
|
|
|
|
func (this *Node) execNetworkSecurityPolicyChangedTask(rpcClient *rpc.RPCClient) error {
|
|
remotelogs.Println("NODE", "updating network security policy ...")
|
|
resp, err := rpcClient.NodeRPC.FindNodeNetworkSecurityPolicy(rpcClient.Context(), &pb.FindNodeNetworkSecurityPolicyRequest{})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
var policy = nodeconfigs.NewNetworkSecurityPolicy()
|
|
if len(resp.NetworkSecurityPolicyJSON) > 0 {
|
|
err = json.Unmarshal(resp.NetworkSecurityPolicyJSON, policy)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
sharedNodeConfig.NetworkSecurityPolicy = policy
|
|
|
|
go networksecurity.SharedManager.Apply(policy)
|
|
|
|
return nil
|
|
}
|