111
Some checks failed
Build Multi-Platform Binaries / build-frontend (push) Successful in 1m7s
Build Multi-Platform Binaries / build-binaries (amd64, linux, client, true) (push) Successful in 1m33s
Build Multi-Platform Binaries / build-binaries (amd64, darwin, server, false) (push) Successful in 2m52s
Build Multi-Platform Binaries / build-binaries (amd64, windows, client, true) (push) Successful in 1m54s
Build Multi-Platform Binaries / build-binaries (amd64, linux, server, true) (push) Successful in 3m15s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, client, true) (push) Successful in 2m8s
Build Multi-Platform Binaries / build-binaries (amd64, windows, server, true) (push) Successful in 2m24s
Build Multi-Platform Binaries / build-binaries (arm64, darwin, server, false) (push) Successful in 2m46s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, server, true) (push) Successful in 3m33s
Build Multi-Platform Binaries / build-binaries (arm64, windows, server, false) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm64, linux, server, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm64, linux, client, true) (push) Has been cancelled
Some checks failed
Build Multi-Platform Binaries / build-frontend (push) Successful in 1m7s
Build Multi-Platform Binaries / build-binaries (amd64, linux, client, true) (push) Successful in 1m33s
Build Multi-Platform Binaries / build-binaries (amd64, darwin, server, false) (push) Successful in 2m52s
Build Multi-Platform Binaries / build-binaries (amd64, windows, client, true) (push) Successful in 1m54s
Build Multi-Platform Binaries / build-binaries (amd64, linux, server, true) (push) Successful in 3m15s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, client, true) (push) Successful in 2m8s
Build Multi-Platform Binaries / build-binaries (amd64, windows, server, true) (push) Successful in 2m24s
Build Multi-Platform Binaries / build-binaries (arm64, darwin, server, false) (push) Successful in 2m46s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, server, true) (push) Successful in 3m33s
Build Multi-Platform Binaries / build-binaries (arm64, windows, server, false) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm64, linux, server, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm64, linux, client, true) (push) Has been cancelled
This commit is contained in:
@@ -601,7 +601,6 @@ func (c *Client) handleJSPluginInstall(stream net.Conn, msg *protocol.Message) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.logf("[Client] JS plugin %s installed", req.PluginName)
|
c.logf("[Client] JS plugin %s installed", req.PluginName)
|
||||||
c.sendJSPluginResult(stream, req.PluginName, true, "")
|
|
||||||
|
|
||||||
// 保存版本信息(防止降级攻击)
|
// 保存版本信息(防止降级攻击)
|
||||||
if c.versionStore != nil {
|
if c.versionStore != nil {
|
||||||
@@ -611,10 +610,13 @@ func (c *Client) handleJSPluginInstall(stream net.Conn, msg *protocol.Message) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 自动启动
|
// 先启动插件,再发送安装结果
|
||||||
|
// 这样服务端收到结果后启动监听器时,客户端插件已经准备好了
|
||||||
if req.AutoStart {
|
if req.AutoStart {
|
||||||
c.startJSPlugin(jsPlugin, req)
|
c.startJSPlugin(jsPlugin, req)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c.sendJSPluginResult(stream, req.PluginName, true, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
// sendJSPluginResult 发送 JS 插件安装结果
|
// sendJSPluginResult 发送 JS 插件安装结果
|
||||||
|
|||||||
@@ -1607,13 +1607,15 @@ func (s *Server) reinstallJSPlugin(clientID, pluginName, ruleName string) error
|
|||||||
return fmt.Errorf("client not found: %w", err)
|
return fmt.Errorf("client not found: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 合并配置
|
// 合并配置并获取 PluginID
|
||||||
config := jsPlugin.Config
|
config := jsPlugin.Config
|
||||||
if config == nil {
|
if config == nil {
|
||||||
config = make(map[string]string)
|
config = make(map[string]string)
|
||||||
}
|
}
|
||||||
|
var pluginID string
|
||||||
for _, cp := range client.Plugins {
|
for _, cp := range client.Plugins {
|
||||||
if cp.Name == pluginName {
|
if cp.Name == pluginName {
|
||||||
|
pluginID = cp.ID
|
||||||
for k, v := range cp.Config {
|
for k, v := range cp.Config {
|
||||||
config[k] = v
|
config[k] = v
|
||||||
}
|
}
|
||||||
@@ -1621,9 +1623,10 @@ func (s *Server) reinstallJSPlugin(clientID, pluginName, ruleName string) error
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("[Server] Reinstalling JS plugin %s to client %s", pluginName, clientID)
|
log.Printf("[Server] Reinstalling JS plugin %s (ID: %s) to client %s", pluginName, pluginID, clientID)
|
||||||
|
|
||||||
req := router.JSPluginInstallRequest{
|
req := router.JSPluginInstallRequest{
|
||||||
|
PluginID: pluginID,
|
||||||
PluginName: pluginName,
|
PluginName: pluginName,
|
||||||
Source: jsPlugin.Source,
|
Source: jsPlugin.Source,
|
||||||
Signature: jsPlugin.Signature,
|
Signature: jsPlugin.Signature,
|
||||||
|
|||||||
Reference in New Issue
Block a user