From ef91d836eb7961c40f23bd8fa98613c156e77edd Mon Sep 17 00:00:00 2001 From: Milos Gajdos Date: Thu, 12 Sep 2019 12:18:43 +0100 Subject: [PATCH] Implement Solicit method for handler.Router --- router/handler/router.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/router/handler/router.go b/router/handler/router.go index ac05f012..5e4bceb7 100644 --- a/router/handler/router.go +++ b/router/handler/router.go @@ -45,6 +45,16 @@ func (r *Router) Lookup(ctx context.Context, req *pb.LookupRequest, resp *pb.Loo return nil } +// Solicit triggers full routing table advertisement +func (r *Router) Solicit(ctx context.Context, req *pb.Request, resp *pb.Response) error { + if err := r.Router.Solicit(); err != nil { + return err + } + + return nil +} + +// Advertise streams router advertisements func (r *Router) Advertise(ctx context.Context, req *pb.Request, stream pb.Router_AdvertiseStream) error { advertChan, err := r.Router.Advertise() if err != nil { @@ -91,6 +101,7 @@ func (r *Router) Advertise(ctx context.Context, req *pb.Request, stream pb.Route return nil } +// Process processes advertisements func (r *Router) Process(ctx context.Context, req *pb.Advert, rsp *pb.ProcessResponse) error { events := make([]*router.Event, len(req.Events)) for i, event := range req.Events { @@ -126,6 +137,7 @@ func (r *Router) Process(ctx context.Context, req *pb.Advert, rsp *pb.ProcessRes return nil } +// Status returns router status func (r *Router) Status(ctx context.Context, req *pb.Request, rsp *pb.StatusResponse) error { status := r.Router.Status()