add router handler & connector
This commit is contained in:
+5
-3
@@ -250,10 +250,11 @@ func (p *localRouter) Close() error {
|
||||
}
|
||||
|
||||
func ParseRoute(dst string, gateway string) *router.Route {
|
||||
_, ipNet, _ := net.ParseCIDR(dst)
|
||||
if ipNet == nil {
|
||||
if dst == "" {
|
||||
return nil
|
||||
}
|
||||
_, ipNet, _ := net.ParseCIDR(dst)
|
||||
|
||||
gw := net.ParseIP(gateway)
|
||||
if gw == nil {
|
||||
return nil
|
||||
@@ -261,6 +262,7 @@ func ParseRoute(dst string, gateway string) *router.Route {
|
||||
|
||||
return &router.Route{
|
||||
Net: ipNet,
|
||||
Gateway: gw,
|
||||
Dst: dst,
|
||||
Gateway: gateway,
|
||||
}
|
||||
}
|
||||
|
||||
+10
-1
@@ -2,6 +2,7 @@ package router
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
|
||||
"github.com/go-gost/core/router"
|
||||
"github.com/vishvananda/netlink"
|
||||
@@ -9,10 +10,18 @@ import (
|
||||
|
||||
func (p *localRouter) setSysRoutes(routes ...*router.Route) error {
|
||||
for _, route := range routes {
|
||||
if route.Net == nil {
|
||||
continue
|
||||
}
|
||||
gw := net.ParseIP(route.Gateway)
|
||||
if gw == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
p.options.logger.Debugf("ip route replace %s via %s", route.Net, route.Gateway)
|
||||
r := netlink.Route{
|
||||
Dst: route.Net,
|
||||
Gw: route.Gateway,
|
||||
Gw: gw,
|
||||
}
|
||||
if err := netlink.RouteReplace(&r); err != nil {
|
||||
return fmt.Errorf("set route %v %v: %v", r.Dst, r.Gw, err)
|
||||
|
||||
Reference in New Issue
Block a user