diff options
Diffstat (limited to 'internal/system/acl/libacl-helper.go')
| -rw-r--r-- | internal/system/acl/libacl-helper.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/internal/system/acl/libacl-helper.go b/internal/system/acl/libacl-helper.go new file mode 100644 index 00000000..22575296 --- /dev/null +++ b/internal/system/acl/libacl-helper.go @@ -0,0 +1,40 @@ +package acl + +import "os" + +func newAclPathError(name string, r int, err error) error { + pathError := &os.PathError{Path: name, Err: err} + switch r { + case 0: + return nil + + case -1: + pathError.Op = "acl_get_file" + case -2: + pathError.Op = "acl_get_tag_type" + case -3: + pathError.Op = "acl_get_qualifier" + case -4: + pathError.Op = "acl_delete_entry" + case -5: + pathError.Op = "acl_create_entry" + case -6: + pathError.Op = "acl_get_permset" + case -7: + pathError.Op = "acl_add_perm" + case -8: + pathError.Op = "acl_set_tag_type" + case -9: + pathError.Op = "acl_set_qualifier" + case -10: + pathError.Op = "acl_calc_mask" + case -11: + pathError.Op = "acl_valid" + case -12: + pathError.Op = "acl_set_file" + + default: // unreachable + pathError.Op = "setfacl" + } + return pathError +} |
