diff --git a/internal/util/tap/config.go b/internal/util/tap/config.go index 42fafa5c..d14e0fb8 100644 --- a/internal/util/tap/config.go +++ b/internal/util/tap/config.go @@ -8,9 +8,10 @@ type Route struct { Gateway net.IP } type Config struct { - Name string - Net string - MTU int - Gateway string - Routes []Route + Name string + Net string + MTU int + Gateway string + ComponentID string + Routes []Route } diff --git a/listener/tap/metadata.go b/listener/tap/metadata.go index 4d826c06..45fa3cda 100644 --- a/listener/tap/metadata.go +++ b/listener/tap/metadata.go @@ -19,23 +19,28 @@ type metadata struct { func (l *tapListener) parseMetadata(md mdata.Metadata) (err error) { const ( - name = "name" - netKey = "net" - mtu = "mtu" - route = "route" - routes = "routes" - gateway = "gw" + name = "name" + netKey = "net" + mtu = "mtu" + route = "route" + routes = "routes" + gateway = "gw" + componentID = "componentID" ) config := &tap_util.Config{ - Name: mdutil.GetString(md, name), - Net: mdutil.GetString(md, netKey), - MTU: mdutil.GetInt(md, mtu), - Gateway: mdutil.GetString(md, gateway), + Name: mdutil.GetString(md, name), + Net: mdutil.GetString(md, netKey), + MTU: mdutil.GetInt(md, mtu), + Gateway: mdutil.GetString(md, gateway), + ComponentID: mdutil.GetString(md, componentID), } if config.MTU <= 0 { config.MTU = DefaultMTU } + if config.ComponentID == "" { + config.ComponentID = "tap0901" + } gw := net.ParseIP(config.Gateway) diff --git a/listener/tap/tap_windows.go b/listener/tap/tap_windows.go index 779e5446..b0973f4a 100644 --- a/listener/tap/tap_windows.go +++ b/listener/tap/tap_windows.go @@ -17,7 +17,7 @@ func (l *tapListener) createTap() (dev io.ReadWriteCloser, name string, ip net.I ifce, err := water.New(water.Config{ DeviceType: water.TAP, PlatformSpecificParams: water.PlatformSpecificParams{ - ComponentID: "tap0901", + ComponentID: l.md.config.ComponentID, InterfaceName: l.md.config.Name, Network: l.md.config.Net, },