feat: support custom ComponentID for Windows TAP device configuration
This commit is contained in:
@@ -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
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user