Update router querying method (#834)

* Add address to router query options. Drop Query interface for QueryOptions

* Cleanup isMatch function

* Update network proto
This commit is contained in:
Asim Aslam
2019-10-09 17:13:52 +01:00
committed by GitHub
parent 107b7419b7
commit fe94237448
15 changed files with 249 additions and 122 deletions

View File

@@ -443,8 +443,8 @@ func (n *network) announce(client transport.Client) {
}
// pruneRoutes prunes routes return by given query
func (n *network) pruneRoutes(q router.Query) error {
routes, err := n.router.Table().Query(q)
func (n *network) pruneRoutes(q ...router.QueryOption) error {
routes, err := n.router.Table().Query(q...)
if err != nil && err != router.ErrRouteNotFound {
return err
}
@@ -461,18 +461,18 @@ func (n *network) pruneRoutes(q router.Query) error {
// pruneNodeRoutes prunes routes that were either originated by or routable via given node
func (n *network) prunePeerRoutes(peer *node) error {
// lookup all routes originated by router
q := router.NewQuery(
q := []router.QueryOption{
router.QueryRouter(peer.id),
)
if err := n.pruneRoutes(q); err != nil {
}
if err := n.pruneRoutes(q...); err != nil {
return err
}
// lookup all routes routable via gw
q = router.NewQuery(
q = []router.QueryOption{
router.QueryGateway(peer.id),
)
if err := n.pruneRoutes(q); err != nil {
}
if err := n.pruneRoutes(q...); err != nil {
return err
}