Commit graph

7125 commits

Author SHA1 Message Date
Luiz Sardinha
426b43fc09 fix(mac): protect TIS API calls with a mutex (they are not thread safe) 2026-05-12 06:17:14 +01:00
Luiz Sardinha
44c5c15082 fix(mac): prevent cursor warps from outside quartz event loop (if active) 2026-05-12 05:54:49 +01:00
Ketan Patel
c3ecd0b806 fix(macos): recognize brightness media keys
Map macOS brightness media key events back to Deskflow key IDs so they
can be captured and forwarded from macOS servers.

Fixes #9709
2026-05-08 18:57:09 +01:00
sithlord48
95ad33960b refactor: App , explicit constructor for LoopErrorCode and const APP::Quit event 2026-05-07 16:43:38 +01:00
sithlord48
7b1dd869a7 refactor: ExitEvent explict construtor, override deconstrutor maek exitCode a const method 2026-05-07 16:43:38 +01:00
sithlord48
29c3f1e612 ci: use sonar action v8 2026-05-05 10:35:34 -04:00
sithlord48
39b3676e6a build: remove uneeded QtGlobal include from deskflow-core 2026-05-05 08:31:15 -04:00
sithlord48
050397f5b3 refactor: use QStrings for exceptions whats 2026-05-05 13:11:00 +01:00
Peter Hutterer
1c789fd6a9 feat: handle input capture session persistence
Use the new libportal API to start a CreateSession2, then set the
session persistence and read/write the tokens as required. This allows
us to start a server without a permission dialog - provided the portal
supports it and the user is ok with that.
2026-05-05 11:58:02 +01:00
Taesu Kang
7b614215a1 fix: ensure correct screen name is set for switchToScreen 2026-04-30 20:56:09 +01:00
Nick Bolton
10027ecc1c feat(ipc): Stop bad version existing Core process 2026-04-28 21:47:47 +01:00
sithlord48
e9868123df ci: remove fedora-42 for fedora-44 2026-04-28 13:08:13 +01:00
Nick Bolton
329783490b fix(tls): prevent DoS by removing blocking sleep 2026-04-28 12:36:08 +01:00
sithlord48
70c8c8f668 build(macos): remove unneeded setting for sysroot 2026-04-27 10:38:52 -04:00
sithlord48
e473f54059 doc: Adjust pr template 2026-04-27 12:48:33 +01:00
Nick Bolton
99912b9bc6 feat(daemon): reject remote config file paths to prevent NTLM hash leakage 2026-04-25 10:48:09 -04:00
Nick Bolton
69339b5bcc feat(daemon): add missing command info log line for daemon 2026-04-25 10:48:09 -04:00
Nick Bolton
d553946cef feat(daemon): validate config file existence before applying watchdog command 2026-04-25 10:48:09 -04:00
Nick Bolton
5c480ca515 fix(cve): run switch commands as normal user on Windows to prevent privilege escalation
CVE-2026-41477
2026-04-25 10:48:09 -04:00
Nick Bolton
e7040a1f82 fix(cve): remove ipc command that creates privilege escalation vulnerability
CVE-2026-41477
2026-04-25 10:48:09 -04:00
Nick Bolton
f0631f7a3c ci(bsd): remove nonexistent unit test call 2026-04-25 10:30:45 -04:00
Nick Bolton
5ad56aaab2 ci(bsd): pin FreeBSD VM to stable release to resolve pkg issues 2026-04-25 10:30:45 -04:00
Nick Bolton
768553c2e8 feat: Print Qt logs same as other log lines 2026-04-24 13:23:07 +01:00
sithlord48
306259eb5b chore: remove unused NetworkProtocol methods for intConversion 2026-04-22 15:35:20 -04:00
sithlord48
77a97f815a refactor: move protocol from serverConfig => Settings::Server::Protocol 2026-04-22 15:35:20 -04:00
sithlord48
dff81e62fe chore: move base/NetworkProtocol -> common/NetworkProtocol 2026-04-22 15:35:20 -04:00
Daniel Albers
1890e7b297 fix: PacketStreamFilter socket leak on abrupt disconnect
This fix prevents TCP sockets from accumulating in CLOSE_WAIT following a
network interruption.

StreamInputShutdown ignored events that occurred while waiting for parts of a
partially received packet.
This could prevent the higher-level state machine from receiving the disconnect
signal and closing the socket.

The filter now correctly treats a stream closure during mid-packet reception as
a protocol error, ensuring the disconnect event is propagated, and proceeds with
the shutdown.
2026-04-22 07:12:02 -04:00
Daniel Albers
f9fd0e86b0 fix: Improve SecureSocket handshake and event handling
This fix addresses a busy-loop and stalled connection issue during the TLS
handshake. Previously, SecureSocket incorrectly managed its readiness flags
during negotiation, often polling for 'writability' when OpenSSL was actually
waiting for more 'read' data (or vice versa).

- Explicitly maps SSL_ERROR_WANT_READ and SSL_ERROR_WANT_WRITE to
  socket multiplexer events.
- Resets readiness flags before each handshake attempt to ensure the
  multiplexer receives the most accurate requirements from OpenSSL.
- Restores readability/writability flags upon a successful handshake
  to allow subsequent application-layer protocol exchange.
- Removes inefficient busy-wait sleeps that were masking the loop
  and slowing down handshakes.
2026-04-22 07:12:02 -04:00
Daniel Albers
7d78e55fcc fix: Enable TCP keepalive by default
Deskflow previously lacked support for TCP keepalive, which meant that
dead connections (such as those resulting from a terminated SSH tunnel
or an ungraceful network interruption) could remain in the system's
connection table indefinitely.

This commit adds the setKeepAliveOnSocket method to the IArchNetwork
abstraction and implements it for both BSD/Unix and Winsock/Windows
backends. Keepalive is now enabled by default in TCPSocket::init,
allowing the operating system to eventually detect and clean up
stale connections.
2026-04-22 07:12:02 -04:00
sithlord48
acd02a01e6 fix: use Maximum for the high of the mode selection to prevent being cut off 2026-04-21 07:36:48 -04:00
Luiz Sardinha
5a028c12d4 fix(mac): quit core if accessibility permissions are revoked 2026-04-21 06:54:05 -04:00
Luiz Sardinha
9025ab8fb7 refactor: allow exit event to provide an exit code 2026-04-21 06:54:05 -04:00
Luiz Sardinha
71c25b3ab9 refactor: bringing error code from the application thread to the main thread (and using its exit code to exit) 2026-04-21 06:54:05 -04:00
Luiz Sardinha
1854e469f4 refactor: making core a QApplication (so it runs cocoa loop on macOS) 2026-04-21 06:54:05 -04:00
sithlord48
c4f11942e4 ci: replace old msvc action with TheMrMilchmann/setup-msvc-dev@v4 enable spectre mitigations for msvc used 2026-04-20 13:05:59 +01:00
sithlord48
7a37f02bee ci: update cache to v5 2026-04-20 11:12:17 +01:00
sithlord48
68e9ec74a8 ci: upgrade to download-action v8 2026-04-20 11:12:17 +01:00
sithlord48
a344daa25f ci: upgrade to checkout v6 2026-04-20 11:12:17 +01:00
sithlord48
97578fb68b ci: update remaining upload-artifacts to v7 2026-04-20 11:12:17 +01:00
alizane
42b824a8db fix: enforce C locale in LogTests for decimal formatting
fixes: #7466
2026-04-17 12:12:47 -04:00
sithlord48
f07c6b3d03 ci: update upload-action to v7 2026-04-16 17:31:32 -04:00
sithlord48
1c81886643 fix: clipboard buffer overrun using propose solution from kitknox 2026-04-16 08:03:06 -04:00
sithlord48
c8e0feab4e build(arch): remove ArchDaemonNone and do not subclass Arch from ARCH_DAEMON on unix 2026-04-13 09:48:12 +01:00
sithlord48
e33bef1b95 build(arch): remove unneeded links to ${libs} 2026-04-13 09:48:12 +01:00
sithlord48
d6a935b5e9 build(common): expose the include dirs from the common library as public 2026-04-13 09:48:12 +01:00
sithlord48
1922f916af refactor: Move -> deskflow/languages/LanguageManager -> deskflow/KeyboardLayoutManager
rename methods to relfect its use for keyboard layouts not languages
2026-04-08 09:47:23 +01:00
sithlord48
e293d4eb8c refactor(ipc): add missing use of at for lists 2026-04-08 09:47:23 +01:00
sithlord48
d1074f64ae refactor(ipc): use more QStringLiterals 2026-04-08 09:47:23 +01:00
sithlord48
bdb7309778 refactor(ipcClient): declare values in if statement where possible 2026-04-08 09:47:23 +01:00
sithlord48
7f2953d422 ci: Remove stale action 2026-04-07 08:42:33 -04:00