feat: support custom ComponentID for Windows TAP device configuration

This commit is contained in:
eWloYW8
2025-09-21 15:14:27 +08:00
committed by ginuerzh
parent 1c1f092a14
commit eae322c7ba
3 changed files with 22 additions and 16 deletions
+6 -5
View File
@@ -8,9 +8,10 @@ type Route struct {
Gateway net.IP Gateway net.IP
} }
type Config struct { type Config struct {
Name string Name string
Net string Net string
MTU int MTU int
Gateway string Gateway string
Routes []Route ComponentID string
Routes []Route
} }
+15 -10
View File
@@ -19,23 +19,28 @@ type metadata struct {
func (l *tapListener) parseMetadata(md mdata.Metadata) (err error) { func (l *tapListener) parseMetadata(md mdata.Metadata) (err error) {
const ( const (
name = "name" name = "name"
netKey = "net" netKey = "net"
mtu = "mtu" mtu = "mtu"
route = "route" route = "route"
routes = "routes" routes = "routes"
gateway = "gw" gateway = "gw"
componentID = "componentID"
) )
config := &tap_util.Config{ config := &tap_util.Config{
Name: mdutil.GetString(md, name), Name: mdutil.GetString(md, name),
Net: mdutil.GetString(md, netKey), Net: mdutil.GetString(md, netKey),
MTU: mdutil.GetInt(md, mtu), MTU: mdutil.GetInt(md, mtu),
Gateway: mdutil.GetString(md, gateway), Gateway: mdutil.GetString(md, gateway),
ComponentID: mdutil.GetString(md, componentID),
} }
if config.MTU <= 0 { if config.MTU <= 0 {
config.MTU = DefaultMTU config.MTU = DefaultMTU
} }
if config.ComponentID == "" {
config.ComponentID = "tap0901"
}
gw := net.ParseIP(config.Gateway) gw := net.ParseIP(config.Gateway)
+1 -1
View File
@@ -17,7 +17,7 @@ func (l *tapListener) createTap() (dev io.ReadWriteCloser, name string, ip net.I
ifce, err := water.New(water.Config{ ifce, err := water.New(water.Config{
DeviceType: water.TAP, DeviceType: water.TAP,
PlatformSpecificParams: water.PlatformSpecificParams{ PlatformSpecificParams: water.PlatformSpecificParams{
ComponentID: "tap0901", ComponentID: l.md.config.ComponentID,
InterfaceName: l.md.config.Name, InterfaceName: l.md.config.Name,
Network: l.md.config.Net, Network: l.md.config.Net,
}, },