From 2ed58ad3906640658b66ce9553d1015baa4aada4 Mon Sep 17 00:00:00 2001 From: Yifan Gu Date: Mon, 17 Jun 2019 11:55:30 -0400 Subject: [PATCH] addressing comments --- params_darwin.go | 13 ++++++++----- syscalls_darwin.go | 18 +++++++++++++----- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/params_darwin.go b/params_darwin.go index 0c5846b..5e6a5d6 100644 --- a/params_darwin.go +++ b/params_darwin.go @@ -1,11 +1,14 @@ package water +// MacOSDriverProvider enumerates possible MacOS TUN/TAP implementations +type MacOSDriverProvider int + const ( - // SystemDriver refers to the default P2P driver - SystemDriver = 0 - // TunTapOSXDriver refers to the third-party tuntaposx driver + // MacOSDriverSystem refers to the default P2P driver + MacOSDriverSystem MacOSDriverProvider = 0 + // MacOSDriverTunTapOSX refers to the third-party tuntaposx driver // see https://sourceforge.net/p/tuntaposx - TunTapOSXDriver = 1 + MacOSDriverTunTapOSX MacOSDriverProvider = 1 ) // PlatformSpecificParams defines parameters in Config that are specific to @@ -19,7 +22,7 @@ type PlatformSpecificParams struct { Name string // Driver should be set if an alternative driver is desired // e.g. TunTapOSXDriver - Driver int + Driver MacOSDriverProvider } func defaultPlatformSpecificParams() PlatformSpecificParams { diff --git a/syscalls_darwin.go b/syscalls_darwin.go index bfc1ca9..e59ea72 100644 --- a/syscalls_darwin.go +++ b/syscalls_darwin.go @@ -61,11 +61,17 @@ type sockaddrCtl struct { var sockaddrCtlSize uintptr = 32 func openDev(config Config) (ifce *Interface, err error) { - if config.Driver == TunTapOSXDriver { + if config.Driver == MacOSDriverTunTapOSX { 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 { 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") { 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") - } else if config.DeviceType != TAP && config.DeviceType != TUN { + } + if config.DeviceType != TAP && config.DeviceType != TUN { return nil, errors.New("unsupported DeviceType") } if len(config.Name) >= 15 {