https://bugs.kde.org/show_bug.cgi?id=524610
--- Comment #5 from Cameron <[email protected]> --- Root cause identified — this is a one-line regression, and it can be fixed without reverting either commit (which preserves the virtual-monitor feature). MECHANISM Commit 842c91e45d ("main-virtualmonitor: Make options optional and add reasonable defaults", 2026-04-24) wrapped the ENTIRE listener setup in RfbServer::start() behind `if (passwordSet())` — including rfbInitServer(), the port assignment, and the socket notifiers. The only caller of setPasswordSet(true) in the tree is main-virtualmonitor.cpp (the new virtual-monitor binary). The GUI path (main.cpp -> InvitationsRfbServer::init()) never sets it, so d->passwordSet stays false from its constructor initialization. Result: RfbServer::start() skips the whole block and returns true — the GUI checkbox toggles, NO error dialog appears (start() "succeeded"), no socket is ever created, and nothing is logged. That matches every reporter's symptom: process alive, checkbox on, zero listeners, zero diagnostics. Before this commit (verified against the tree at c434224d23, 2025-05-03) there was no gate: rfbInitServer() ran unconditionally. MINIMAL FIX — one line in krfb/invitationsrfbserver.cpp, InvitationsRfbServer::init(): instance->setListeningAddress("0.0.0.0"); instance->setListeningPort(KrfbConfig::port()); instance->setPasswordRequired(true); instance->setPasswordSet(true); // <-- add this line This is preferable to reverting 842c91e45d + c521740404: it keeps the virtual-monitor feature working (its own binary still sets the flag explicitly) while restoring the GUI path. VERIFIED Rebuilt as krfb 26.08.1-2 on CachyOS with only this line added. The listener returns immediately on Wayland (KWin 6.7): RFB 003.008 handshake, security type 2 (VNC password), LISTEN 0.0.0.0:5900 + [::]:5900. Confirmed working headlessly via OpenClaw's node-host desktop.stream probe (which requires an authenticated loopback RFB server). DIAGNOSTIC NOTE for anyone hitting this: the absence of an error dialog is itself the tell. With the gate, start() returns true without touching the network — ss -ltnp | grep 5900 empty, no journal output, no crash. strace -e trace=socket,bind,listen -p $(pgrep krfb) shows zero socket syscalls even after toggling the checkbox. -- You are receiving this mail because: You are watching all bug changes.
