tun: guard Device.Events() against chan writes
Signed-off-by: Jordan Whited <jordan@tailscale.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
ebbd4a4330
commit
1e2c3e5a3c
@ -109,7 +109,7 @@ func (tun *netTun) File() *os.File {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tun *netTun) Events() chan tun.Event {
|
func (tun *netTun) Events() <-chan tun.Event {
|
||||||
return tun.events
|
return tun.events
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,6 +24,6 @@ type Device interface {
|
|||||||
Flush() error // flush all previous writes to the device
|
Flush() error // flush all previous writes to the device
|
||||||
MTU() (int, error) // returns the MTU of the device
|
MTU() (int, error) // returns the MTU of the device
|
||||||
Name() (string, error) // fetches and returns the current name
|
Name() (string, error) // fetches and returns the current name
|
||||||
Events() chan Event // returns a constant channel of events related to the device
|
Events() <-chan Event // returns a constant channel of events related to the device
|
||||||
Close() error // stops the device and closes the event channel
|
Close() error // stops the device and closes the event channel
|
||||||
}
|
}
|
||||||
|
@ -213,7 +213,7 @@ func (tun *NativeTun) File() *os.File {
|
|||||||
return tun.tunFile
|
return tun.tunFile
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tun *NativeTun) Events() chan Event {
|
func (tun *NativeTun) Events() <-chan Event {
|
||||||
return tun.events
|
return tun.events
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -329,7 +329,7 @@ func (tun *NativeTun) File() *os.File {
|
|||||||
return tun.tunFile
|
return tun.tunFile
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tun *NativeTun) Events() chan Event {
|
func (tun *NativeTun) Events() <-chan Event {
|
||||||
return tun.events
|
return tun.events
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -376,7 +376,7 @@ func (tun *NativeTun) Read(buf []byte, offset int) (n int, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tun *NativeTun) Events() chan Event {
|
func (tun *NativeTun) Events() <-chan Event {
|
||||||
return tun.events
|
return tun.events
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ func (tun *NativeTun) File() *os.File {
|
|||||||
return tun.tunFile
|
return tun.tunFile
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tun *NativeTun) Events() chan Event {
|
func (tun *NativeTun) Events() <-chan Event {
|
||||||
return tun.events
|
return tun.events
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ func (tun *NativeTun) File() *os.File {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tun *NativeTun) Events() chan Event {
|
func (tun *NativeTun) Events() <-chan Event {
|
||||||
return tun.events
|
return tun.events
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ const DefaultMTU = 1420
|
|||||||
func (t *chTun) Flush() error { return nil }
|
func (t *chTun) Flush() error { return nil }
|
||||||
func (t *chTun) MTU() (int, error) { return DefaultMTU, nil }
|
func (t *chTun) MTU() (int, error) { return DefaultMTU, nil }
|
||||||
func (t *chTun) Name() (string, error) { return "loopbackTun1", nil }
|
func (t *chTun) Name() (string, error) { return "loopbackTun1", nil }
|
||||||
func (t *chTun) Events() chan tun.Event { return t.c.events }
|
func (t *chTun) Events() <-chan tun.Event { return t.c.events }
|
||||||
func (t *chTun) Close() error {
|
func (t *chTun) Close() error {
|
||||||
t.Write(nil, -1)
|
t.Write(nil, -1)
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user