Started migration to sub-packages

This commit is contained in:
Mathias Hall-Andersen
2018-02-09 18:56:00 +01:00
parent 51a6001bb9
commit b461343171
6 changed files with 69 additions and 29 deletions

View File

@@ -7,6 +7,7 @@ import (
"encoding/binary"
"errors"
"fmt"
"git.zx2c4.com/wireguard-go/internal/events"
"golang.org/x/net/ipv6"
"golang.org/x/sys/unix"
"net"
@@ -52,10 +53,10 @@ const (
type NativeTun struct {
fd *os.File
index int32 // if index
name string // name of interface
errors chan error // async error handling
events chan TUNEvent // device related events
index int32 // if index
name string // name of interface
errors chan error // async error handling
events chan events.Event // device related events
}
func (tun *NativeTun) File() *os.File {
@@ -71,9 +72,9 @@ func (tun *NativeTun) RoutineHackListener() {
_, err := unix.Write(fd, nil)
switch err {
case unix.EINVAL:
tun.events <- TUNEventUp
tun.events <- events.NewEvent(TUNEventUp)
case unix.EIO:
tun.events <- TUNEventDown
tun.events <- events.NewEvent(TUNEventDown)
default:
}
time.Sleep(time.Second / 10)
@@ -118,14 +119,14 @@ func (tun *NativeTun) RoutineNetlinkListener() {
}
if info.Flags&unix.IFF_RUNNING != 0 {
tun.events <- TUNEventUp
tun.events <- events.NewEvent(TUNEventUp)
}
if info.Flags&unix.IFF_RUNNING == 0 {
tun.events <- TUNEventDown
tun.events <- events.NewEvent(TUNEventDown)
}
tun.events <- TUNEventMTUUpdate
tun.events <- events.NewEvent(TUNEventMTUUpdate)
default:
remain = remain[hdr.Len:]
@@ -288,7 +289,7 @@ func (tun *NativeTun) Read(buff []byte, offset int) (int, error) {
}
}
func (tun *NativeTun) Events() chan TUNEvent {
func (tun *NativeTun) Events() chan events.Event {
return tun.events
}
@@ -300,7 +301,7 @@ func CreateTUNFromFile(name string, fd *os.File) (TUNDevice, error) {
device := &NativeTun{
fd: fd,
name: name,
events: make(chan TUNEvent, 5),
events: make(chan events.Event, 5),
errors: make(chan error, 5),
}
@@ -357,7 +358,7 @@ func CreateTUN(name string) (TUNDevice, error) {
device := &NativeTun{
fd: fd,
name: newName,
events: make(chan TUNEvent, 5),
events: make(chan events.Event, 5),
errors: make(chan error, 5),
}