aboutsummaryrefslogtreecommitdiffstats
path: root/device/bindsocketshim.go
diff options
context:
space:
mode:
Diffstat (limited to 'device/bindsocketshim.go')
-rw-r--r--device/bindsocketshim.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/device/bindsocketshim.go b/device/bindsocketshim.go
new file mode 100644
index 0000000..c4dd4ef
--- /dev/null
+++ b/device/bindsocketshim.go
@@ -0,0 +1,36 @@
+/* SPDX-License-Identifier: MIT
+ *
+ * Copyright (C) 2017-2019 WireGuard LLC. All Rights Reserved.
+ */
+
+package device
+
+import (
+ "errors"
+
+ "golang.zx2c4.com/wireguard/conn"
+)
+
+// TODO(crawshaw): this method is a compatibility shim. Replace with direct use of conn.
+func (device *Device) BindSocketToInterface4(interfaceIndex uint32, blackhole bool) error {
+ if device.net.bind == nil {
+ return errors.New("Bind is not yet initialized")
+ }
+
+ if iface, ok := device.net.bind.(conn.BindToInterface); ok {
+ return iface.BindToInterface4(interfaceIndex, blackhole)
+ }
+ return nil
+}
+
+// TODO(crawshaw): this method is a compatibility shim. Replace with direct use of conn.
+func (device *Device) BindSocketToInterface6(interfaceIndex uint32, blackhole bool) error {
+ if device.net.bind == nil {
+ return errors.New("Bind is not yet initialized")
+ }
+
+ if iface, ok := device.net.bind.(conn.BindToInterface); ok {
+ return iface.BindToInterface6(interfaceIndex, blackhole)
+ }
+ return nil
+}