5
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2024-11-14 03:20:28 +00:00

Merge pull request #39 from Arceliar/fd

Don't use water.Interface.FD()
This commit is contained in:
Arceliar 2018-03-04 14:17:01 -06:00 committed by GitHub
commit b30b6022a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 15 deletions

View File

@ -2,29 +2,19 @@ package yggdrasil
// This manages the tun driver to send/recv packets to/from applications // This manages the tun driver to send/recv packets to/from applications
import "os" import "github.com/songgao/packets/ethernet"
import ethernet "github.com/songgao/packets/ethernet" import "github.com/yggdrasil-network/water"
const IPv6_HEADER_LENGTH = 40 const IPv6_HEADER_LENGTH = 40
const ETHER_HEADER_LENGTH = 14 const ETHER_HEADER_LENGTH = 14
type tunInterface interface {
IsTUN() bool
IsTAP() bool
Name() string
Read(to []byte) (int, error)
Write(from []byte) (int, error)
Close() error
FD() *os.File
}
type tunDevice struct { type tunDevice struct {
core *Core core *Core
icmpv6 icmpv6 icmpv6 icmpv6
send chan<- []byte send chan<- []byte
recv <-chan []byte recv <-chan []byte
mtu int mtu int
iface tunInterface iface *water.Interface
} }
type tunDefaultParameters struct { type tunDefaultParameters struct {

View File

@ -2,12 +2,13 @@
package yggdrasil package yggdrasil
import "os"
import "os/exec" import "os/exec"
import "unsafe" import "unsafe"
import "golang.org/x/sys/unix" import "golang.org/x/sys/unix"
import water "github.com/yggdrasil-network/water" import "github.com/yggdrasil-network/water"
type in6_addrlifetime struct { type in6_addrlifetime struct {
ia6t_expire float64 ia6t_expire float64
@ -61,7 +62,7 @@ func (tun *tunDevice) setup(ifname string, iftapmode bool, addr string, mtu int)
} }
func (tun *tunDevice) setupAddress(addr string) error { func (tun *tunDevice) setupAddress(addr string) error {
fd := tun.iface.FD().Fd() fd := tun.iface.ReadWriteCloser.(*os.File).Fd()
var err error var err error
var ti tuninfo var ti tuninfo