Jason A. Donenfeld
da9d300cf8
main: now that we're upstreamed, relax Linux warning
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-05-02 02:20:47 -06:00
Jason A. Donenfeld
db0aa39b76
global: update header comments and modules
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-05-02 02:08:26 -06:00
Jason A. Donenfeld
84b5a4d83d
main: simplify warnings
2019-09-08 10:56:00 -05:00
Matt Layher
1f48971a80
tun: remove TUN prefix from types to reduce stutter elsewhere
...
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2019-06-14 18:35:57 +02:00
Jason A. Donenfeld
3bf41b06ae
global: regroup all imports
2019-05-14 09:09:52 +02:00
Jason A. Donenfeld
d9078fe772
main: revise warnings
2019-04-19 07:48:09 +09:00
Jason A. Donenfeld
69f0fe67b6
global: begin modularization
2019-03-03 05:00:40 +01:00
Jason A. Donenfeld
366cbd11a4
tun: use netpoll instead of rwcancel
...
The new sysconn function of Go 1.12 makes this possible:
package main
import "log"
import "os"
import "unsafe"
import "time"
import "syscall"
import "sync"
import "golang.org/x/sys/unix"
func main() {
fd, err := os.OpenFile("/dev/net/tun", os.O_RDWR, 0)
if err != nil {
log.Fatal(err)
}
var ifr [unix.IFNAMSIZ + 64]byte
copy(ifr[:], []byte("cheese"))
*(*uint16)(unsafe.Pointer(&ifr[unix.IFNAMSIZ])) = unix.IFF_TUN
var errno syscall.Errno
s, _ := fd.SyscallConn()
s.Control(func(fd uintptr) {
_, _, errno = unix.Syscall(
unix.SYS_IOCTL,
fd,
uintptr(unix.TUNSETIFF),
uintptr(unsafe.Pointer(&ifr[0])),
)
})
if errno != 0 {
log.Fatal(errno)
}
b := [4]byte{}
wait := sync.WaitGroup{}
wait.Add(1)
go func() {
_, err := fd.Read(b[:])
log.Print("Read errored: ", err)
wait.Done()
}()
time.Sleep(time.Second)
log.Print("Closing")
err = fd.Close()
if err != nil {
log.Print("Close errored: " , err)
}
wait.Wait()
log.Print("Exiting")
}
2019-02-27 01:52:55 +01:00
Jason A. Donenfeld
42c6d0e261
Change package path
2019-02-18 05:11:39 +01:00
Jason A. Donenfeld
6f76edd045
Import windows scafolding
2019-02-05 12:59:42 +01:00
Jason A. Donenfeld
dff424baf8
Update copyright
2019-02-05 12:59:42 +01:00
Jason A. Donenfeld
5be541d147
global: fix up copyright headers
2018-09-16 18:49:19 +02:00
Jason A. Donenfeld
955e89839f
Print version number in log
2018-05-30 01:09:18 +02:00
Jason A. Donenfeld
2f2eca8947
Catch EINTR
2018-05-24 15:36:29 +02:00
Jason A. Donenfeld
4a9de3218e
Add undocumented --version flag
2018-05-24 02:25:36 +02:00
Jason A. Donenfeld
588b9f01ae
Adopt GOPATH
...
GOPATH is annoying, but the Go community pushing me to adopt it is even
more annoying.
2018-05-23 05:18:13 +02:00
Jason A. Donenfeld
0a63188afa
Move tun to subpackage
2018-05-23 03:58:27 +02:00
Filippo Valsorda
bc05eb1c3c
Minor main.go signal fixes
...
* Buffer the signal channel as it's non-blocking on the sender side
* Notify on SIGTERM instead of the uncatchable SIGKILL
License: MIT
Signed-off-by: Filippo Valsorda <valsorda@google.com>
2018-05-21 20:22:12 +02:00
Mathias Hall-Andersen
38accea986
Add copyright headers
2018-05-19 02:40:22 +02:00
Jason A. Donenfeld
115a2e3946
Use /dev/null as place holder
2018-05-14 20:06:33 +02:00
Jason A. Donenfeld
a62c770a99
Ugly hack to suppress warning on backgrounded process
2018-05-14 16:01:58 +02:00
Jason A. Donenfeld
795f76cffa
Netlink sockets can't be shutdown
2018-05-14 14:08:03 +02:00
Jason A. Donenfeld
355e9bd619
Clean more
2018-05-14 12:27:29 +02:00
Jason A. Donenfeld
c1e097d6d0
Optional logging even in background
2018-05-14 03:38:06 +02:00
Jason A. Donenfeld
233f079a94
Rewrite timers and related state machines
2018-05-10 16:08:03 +02:00
Mathias Hall-Andersen
abe2651ad5
Removed remaining signals from peer
...
1. Removed remaining signals from peer struct
2. Made needAnotherKeepalive local
3. Removed environment check from warning text (annoying when debugging)
2018-05-05 22:07:58 +02:00
Mathias Hall-Andersen
7a83f2565a
Removed old signals
2018-05-05 04:15:07 +02:00
Jason A. Donenfeld
e1de0f229a
uapi: use kqueue for sock deletion on darwin
2018-05-04 21:51:55 +02:00
Jason A. Donenfeld
de7ecc571b
tun: allow darwin to auto assign names
2018-05-04 21:11:51 +02:00
Jason A. Donenfeld
0f322f83f5
warning: put into main
2018-05-04 19:50:08 +02:00
Jason A. Donenfeld
a040786645
global: Add SPDX tags and copyright header
...
Mathias should probably add his copyright headers to each file too.
2018-05-03 15:06:25 +02:00
Jason A. Donenfeld
209dd22ea0
Daemonize with environment variable
2018-05-03 14:55:10 +02:00
Jason A. Donenfeld
258a9223b9
Start to dust off Darwin
2018-05-03 14:55:10 +02:00
Jason A. Donenfeld
676bb91434
We can determine the interface name ourselves
2018-04-19 16:00:20 +02:00
Mathias Hall-Andersen
a0f54cbe5a
Align with go library layout
2018-02-04 16:08:26 +01:00