mirror of
https://github.com/yggdrasil-network/water.git
synced 2025-05-19 16:35:10 +03:00
addressing comments
This commit is contained in:
parent
aa5a321f82
commit
2ed58ad390
2 changed files with 21 additions and 10 deletions
|
@ -1,11 +1,14 @@
|
||||||
package water
|
package water
|
||||||
|
|
||||||
|
// MacOSDriverProvider enumerates possible MacOS TUN/TAP implementations
|
||||||
|
type MacOSDriverProvider int
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// SystemDriver refers to the default P2P driver
|
// MacOSDriverSystem refers to the default P2P driver
|
||||||
SystemDriver = 0
|
MacOSDriverSystem MacOSDriverProvider = 0
|
||||||
// TunTapOSXDriver refers to the third-party tuntaposx driver
|
// MacOSDriverTunTapOSX refers to the third-party tuntaposx driver
|
||||||
// see https://sourceforge.net/p/tuntaposx
|
// see https://sourceforge.net/p/tuntaposx
|
||||||
TunTapOSXDriver = 1
|
MacOSDriverTunTapOSX MacOSDriverProvider = 1
|
||||||
)
|
)
|
||||||
|
|
||||||
// PlatformSpecificParams defines parameters in Config that are specific to
|
// PlatformSpecificParams defines parameters in Config that are specific to
|
||||||
|
@ -19,7 +22,7 @@ type PlatformSpecificParams struct {
|
||||||
Name string
|
Name string
|
||||||
// Driver should be set if an alternative driver is desired
|
// Driver should be set if an alternative driver is desired
|
||||||
// e.g. TunTapOSXDriver
|
// e.g. TunTapOSXDriver
|
||||||
Driver int
|
Driver MacOSDriverProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
func defaultPlatformSpecificParams() PlatformSpecificParams {
|
func defaultPlatformSpecificParams() PlatformSpecificParams {
|
||||||
|
|
|
@ -61,11 +61,17 @@ type sockaddrCtl struct {
|
||||||
var sockaddrCtlSize uintptr = 32
|
var sockaddrCtlSize uintptr = 32
|
||||||
|
|
||||||
func openDev(config Config) (ifce *Interface, err error) {
|
func openDev(config Config) (ifce *Interface, err error) {
|
||||||
if config.Driver == TunTapOSXDriver {
|
if config.Driver == MacOSDriverTunTapOSX {
|
||||||
return openDevTunTapOSX(config)
|
return openDevTunTapOSX(config)
|
||||||
} else if config.Driver != SystemDriver {
|
|
||||||
return nil, errors.New("unrecognized driver")
|
|
||||||
}
|
}
|
||||||
|
if config.Driver == MacOSDriverSystem {
|
||||||
|
return openDevSystem(config)
|
||||||
|
}
|
||||||
|
return nil, errors.New("unrecognized driver")
|
||||||
|
}
|
||||||
|
|
||||||
|
// openDevSystem opens tun device on system
|
||||||
|
func openDevSystem(config Config) (ifce *Interface, err error) {
|
||||||
if config.DeviceType != TUN {
|
if config.DeviceType != TUN {
|
||||||
return nil, errors.New("only tun is implemented for SystemDriver, use TunTapOSXDriver for tap")
|
return nil, errors.New("only tun is implemented for SystemDriver, use TunTapOSXDriver for tap")
|
||||||
}
|
}
|
||||||
|
@ -140,9 +146,11 @@ func openDevTunTapOSX(config Config) (ifce *Interface, err error) {
|
||||||
|
|
||||||
if config.DeviceType == TAP && !strings.HasPrefix(config.Name, "tap") {
|
if config.DeviceType == TAP && !strings.HasPrefix(config.Name, "tap") {
|
||||||
return nil, errors.New("device name does not start with tap when creating a tap device")
|
return nil, errors.New("device name does not start with tap when creating a tap device")
|
||||||
} else if config.DeviceType == TUN && !strings.HasPrefix(config.Name, "tun") {
|
}
|
||||||
|
if config.DeviceType == TUN && !strings.HasPrefix(config.Name, "tun") {
|
||||||
return nil, errors.New("device name does not start with tun when creating a tun device")
|
return nil, errors.New("device name does not start with tun when creating a tun device")
|
||||||
} else if config.DeviceType != TAP && config.DeviceType != TUN {
|
}
|
||||||
|
if config.DeviceType != TAP && config.DeviceType != TUN {
|
||||||
return nil, errors.New("unsupported DeviceType")
|
return nil, errors.New("unsupported DeviceType")
|
||||||
}
|
}
|
||||||
if len(config.Name) >= 15 {
|
if len(config.Name) >= 15 {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue