Skip to content

Commit 867b225

Browse files
authored
Update main.rs
1 parent 317dba3 commit 867b225

1 file changed

Lines changed: 27 additions & 10 deletions

File tree

src/main.rs

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -442,11 +442,23 @@ fn run_udev(extern_name: Option<String>, startup: Option<StartupOverride>) {
442442
if let Err(e) = crate::ipc::init_hackerland_ipc(&loop_handle) {
443443
warn!("HackerLand control socket failed to start: {e}");
444444
}
445-
// sde-ipc / extern_ipc is disabled for now (see ipc/mod.rs's note) —
446-
// `extern_name` still selects which config.hk / HackerLand socket
447-
// this session uses (see config.rs, hackerland_ipc.rs), it just
448-
// doesn't also open a second sde-ipc socket until that protocol
449-
// gets a proper design pass.
445+
// `--extern-<name>` control socket (the protocol `--extern-hacker-mode`/
446+
// `--extern-cybersecurity-mode`/`--extern-penetration-mode` sessions are
447+
// actually driven over — see `src/ipc/extern_ipc.rs` and
448+
// `src/ipc/protocol.rs`). Only opened for an `--extern-*` session, same
449+
// as `extern_name` itself already only being `Some` in that case — a
450+
// plain default session has no `--extern-<name>` client to serve this
451+
// socket to, so there's nothing to open. Not fatal if it fails: a
452+
// session that fails to expose this socket still has a perfectly usable
453+
// Wayland compositor underneath it, just without external process
454+
// control (e.g. `hacker-mode-session`'s `hacker-mode-ipcctl launch`)
455+
// able to reach it — same "warn, don't exit" treatment already given to
456+
// `init_hackerland_ipc` and the EIS socket below.
457+
if let Some(name) = extern_name.clone() {
458+
if let Err(e) = crate::ipc::init_extern_ipc(&loop_handle, name) {
459+
warn!("extern-ipc control socket failed to start: {e}");
460+
}
461+
}
450462

451463
// EIS input-emulation socket — see input_emulation module doc for
452464
// scope. Not fatal if it fails (e.g. no writable XDG_RUNTIME_DIR in
@@ -565,11 +577,16 @@ fn run_winit(extern_name: Option<String>, startup: Option<StartupOverride>) {
565577
if let Err(e) = crate::ipc::init_hackerland_ipc(&loop_handle) {
566578
warn!("HackerLand control socket failed to start: {e}");
567579
}
568-
// sde-ipc / extern_ipc is disabled for now (see ipc/mod.rs's note) —
569-
// `extern_name` still selects which config.hk / HackerLand socket
570-
// this session uses (see config.rs, hackerland_ipc.rs), it just
571-
// doesn't also open a second sde-ipc socket until that protocol
572-
// gets a proper design pass.
580+
// `--extern-<name>` control socket — see `run_udev`'s identical block
581+
// above for the full explanation; nested (winit) sessions need this
582+
// exactly as much as bare-metal ones do (e.g. a developer running
583+
// `hacker-mode-session` from inside an existing desktop session for
584+
// testing — the same `--extern-hacker-mode` client either way).
585+
if let Some(name) = extern_name.clone() {
586+
if let Err(e) = crate::ipc::init_extern_ipc(&loop_handle, name) {
587+
warn!("extern-ipc control socket failed to start: {e}");
588+
}
589+
}
573590

574591
// EIS input-emulation socket — see input_emulation module doc for
575592
// scope. Not fatal if it fails (e.g. no writable XDG_RUNTIME_DIR in

0 commit comments

Comments
 (0)