From 287dd25964300022c2cd14021e836e090119b626 Mon Sep 17 00:00:00 2001 From: ginuerzh Date: Thu, 12 May 2022 18:41:40 +0800 Subject: [PATCH] fix tun route option --- listener/tun/metadata.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/listener/tun/metadata.go b/listener/tun/metadata.go index 055128a..0754aae 100644 --- a/listener/tun/metadata.go +++ b/listener/tun/metadata.go @@ -23,6 +23,7 @@ func (l *tunListener) parseMetadata(md mdata.Metadata) (err error) { netKey = "net" peer = "peer" mtu = "mtu" + route = "route" routes = "routes" gateway = "gw" ) @@ -40,6 +41,18 @@ func (l *tunListener) parseMetadata(md mdata.Metadata) (err error) { gw := net.ParseIP(config.Gateway) + for _, s := range strings.Split(mdx.GetString(md, route), ",") { + var route tun_util.Route + _, ipNet, _ := net.ParseCIDR(strings.TrimSpace(s)) + if ipNet == nil { + continue + } + route.Net = *ipNet + route.Gateway = gw + + config.Routes = append(config.Routes, route) + } + for _, s := range mdx.GetStrings(md, routes) { ss := strings.SplitN(s, " ", 2) if len(ss) == 2 {