DoSyncSNIProxy 把完整 SNI 代理配置推给 manager 热更新。
(req sniproxy.ManagerConfig)
| 19 | |
| 20 | // DoSyncSNIProxy 把完整 SNI 代理配置推给 manager 热更新。 |
| 21 | func (a *API) DoSyncSNIProxy(req sniproxy.ManagerConfig) (SNIProxySyncResponse, error) { |
| 22 | if a.sniManager == nil { |
| 23 | return SNIProxySyncResponse{}, ErrSNIProxyNotConfigured |
| 24 | } |
| 25 | log.Printf("sniproxy apply: listen=%q routes=%d cf_token_set=%v", |
| 26 | req.Listen, len(req.Routes), req.CloudflareToken != "") |
| 27 | if err := a.sniManager.Apply(req); err != nil { |
| 28 | return SNIProxySyncResponse{}, err |
| 29 | } |
| 30 | return SNIProxySyncResponse{ |
| 31 | Listen: req.Listen, |
| 32 | Routes: len(req.Routes), |
| 33 | Managed: a.sniManager.Config().Listen != "", |
| 34 | }, nil |
| 35 | } |
| 36 | |
| 37 | // DoSNIProxyStatus 返回当前 SNI 代理状态摘要。脱敏 cloudflare token。 |
| 38 | func (a *API) DoSNIProxyStatus() map[string]any { |