From 8c99e62a6cadf2494d7b9a9e6dee4176ae4ec48b Mon Sep 17 00:00:00 2001 From: ben-toogood Date: Wed, 30 Sep 2020 14:53:08 +0100 Subject: [PATCH] router/static: implement noop watcher (#2031) * router/static: implement noop watcher * proxy/mucp: handle nil watcher --- static.go | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/static.go b/static.go index 0030c3f..62cae16 100644 --- a/static.go +++ b/static.go @@ -63,8 +63,11 @@ func (s *static) Lookup(service string, opts ...router.LookupOption) ([]router.R }, nil } +// Watch will return a noop watcher func (s *static) Watch(opts ...router.WatchOption) (router.Watcher, error) { - return nil, nil + return &watcher{ + events: make(chan *router.Event), + }, nil } func (s *static) Close() error { @@ -74,3 +77,24 @@ func (s *static) Close() error { func (s *static) String() string { return "static" } + +// watcher is a noop implementation +type watcher struct { + events chan *router.Event +} + +// Next is a blocking call that returns watch result +func (w *watcher) Next() (*router.Event, error) { + e := <-w.events + return e, nil +} + +// Chan returns event channel +func (w *watcher) Chan() (<-chan *router.Event, error) { + return w.events, nil +} + +// Stop stops watcher +func (w *watcher) Stop() { + return +}