mirror of
https://github.com/shtorm-7/sing-box-extended.git
synced 2026-06-28 05:02:43 +03:00
Add admin panel, manager, node_manager, bandwidth limiter, connection limiter, bonding, failover, vless encryption, mkcp transport
This commit is contained in:
@@ -30,7 +30,9 @@ type Router struct {
|
||||
dnsTransport adapter.DNSTransportManager
|
||||
connection adapter.ConnectionManager
|
||||
network adapter.NetworkManager
|
||||
defaultOutbound adapter.Outbound
|
||||
rules []adapter.Rule
|
||||
final string
|
||||
needFindProcess bool
|
||||
ruleSets []adapter.RuleSet
|
||||
ruleSetMap map[string]adapter.RuleSet
|
||||
@@ -53,6 +55,7 @@ func NewRouter(ctx context.Context, logFactory log.Factory, options option.Route
|
||||
connection: service.FromContext[adapter.ConnectionManager](ctx),
|
||||
network: service.FromContext[adapter.NetworkManager](ctx),
|
||||
rules: make([]adapter.Rule, 0, len(options.Rules)),
|
||||
final: options.Final,
|
||||
ruleSetMap: make(map[string]adapter.RuleSet),
|
||||
needFindProcess: hasRule(options.Rules, isProcessRule) || hasDNSRule(dnsOptions.Rules, isProcessDNSRule) || options.FindProcess,
|
||||
pauseManager: service.FromContext[pause.Manager](ctx),
|
||||
@@ -159,6 +162,15 @@ func (r *Router) Start(stage adapter.StartStage) error {
|
||||
return E.Cause(err, "post start rule_set[", ruleSet.Name(), "]")
|
||||
}
|
||||
}
|
||||
if r.final != "" {
|
||||
defaultOutbound, loaded := r.outbound.Outbound(r.final)
|
||||
if !loaded {
|
||||
return E.New("outbound not found: ", r.final)
|
||||
}
|
||||
r.defaultOutbound = defaultOutbound
|
||||
} else {
|
||||
r.defaultOutbound = r.outbound.Default()
|
||||
}
|
||||
r.started = true
|
||||
return nil
|
||||
case adapter.StartStateStarted:
|
||||
|
||||
Reference in New Issue
Block a user