package sockopt

import (
	"net"
	"syscall"

	"golang.org/x/sys/unix"
)

func bindRawConn(network string, c syscall.RawConn, bindIface *net.Interface) error {
	var err1, err2 error
	err1 = c.Control(func(fd uintptr) {
		if bindIface != nil {
			err2 = unix.BindToDevice(int(fd), bindIface.Name)
		}
	})
	if err1 != nil {
		return err1
	} else {
		return err2
	}
}