aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/system/acl/libacl-helper.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/system/acl/libacl-helper.go')
-rw-r--r--internal/system/acl/libacl-helper.go40
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
+}