Codebase list golang-github-pkg-xattr / 1d7b7ff
build 1.8.x, 1.9.x and 1.10 (#18) Kuba Podgórski authored 6 years ago GitHub committed 6 years ago
5 changed file(s) with 7 addition(s) and 6 deletion(s). Raw diff Collapse all Expand all
11 sudo: false
22
33 go:
4 - 1.8
5 - tip
4 - "1.8.x"
5 - "1.9.x"
6 - "1.10"
67
78 os:
89 - linux
77 )
88
99 func getxattr(path string, name string, value *byte, size int, pos int, options int) (int, error) {
10
1110 r0, _, e1 := syscall.Syscall6(syscall.SYS_GETXATTR, uintptr(unsafe.Pointer(syscall.StringBytePtr(path))), uintptr(unsafe.Pointer(syscall.StringBytePtr(name))), uintptr(unsafe.Pointer(value)), uintptr(size), uintptr(pos), uintptr(options))
1211 if e1 != syscall.Errno(0) {
1312 return int(r0), e1
3131 return nil, &Error{"xattr.List", path, "", err}
3232 }
3333 if size > 0 {
34
3534 buf := make([]byte, size)
3635 // Read into buffer of that size.
3736 read, err := listxattr(path, &buf[0], size, 0)
4544
4645 // Set associates name and data together as an attribute of path.
4746 func Set(path, name string, data []byte) error {
48 var dataval *byte = nil
47 var dataval *byte
4948 datalen := len(data)
5049 if datalen > 0 {
5150 dataval = &data[0]
5050
5151 // Set associates name and data together as an attribute of path.
5252 func Set(path, name string, data []byte) error {
53 var dataval *byte = nil
53 var dataval *byte
5454 datalen := len(data)
5555 if datalen > 0 {
5656 dataval = &data[0]
3131 return nil, &Error{"xattr.List", path, "", err}
3232 }
3333 if size > 0 {
34 // `size + 1` because of ERANGE error when reading
35 // from a SMB1 mount point (https://github.com/pkg/xattr/issues/16).
3436 buf := make([]byte, size+1)
3537 // Read into buffer of that size.
3638 read, err := syscall.Listxattr(path, buf)