Fix base path not applied to local rule-sets

This commit is contained in:
世界 2024-10-05 09:28:58 +08:00
parent 95606191d8
commit 9415444ebd
No known key found for this signature in database
GPG Key ID: CD109927C34A63C4
2 changed files with 5 additions and 4 deletions

View File

@ -18,7 +18,7 @@ import (
func NewRuleSet(ctx context.Context, router adapter.Router, logger logger.ContextLogger, options option.RuleSet) (adapter.RuleSet, error) {
switch options.Type {
case C.RuleSetTypeLocal:
return NewLocalRuleSet(router, options)
return NewLocalRuleSet(ctx, router, options)
case C.RuleSetTypeRemote:
return NewRemoteRuleSet(ctx, router, logger, options), nil
default:

View File

@ -12,6 +12,7 @@ import (
E "github.com/sagernet/sing/common/exceptions"
F "github.com/sagernet/sing/common/format"
"github.com/sagernet/sing/common/json"
"github.com/sagernet/sing/service/filemanager"
)
var _ adapter.RuleSet = (*LocalRuleSet)(nil)
@ -21,11 +22,11 @@ type LocalRuleSet struct {
metadata adapter.RuleSetMetadata
}
func NewLocalRuleSet(router adapter.Router, options option.RuleSet) (*LocalRuleSet, error) {
func NewLocalRuleSet(ctx context.Context, router adapter.Router, options option.RuleSet) (*LocalRuleSet, error) {
var plainRuleSet option.PlainRuleSet
switch options.Format {
case C.RuleSetFormatSource, "":
content, err := os.ReadFile(options.LocalOptions.Path)
content, err := os.ReadFile(filemanager.BasePath(ctx, options.LocalOptions.Path))
if err != nil {
return nil, err
}
@ -35,7 +36,7 @@ func NewLocalRuleSet(router adapter.Router, options option.RuleSet) (*LocalRuleS
}
plainRuleSet = compat.Upgrade()
case C.RuleSetFormatBinary:
setFile, err := os.Open(options.LocalOptions.Path)
setFile, err := os.Open(filemanager.BasePath(ctx, options.LocalOptions.Path))
if err != nil {
return nil, err
}