mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 04:50:52 +08:00
- Added support for incremental auth updates using `AuthUpdate` and `AuthUpdateAction`. - Integrated `SetAuthUpdateQueue` to propagate updates through a dedicated channel. - Introduced new methods for handling auth add, modify, and delete actions. - Updated service to ensure auth update queues are correctly initialized and consumed. - Improved auth state synchronization across core and file-based clients with real-time updates. - Refactored redundant auth handling logic for better efficiency and maintainability.
33 lines
827 B
Go
33 lines
827 B
Go
package cliproxy
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/router-for-me/CLIProxyAPI/v6/internal/config"
|
|
"github.com/router-for-me/CLIProxyAPI/v6/internal/watcher"
|
|
coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
|
|
)
|
|
|
|
func defaultWatcherFactory(configPath, authDir string, reload func(*config.Config)) (*WatcherWrapper, error) {
|
|
w, err := watcher.NewWatcher(configPath, authDir, reload)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &WatcherWrapper{
|
|
start: func(ctx context.Context) error {
|
|
return w.Start(ctx)
|
|
},
|
|
stop: func() error {
|
|
return w.Stop()
|
|
},
|
|
setConfig: func(cfg *config.Config) {
|
|
w.SetConfig(cfg)
|
|
},
|
|
snapshotAuths: func() []*coreauth.Auth { return w.SnapshotCoreAuths() },
|
|
setUpdateQueue: func(queue chan<- watcher.AuthUpdate) {
|
|
w.SetAuthUpdateQueue(queue)
|
|
},
|
|
}, nil
|
|
}
|