Skip to content

Commit

Permalink
Fix: provider filter potential panic
Browse files Browse the repository at this point in the history
  • Loading branch information
Dreamacro committed Nov 21, 2021
1 parent 1401a82 commit b1bed76
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
2 changes: 1 addition & 1 deletion adapter/provider/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,5 @@ func ParseProxyProvider(name string, mapping map[string]interface{}) (types.Prox

interval := time.Duration(uint(schema.Interval)) * time.Second
filter := schema.Filter
return NewProxySetProvider(name, interval, filter, vehicle, hc), nil
return NewProxySetProvider(name, interval, filter, vehicle, hc)
}
8 changes: 6 additions & 2 deletions adapter/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,11 @@ func stopProxyProvider(pd *ProxySetProvider) {
pd.fetcher.Destroy()
}

func NewProxySetProvider(name string, interval time.Duration, filter string, vehicle types.Vehicle, hc *HealthCheck) *ProxySetProvider {
func NewProxySetProvider(name string, interval time.Duration, filter string, vehicle types.Vehicle, hc *HealthCheck) (*ProxySetProvider, error) {
if _, err := regexp.Compile(filter); err != nil {
return nil, fmt.Errorf("invalid filter regex: %w", err)
}

if hc.auto() {
go hc.process()
}
Expand Down Expand Up @@ -150,7 +154,7 @@ func NewProxySetProvider(name string, interval time.Duration, filter string, veh

wrapper := &ProxySetProvider{pd}
runtime.SetFinalizer(wrapper, stopProxyProvider)
return wrapper
return wrapper, nil
}

// for auto gc
Expand Down

0 comments on commit b1bed76

Please sign in to comment.