update
All checks were successful
Build Multi-Platform Binaries / build-frontend (push) Successful in 29s
Build Multi-Platform Binaries / build-binaries (amd64, darwin, server, false) (push) Successful in 49s
Build Multi-Platform Binaries / build-binaries (amd64, linux, client, true) (push) Successful in 34s
Build Multi-Platform Binaries / build-binaries (amd64, linux, server, true) (push) Successful in 59s
Build Multi-Platform Binaries / build-binaries (amd64, windows, client, true) (push) Successful in 34s
Build Multi-Platform Binaries / build-binaries (amd64, windows, server, true) (push) Successful in 55s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, client, true) (push) Successful in 37s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, server, true) (push) Successful in 1m7s
Build Multi-Platform Binaries / build-binaries (arm64, darwin, server, false) (push) Successful in 50s
Build Multi-Platform Binaries / build-binaries (arm64, linux, client, true) (push) Successful in 33s
Build Multi-Platform Binaries / build-binaries (arm64, linux, server, true) (push) Successful in 59s
Build Multi-Platform Binaries / build-binaries (arm64, windows, server, false) (push) Successful in 52s

This commit is contained in:
Flik
2025-12-29 14:24:46 +08:00
parent c728cc3bb7
commit e10736e05e
23 changed files with 591 additions and 910 deletions

View File

@@ -3,14 +3,27 @@ package builtin
import "github.com/gotunnel/pkg/plugin"
// 全局插件注册表
var registry []plugin.ProxyHandler
var (
serverPlugins []plugin.ProxyHandler
clientPlugins []plugin.ClientHandler
)
// Register 插件自注册函数,由各插件的 init() 调用
// Register 注册服务端插件
func Register(handler plugin.ProxyHandler) {
registry = append(registry, handler)
serverPlugins = append(serverPlugins, handler)
}
// GetAll 返回所有已注册的内置插件
func GetAll() []plugin.ProxyHandler {
return registry
// RegisterClientPlugin 注册客户端插件
func RegisterClientPlugin(handler plugin.ClientHandler) {
clientPlugins = append(clientPlugins, handler)
}
// GetAll 返回所有服务端插件
func GetAll() []plugin.ProxyHandler {
return serverPlugins
}
// GetAllClientPlugins 返回所有客户端插件
func GetAllClientPlugins() []plugin.ClientHandler {
return clientPlugins
}