summaryrefslogtreecommitdiffhomepage
path: root/device
diff options
context:
space:
mode:
authorDavid Crawshaw <crawshaw@tailscale.com>2020-06-22 10:42:28 +1000
committerDavid Crawshaw <crawshaw@tailscale.com>2020-06-22 10:42:28 +1000
commitb84f1d4db25e6e7de29551d3fd9c3c10e0b731e1 (patch)
tree9f02db5163ba217a754dfbf5349354e3b9056f0f /device
parentdfb28757f799e02840e8939ca739107f2560f53f (diff)
device: export Bind and remove socketfd shims for android
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
Diffstat (limited to 'device')
-rw-r--r--device/bindsocketshim.go24
-rw-r--r--device/device.go6
2 files changed, 6 insertions, 24 deletions
diff --git a/device/bindsocketshim.go b/device/bindsocketshim.go
index 68e1504..896c7d2 100644
--- a/device/bindsocketshim.go
+++ b/device/bindsocketshim.go
@@ -34,27 +34,3 @@ func (device *Device) BindSocketToInterface6(interfaceIndex uint32, blackhole bo
}
return nil
}
-
-// TODO(crawshaw): this method is a compatibility shim. Replace with direct use of conn.
-func (device *Device) PeekLookAtSocketFd4() (fd int, err error) {
- if device.net.bind == nil {
- return -1, errors.New("Bind is not yet initialized")
- }
-
- if iface, ok := device.net.bind.(conn.PeekLookAtSocketFd); ok {
- return iface.PeekLookAtSocketFd4()
- }
- return -1, errors.New("unimplemented")
-}
-
-// TODO(crawshaw): this method is a compatibility shim. Replace with direct use of conn.
-func (device *Device) PeekLookAtSocketFd6() (fd int, err error) {
- if device.net.bind == nil {
- return -1, errors.New("Bind is not yet initialized")
- }
-
- if iface, ok := device.net.bind.(conn.PeekLookAtSocketFd); ok {
- return iface.PeekLookAtSocketFd6()
- }
- return -1, errors.New("unimplemented")
-}
diff --git a/device/device.go b/device/device.go
index 11119f9..c64432e 100644
--- a/device/device.go
+++ b/device/device.go
@@ -430,6 +430,12 @@ func unsafeCloseBind(device *Device) error {
return err
}
+func (device *Device) Bind() conn.Bind {
+ device.net.Lock()
+ defer device.net.Unlock()
+ return device.net.bind
+}
+
func (device *Device) BindSetMark(mark uint32) error {
device.net.Lock()