aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/wayland
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-11-16 01:45:37 +0900
committerOphestra <cat@gensokyo.uk>2025-11-16 01:45:37 +0900
commit00771efeb46b5828aad6aabc42dca779905ae171 (patch)
tree63ea2f368a522616f679d77257e3db442254601c /internal/wayland
parent61972d61f650be2fb86eb2ead452b74c02b3e00f (diff)
internal/wayland: remove fd typecasts
These are no longer necessary since RawConn is no longer used. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/wayland')
-rw-r--r--internal/wayland/conn.go17
-rw-r--r--internal/wayland/wayland-client-helper.c2
-rw-r--r--internal/wayland/wayland-client-helper.h2
-rw-r--r--internal/wayland/wayland.go17
4 files changed, 27 insertions, 11 deletions
diff --git a/internal/wayland/conn.go b/internal/wayland/conn.go
index c861c05f..17ddae8d 100644
--- a/internal/wayland/conn.go
+++ b/internal/wayland/conn.go
@@ -49,7 +49,7 @@ func New(displayPath, bindPath *check.Absolute, appID, instanceID string) (*Secu
_ = syscall.Close(fd)
return nil, &Error{RHostConnect, err}
} else {
- closeFds, bindErr := bindSecurityContext(fd, bindPath, appID, instanceID)
+ closeFds, bindErr := securityContextBindPipe(fd, bindPath, appID, instanceID)
if bindErr != nil {
// do not leak the pipe and socket
err = errors.Join(bindErr, // already wrapped
@@ -62,11 +62,15 @@ func New(displayPath, bindPath *check.Absolute, appID, instanceID string) (*Secu
}
}
-// bindSecurityContext binds a socket associated to a security context created on serverFd,
+// securityContextBindPipe binds a socket associated to a security context created on serverFd,
// returning the pipe file descriptors used for security-context-v1 close_fd.
//
// A non-nil error unwraps to concrete type [Error].
-func bindSecurityContext(serverFd int, bindPath *check.Absolute, appID, instanceID string) ([2]int, error) {
+func securityContextBindPipe(
+ serverFd int,
+ bindPath *check.Absolute,
+ appID, instanceID string,
+) ([2]int, error) {
// write end passed to security-context-v1 close_fd
var closeFds [2]int
if err := syscall.Pipe2(closeFds[0:], syscall.O_CLOEXEC); err != nil {
@@ -74,7 +78,12 @@ func bindSecurityContext(serverFd int, bindPath *check.Absolute, appID, instance
}
// returned error is already wrapped
- if err := bindWaylandFd(bindPath.String(), uintptr(serverFd), appID, instanceID, uintptr(closeFds[1])); err != nil {
+ if err := securityContextBind(
+ bindPath.String(),
+ serverFd,
+ appID, instanceID,
+ closeFds[1],
+ ); err != nil {
return closeFds, errors.Join(err,
syscall.Close(closeFds[1]),
syscall.Close(closeFds[0]),
diff --git a/internal/wayland/wayland-client-helper.c b/internal/wayland/wayland-client-helper.c
index bf7b3722..be9ddf0f 100644
--- a/internal/wayland/wayland-client-helper.c
+++ b/internal/wayland/wayland-client-helper.c
@@ -31,7 +31,7 @@ static const struct wl_registry_listener registry_listener = {
.global_remove = registry_handle_global_remove,
};
-hakurei_wayland_res hakurei_bind_wayland_fd(
+hakurei_wayland_res hakurei_security_context_bind(
char *socket_path,
int server_fd,
const char *app_id,
diff --git a/internal/wayland/wayland-client-helper.h b/internal/wayland/wayland-client-helper.h
index fc75a87b..6dfad88d 100644
--- a/internal/wayland/wayland-client-helper.h
+++ b/internal/wayland/wayland-client-helper.h
@@ -23,7 +23,7 @@ typedef enum {
HAKUREI_WAYLAND_HOST_CONNECT,
} hakurei_wayland_res;
-hakurei_wayland_res hakurei_bind_wayland_fd(
+hakurei_wayland_res hakurei_security_context_bind(
char *socket_path,
int server_fd,
const char *app_id,
diff --git a/internal/wayland/wayland.go b/internal/wayland/wayland.go
index ee8dfd1e..5f2ecee8 100644
--- a/internal/wayland/wayland.go
+++ b/internal/wayland/wayland.go
@@ -117,19 +117,26 @@ func (e *Error) Error() string {
}
}
-// bindWaylandFd calls hakurei_bind_wayland_fd. A non-nil error has concrete type [Error].
-func bindWaylandFd(socketPath string, fd uintptr, appID, instanceID string, syncFd uintptr) error {
+// securityContextBind calls hakurei_security_context_bind.
+//
+// A non-nil error has concrete type [Error].
+func securityContextBind(
+ socketPath string,
+ serverFd int,
+ appID, instanceID string,
+ closeFd int,
+) error {
if hasNull(appID) || hasNull(instanceID) {
return syscall.EINVAL
}
var e Error
- e.Cause, e.Errno = C.hakurei_bind_wayland_fd(
+ e.Cause, e.Errno = C.hakurei_security_context_bind(
C.CString(socketPath),
- C.int(fd),
+ C.int(serverFd),
C.CString(appID),
C.CString(instanceID),
- C.int(syncFd),
+ C.int(closeFd),
)
if e.Cause == RSuccess {