syscalls_linux_legacy.go 438 B

1234567891011121314151617181920212223242526
  1. // +build linux,!go1.11
  2. package water
  3. import (
  4. "os"
  5. )
  6. func openDev(config Config) (ifce *Interface, err error) {
  7. var file *os.File
  8. if file, err = os.OpenFile(
  9. "/dev/net/tun", os.O_RDWR, 0); err != nil {
  10. return nil, err
  11. }
  12. name, err := setupFd(config, file.Fd())
  13. if err != nil {
  14. return nil, err
  15. }
  16. return &Interface{
  17. isTAP: config.DeviceType == TAP,
  18. ReadWriteCloser: file,
  19. name: name,
  20. }, nil
  21. }