Commit Graph
142 Commits
Author SHA1 Message Date
Viktor Liu 9ede661bab Retrack the agent connection once it is wrapped with the granted peer address 2026-09-23 15:05:30 +02:00
Viktor Liu c26b17653a Accept named-pipe agent connections, carry the remote peer through the agent handshake, and treat pipe disconnects as probes 2026-09-23 14:03:59 +02:00
Viktor Liu b9264d2824 Serve the Windows VNC agent on a ProtectedPrefix named pipe and verify the server PID 2026-09-23 13:23:50 +02:00
Viktor Liu c02a181e43 Place the Windows VNC agent socket under SystemTemp, falling back to Windows\Temp where it does not exist 2026-09-23 12:55:13 +02:00
Viktor Liu e42fe6dfc0 Bound the Windows clipboard read by the block size instead of scanning for a NUL 2026-09-23 12:37:05 +02:00
Viktor Liu 8f158a0827 Reset X11 button state on reconnect, read the Shift+AltGr console table, sync remote Caps Lock with macOS, and restore the FreeBSD stride test 2026-09-23 10:18:13 +02:00
Viktor Liu 395d6521f2 Make the token-leak, VNC port-scoping and bidirectional-SSH tests able to fail 2026-09-23 08:57:38 +02:00
Viktor Liu d6f46b79a3 Count in-flight writes in the final metrics tick and scope the agent token constants to their platforms 2026-09-23 08:54:08 +02:00
Viktor Liu adcd8e3ec5 Report FBU metrics as untracked for service-mode proxied sessions instead of as zero 2026-09-23 08:51:31 +02:00
Viktor Liu e0fe7cccb7 Make the VNC server single-use and recognise crash-leftover desktop processes by their recorded command 2026-09-23 08:36:59 +02:00
Viktor Liu f1a5538840 Map uinput keysyms and typed text through the console's active keymap, and cover the keypad, lock and AltGr keysyms 2026-09-23 08:23:18 +02:00
Viktor Liu 3cc3da41c1 Open the FreeBSD framebuffer read-only and decode depth-24 as 32-bit storage, validate X11 byte order and visual masks, honour destination stride, and drop the cached frame on close 2026-09-23 08:16:15 +02:00
Viktor Liu 47c51fa3c4 Keep Windows input state per session, reject unmappable VkKeyScanA results, queue clipboard and paste reliably, and deselect the GDI bitmap before deleting it 2026-09-23 08:12:31 +02:00
Viktor Liu ff4d6928f7 Fix macOS input permissions, Caps Lock, scroll and layout-independent typing, reconnect the X11 injector, and release VNC resources when start fails 2026-09-23 08:07:11 +02:00
Viktor Liu 9b0a3d3b29 Hand the macOS agent token over stdin, refuse a pre-existing SAS event, bound session writes, and stop the service agent after handlers drain 2026-09-23 07:43:28 +02:00
Viktor Liu 574e68a9e6 Harden the xauth traversal walk against symlinks, keep the runtime dir readable, and enable SeIncreaseQuotaPrivilege for agent spawning 2026-09-22 21:09:53 +02:00
Viktor Liu d0e705bb25 Make the agent token-leak assertion able to fail 2026-09-22 21:06:07 +02:00
Viktor Liu 8f06a43d93 Fix gosec bounds in the byte swizzle, drop the now-unused releaseCapture, and make the SSH and approval-reuse tests actually exercise their paths 2026-09-22 21:03:30 +02:00
Viktor Liu 90450bd83b Frame the VNC session metrics explicitly instead of inferring updates from payload bytes 2026-09-22 20:14:53 +02:00
Viktor Liu 88dbac029e Order macOS pointer events by the previous button state, scale the cursor position into framebuffer pixels, and escalate crash cleanup to SIGKILL 2026-09-22 20:10:15 +02:00
Viktor Liu a5c146ccda Restore Windows privileges on shutdown, refuse approval on a locked session, and stop sessions reading a recycled capture buffer 2026-09-22 20:05:54 +02:00
Viktor Liu b703eb4409 Support scroll wheel and the missing modifier keysyms on uinput, and keep X11 capture when XTest is absent 2026-09-22 19:58:14 +02:00
Viktor Liu d1d8c19fc7 Retry a transient cursor-source failure and stop reporting stale framebuffer geometry 2026-09-22 19:56:19 +02:00
Viktor Liu 67c786b4f4 Report the MDM VNC keys to the UI and bound the copyrect tile-hash map 2026-09-22 19:53:43 +02:00
Viktor Liu 24f832e032 Fix big-endian pixel swizzle, closed-capturer panic on FreeBSD, and the macOS agent socket dir symlink race 2026-09-22 19:50:21 +02:00
Viktor Liu 2f03ea4051 Copy authorization slices on update, drain queued input on close, and drop input when the desktop switch fails 2026-09-22 19:46:36 +02:00
Viktor Liu 921aa2b543 Refuse ambiguous X11 display selection, harden the xauth temp file, and reset the service-agent latch on restart 2026-09-22 19:34:11 +02:00
Viktor Liu c622075088 Carry the VNC authorization across a listener rebind 2026-09-09 09:23:58 +02:00
Viktor Liu 8e0f8d02d0 Retry VNC accept on transient connection and resource errors 2026-09-03 10:05:09 +02:00
Viktor Liu 410faf9db0 Say whether an approval was refused, unanswered, or never shown 2026-08-31 15:15:37 +02:00
Viktor Liu e54fbe7023 Stop retrying an Accept that will not recover 2026-08-31 15:10:13 +02:00
Viktor Liu 89aafa16eb Describe the approval no-match result and the cursor-skip key as they behave 2026-08-30 05:56:59 +02:00
Viktor Liu 8389211aa2 Refuse an ambiguous X display and settle the approval timeout race under one claim 2026-08-29 17:25:02 +02:00
Viktor Liu c49727fb73 Attach to the X server on the active VT and keep a retryable DXGI frame from tearing down the capturer 2026-08-29 16:59:05 +02:00
Viktor Liu ab3d72660d Keep DXGI on an idle desktop, honour the FreeBSD pitch when swizzling, close the handler-drain race 2026-08-29 16:25:07 +02:00
Viktor Liu 5b46753f1d Reject an unsupported VNC session id and say why a cursor rect was skipped 2026-08-29 16:09:47 +02:00
Viktor Liu 7781d1cb7a Require a real first DXGI frame and read the FreeBSD framebuffer at its true pitch 2026-08-29 15:51:19 +02:00
Viktor Liu 0adf5ca70d Authenticate the daemon and its VNC agent to each other without sending the token 2026-08-29 15:45:09 +02:00
Viktor Liu bba7acaafa Encode one framebuffer update at a single negotiated pixel format 2026-08-29 13:56:54 +02:00
Viktor Liu 424951c046 Scope crash recovery to Linux, drain connection handlers before teardown 2026-08-29 13:43:12 +02:00
Viktor Liu 32b3016589 Honour the negotiated pixel format for the cursor, enqueue key edges reliably, drop racy test writes 2026-08-29 12:40:14 +02:00
Viktor Liu b56da75718 Stop narrowing the shared runtime dir, close the injector on stop, allowlist VNC metrics 2026-08-29 10:29:17 +02:00
Viktor Liu 5ba3de375b Compare cursor serials by identity so returning to an earlier cursor updates 2026-08-29 10:25:09 +02:00
Viktor Liu ec320278e3 Collect auth requirements for bidirectional source peers and fix follow-up review findings 2026-08-29 09:57:07 +02:00
Viktor Liu 1c10c19d45 Persist virtual session processes for crash recovery and identify them by start time 2026-08-29 09:48:45 +02:00
Viktor Liu 42450dbfbe Make session key authorization atomic, unblock the encoder on teardown, drop agent privileges unconditionally 2026-08-29 09:12:33 +02:00
Viktor Liu 8b719f0b4e Resolve VNC authorized users on the components path and fix uinput, X11 and macOS input gaps 2026-08-29 09:04:02 +02:00
Viktor Liu a126479ec5 Accept bare marker protocols, reject msb_right framebuffers, split the policy row conversion 2026-08-29 08:24:36 +02:00
Viktor Liu 1e923ccb31 Fix framebuffer layout handling, capturer lifecycle and macOS pointer state races 2026-08-27 21:08:20 +02:00
Viktor Liu ab472f572d Close view-only input, approval-responder and inbound-block gaps in the VNC path 2026-08-27 21:07:03 +02:00