addressing comments

This commit is contained in:
Yifan Gu 2019-06-17 11:55:30 -04:00 committed by Song Gao
parent aa5a321f82
commit 2ed58ad390
2 changed files with 21 additions and 10 deletions

View file

@ -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 {

View file

@ -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 {