mirror of
https://gitclone.com/github.com/MetaCubeX/Clash.Meta
synced 2025-04-28 14:18:04 +08:00
Fix: provider fallback should reparse proxies
This commit is contained in:
parent
609869bf5a
commit
9eaca6e4ab
@ -114,10 +114,12 @@ func (pp *ProxySetProvider) Destroy() error {
|
|||||||
func (pp *ProxySetProvider) Initial() error {
|
func (pp *ProxySetProvider) Initial() error {
|
||||||
var buf []byte
|
var buf []byte
|
||||||
var err error
|
var err error
|
||||||
|
var isLocal bool
|
||||||
if stat, err := os.Stat(pp.vehicle.Path()); err == nil {
|
if stat, err := os.Stat(pp.vehicle.Path()); err == nil {
|
||||||
buf, err = ioutil.ReadFile(pp.vehicle.Path())
|
buf, err = ioutil.ReadFile(pp.vehicle.Path())
|
||||||
modTime := stat.ModTime()
|
modTime := stat.ModTime()
|
||||||
pp.updatedAt = &modTime
|
pp.updatedAt = &modTime
|
||||||
|
isLocal = true
|
||||||
} else {
|
} else {
|
||||||
buf, err = pp.vehicle.Read()
|
buf, err = pp.vehicle.Read()
|
||||||
}
|
}
|
||||||
@ -128,11 +130,20 @@ func (pp *ProxySetProvider) Initial() error {
|
|||||||
|
|
||||||
proxies, err := pp.parse(buf)
|
proxies, err := pp.parse(buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if !isLocal {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// parse local file error, fallback to remote
|
// parse local file error, fallback to remote
|
||||||
buf, err = pp.vehicle.Read()
|
buf, err = pp.vehicle.Read()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proxies, err = pp.parse(buf)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := ioutil.WriteFile(pp.vehicle.Path(), buf, fileMode); err != nil {
|
if err := ioutil.WriteFile(pp.vehicle.Path(), buf, fileMode); err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user