mirror of
https://github.com/cwinfo/yggdrasil-go.git
synced 2024-11-25 02:31:35 +00:00
commit
b30b6022a8
@ -2,29 +2,19 @@ package yggdrasil
|
||||
|
||||
// This manages the tun driver to send/recv packets to/from applications
|
||||
|
||||
import "os"
|
||||
import ethernet "github.com/songgao/packets/ethernet"
|
||||
import "github.com/songgao/packets/ethernet"
|
||||
import "github.com/yggdrasil-network/water"
|
||||
|
||||
const IPv6_HEADER_LENGTH = 40
|
||||
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 {
|
||||
core *Core
|
||||
icmpv6 icmpv6
|
||||
send chan<- []byte
|
||||
recv <-chan []byte
|
||||
mtu int
|
||||
iface tunInterface
|
||||
iface *water.Interface
|
||||
}
|
||||
|
||||
type tunDefaultParameters struct {
|
||||
|
@ -2,12 +2,13 @@
|
||||
|
||||
package yggdrasil
|
||||
|
||||
import "os"
|
||||
import "os/exec"
|
||||
import "unsafe"
|
||||
|
||||
import "golang.org/x/sys/unix"
|
||||
|
||||
import water "github.com/yggdrasil-network/water"
|
||||
import "github.com/yggdrasil-network/water"
|
||||
|
||||
type in6_addrlifetime struct {
|
||||
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 {
|
||||
fd := tun.iface.FD().Fd()
|
||||
fd := tun.iface.ReadWriteCloser.(*os.File).Fd()
|
||||
var err error
|
||||
var ti tuninfo
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user