aboutsummaryrefslogtreecommitdiff
path: root/internal/syscallcompat/asuser_freebsd.go
blob: dfa8e18b5bb16bf526b9fd56930f4724c5481f3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package syscallcompat

import (
	"golang.org/x/sys/unix"

	"github.com/hanwen/go-fuse/v2/fuse"

	"github.com/rfjakob/gocryptfs/v2/internal/tlog"
)

// asUser runs `f()` under the effective uid, gid, groups specified
// in `context`.
//
// If `context` is nil, `f()` is executed directly without switching user id.
//
// FreeBSD does not support changing uid/gid per thread. If context is not nil,
// an error is returned.
func asUser(f func() (int, error), context *fuse.Context) (int, error) {
	if context == nil {
		return f()
	}
	tlog.Warn.Printf("asUser: error, only nil context is supported\n")
	return 0, unix.EOPNOTSUPP
}