sys_darwin.go 651 B

123456789101112131415161718192021222324252627
  1. // Copyright 2014 The Go Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. package ipv4
  5. import "syscall"
  6. func init() {
  7. // Seems like kern.osreldate is veiled on latest OS X. We use
  8. // kern.osrelease instead.
  9. osver, err := syscall.Sysctl("kern.osrelease")
  10. if err != nil {
  11. return
  12. }
  13. var i int
  14. for i = range osver {
  15. if osver[i] != '.' {
  16. continue
  17. }
  18. }
  19. // The IP_PKTINFO was introduced in OS X 10.7 (Darwin
  20. // 11.0.0). See http://support.apple.com/kb/HT1633.
  21. if i > 2 || i == 2 && osver[0] >= '1' && osver[1] >= '1' {
  22. supportsPacketInfo = true
  23. }
  24. }