mirror of
https://github.com/net-byte/water.git
synced 2024-04-21 12:21:38 +00:00
42 lines
1.7 KiB
Go
42 lines
1.7 KiB
Go
package water
|
|
|
|
// MacOSDriverProvider enumerates possible MacOS TUN/TAP implementations
|
|
type MacOSDriverProvider int
|
|
|
|
const (
|
|
// MacOSDriverSystem refers to the default P2P driver
|
|
MacOSDriverSystem MacOSDriverProvider = 0
|
|
// MacOSDriverTunTapOSX refers to the third-party tuntaposx driver
|
|
// see https://sourceforge.net/p/tuntaposx
|
|
MacOSDriverTunTapOSX MacOSDriverProvider = 1
|
|
)
|
|
|
|
// PlatformSpecificParams defines parameters in Config that are specific to
|
|
// macOS. A zero-value of such type is valid, yielding an interface
|
|
// with OS defined name.
|
|
// Currently it is not possible to set the interface name in macOS.
|
|
type PlatformSpecificParams struct {
|
|
// Name is the name for the interface to be used.
|
|
// For TunTapOSXDriver, it should be something like "tap0".
|
|
// For SystemDriver, the name should match `utun[0-9]+`, e.g. utun233
|
|
Name string
|
|
// Driver should be set if an alternative driver is desired
|
|
// e.g. TunTapOSXDriver
|
|
Driver MacOSDriverProvider
|
|
// Network is required when creating a TUN interface. The library will call
|
|
// net.ParseCIDR() to parse this string into LocalIP, RemoteNetaddr,
|
|
// RemoteNetmask. The underlying driver will need those to generate ARP
|
|
// response to Windows kernel, to emulate an TUN interface.
|
|
// Please note that it cannot perceive the IP changes caused by DHCP, user
|
|
// configuration to the adapter and etc,. If IP changed, please reconfigure
|
|
// the adapter using syscall, just like openDev().
|
|
// For detail, please refer
|
|
// https://github.com/OpenVPN/tap-windows6/blob/master/src/device.c#L431
|
|
// and https://github.com/songgao/water/pull/13#issuecomment-270341777
|
|
Network string
|
|
}
|
|
|
|
func defaultPlatformSpecificParams() PlatformSpecificParams {
|
|
return PlatformSpecificParams{}
|
|
}
|