system: prevent duplicate Wayland op
All checks were successful
test / test (push) Successful in 36s

Wayland is implemented as an Op to enforce dependency and cleanup, its implementation does not allow multiple instances on a single sys object, nor would doing that make any sense.

Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
This commit is contained in:
Ophestra 2024-12-07 19:45:37 +09:00
parent 16ab734fcd
commit f773c92411
Signed by: cat
SSH Key Fingerprint: SHA256:gQ67O0enBZ7UdZypgtspB2FDM1g3GVw8nX0XSdcFw8Q
2 changed files with 6 additions and 0 deletions

View File

@ -32,6 +32,11 @@ func (w Wayland) Type() Enablement {
} }
func (w Wayland) apply(sys *I) error { func (w Wayland) apply(sys *I) error {
// the Wayland op is not repeatable
if sys.sp != nil {
return errors.New("attempted to attach multiple wayland sockets")
}
if err := w.conn.Attach(w.pair[1]); err != nil { if err := w.conn.Attach(w.pair[1]); err != nil {
return fmsg.WrapErrorSuffix(err, return fmsg.WrapErrorSuffix(err,
fmt.Sprintf("cannot attach to wayland on %q:", w.pair[1])) fmt.Sprintf("cannot attach to wayland on %q:", w.pair[1]))

View File

@ -1,3 +1,4 @@
// Package wl implements Wayland security_context_v1 protocol.
package wl package wl
import ( import (