sys_windows.go 641 B

1234567891011121314151617181920
  1. // Copyright 2017 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 socket
  5. import (
  6. "syscall"
  7. "unsafe"
  8. )
  9. func getsockopt(s uintptr, level, name int, b []byte) (int, error) {
  10. l := uint32(len(b))
  11. err := syscall.Getsockopt(syscall.Handle(s), int32(level), int32(name), (*byte)(unsafe.Pointer(&b[0])), (*int32)(unsafe.Pointer(&l)))
  12. return int(l), err
  13. }
  14. func setsockopt(s uintptr, level, name int, b []byte) error {
  15. return syscall.Setsockopt(syscall.Handle(s), int32(level), int32(name), (*byte)(unsafe.Pointer(&b[0])), int32(len(b)))
  16. }