subnet_router_wrapper.go 613 B

12345678910111213141516171819202122232425262728
  1. // Copyright (c) Tailscale Inc & AUTHORS
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. package netstack
  4. import (
  5. "tailscale.com/wgengine/router"
  6. )
  7. type subnetRouter struct {
  8. router.Router
  9. }
  10. // NewSubnetRouterWrapper returns a Router wrapper that prevents the
  11. // underlying Router r from seeing any advertised subnet routes, as
  12. // netstack will handle them instead.
  13. func NewSubnetRouterWrapper(r router.Router) router.Router {
  14. return &subnetRouter{
  15. Router: r,
  16. }
  17. }
  18. func (r *subnetRouter) Set(c *router.Config) error {
  19. if c != nil {
  20. c.SubnetRoutes = nil // netstack will handle
  21. }
  22. return r.Router.Set(c)
  23. }