Fix null pointer exception for observatory

Core setup router object first, when InjectContext() is called, observatory object is still null,
so observatory need to be injected after InjectContext()
pull/838/head
yuhan6665 2021-11-13 23:23:38 -05:00
parent d6ae4e9ba2
commit 7c240e8630
1 changed files with 7 additions and 4 deletions

View File

@ -15,14 +15,17 @@ type LeastPingStrategy struct {
}
func (l *LeastPingStrategy) InjectContext(ctx context.Context) {
common.Must(core.RequireFeatures(ctx, func(observatory extension.Observatory) error {
l.observatory = observatory
return nil
}))
l.ctx = ctx
}
func (l *LeastPingStrategy) PickOutbound(strings []string) string {
if l.observatory == nil {
common.Must(core.RequireFeatures(l.ctx, func(observatory extension.Observatory) error {
l.observatory = observatory
return nil
}))
}
observeReport, err := l.observatory.GetObservation(l.ctx)
if err != nil {
newError("cannot get observe report").Base(err).WriteToLog()