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
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
alizane
42b824a8db
fix: enforce C locale in LogTests for decimal formatting
...
fixes : #7466
2026-04-17 12:12:47 -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
Nick Bolton
7c30add2a1
feat(ipc): Error handling for missing version in IPC handshake
2026-04-07 13:09:29 +01:00
Nick Bolton
77bee2ddf3
feat(ipc): Log more detail on IPC error handling
2026-04-07 13:09:29 +01:00
Nick Bolton
25f3eb3f22
feat(ipc): Differentiate between Daemon and Core IPC logs
2026-04-07 13:09:29 +01:00
Nick Bolton
682966fec0
feat(ipc): Handle missing keyboard layouts with IPC
2026-04-07 13:09:29 +01:00
Nick Bolton
59a4747113
feat(ipc): Unrecognised IPC client, retry messages, and TLS fingerprint
...
Also adds version checking for IPC server and client
2026-04-07 13:09:29 +01:00
Nick Bolton
66c9b6607c
feat(ipc): Messaging for connection states via IPC (async client)
2026-04-07 13:09:29 +01:00
Nick Bolton
62ccb543dc
feat(ipc): Core IPC server and connected client
2026-04-07 13:09:29 +01:00
Nick Bolton
1ec36645e1
refactor(ipc): Abstract IPC client logic
2026-04-07 13:09:29 +01:00
Nick Bolton
2e13074580
refactor(ipc): Abstract IPC server logic
2026-04-07 13:09:29 +01:00
Nick Bolton
e4bafaf88f
refactor(win32): More consistent Windows desk switch log line
2026-04-07 13:09:29 +01:00
Nick Bolton
eebe5fd55f
refactor(win32): Rename Windows thread finding methods for consistency
2026-04-07 13:09:29 +01:00
Nick Bolton
b0985a2740
fix(unix): Add foreign Qt threds in legacy POSIX thread impl
2026-04-07 13:09:29 +01:00
Nick Bolton
aaef600ffa
fix(mac): Remove Cocoa app loop and fix macOS event tap for Qt threading
2026-04-07 13:09:29 +01:00
Nick Bolton
29352d97b3
fix(core): Destroy temporary QCoreApplication before creating the real one
2026-04-07 13:09:29 +01:00
Nick Bolton
8a77e5f130
refactor(core): Convert app to Qt app
2026-04-07 13:09:29 +01:00
sithlord48
d8e9ac27f5
refactor: Messages::showNewClientPrompt check if server auth is needed when the message is shown not in the signal
2026-04-07 11:09:58 +01:00
sithlord48
047451696a
refactor: Messages::showFirstConnectionMessage check the settings for the values
2026-04-07 11:09:58 +01:00
sithlord48
632b64f12f
chore: MainWindow remove unused forward declariations
2026-04-07 11:09:58 +01:00
sithlord48
6a1e8f3edb
chore: remove unused QMessageBox includes and Foward Declaration
2026-04-07 11:09:58 +01:00
sithlord48
5536f98da3
fix(LogDock): Scroll the log widget to the bottom if the log is visible and the find widget is not expanded when appending new log lines
...
fixes : #9622
2026-04-02 12:26:13 +01:00
sithlord48
b17883618c
feat(LogWidget): new scrollToBottom method to scroll the log to to the bottom
2026-04-02 12:26:13 +01:00
sithlord48
4f377d97ff
feat(SearchWidget): new isExpanded method true when widget is showing the find line
2026-04-02 12:26:13 +01:00
sithlord48
41fcc1e815
refactor: add [[no_unique_address]] hint for XWindowsScreen::m_powerManager
2026-03-30 10:36:15 +01:00
sithlord48
15bae79bf4
refactor: correctly use [[maybe_unused]]
2026-03-30 10:36:15 +01:00
sithlord48
ca6220ad30
refactor: remove redundant c_str when setting logError
2026-03-30 10:36:15 +01:00
sithlord48
bcc5a12d37
chore: remove unused Unicode::decode32 method
2026-03-30 10:36:15 +01:00
sithlord48
06d7f91551
refactor: add explicit fallthrough for fall through cases in unicode
2026-03-30 10:36:15 +01:00
Artturi Alm
469a238b04
fix: AltGr for clients w/windows+finnish-layout.
2026-03-26 10:52:45 +00:00
sithlord48
1565971479
feat: show connection retry status in status area
2026-03-26 06:25:22 -04:00
sithlord48
468c3b76de
feat: backoff retry after number of retries
2026-03-26 06:25:22 -04:00
sithlord48
ebab0eb62e
chore: remove unused ScreenException methods for reconnect timer
2026-03-25 14:54:57 +00:00
sithlord48
7c00299b11
chore: remove unused retryTime in ServerApp::initServer
2026-03-25 14:54:57 +00:00
sithlord48
b72719f821
refactor: fix comment typo
2026-03-25 14:54:57 +00:00
sithlord48
868b421671
refactor: port simpler KeyStateTest to QTest
2026-03-20 21:54:09 +00:00
Luiz Sardinha
abfcc59f22
fix: prevent daemon ipc client from sending multiple messages at the same time
2026-03-20 13:01:47 +00:00
Jason Mitchell
c6544dd4eb
fix: plus key as hotkey support
2026-03-20 12:37:03 +00:00
sithlord48
abaf233a07
fix: adjust command line size to allow expanding
2026-03-19 10:41:22 +00:00
Nick Bolton
b251c98a4e
fix: kill core orphan on gui death (linux)
2026-03-16 09:38:14 -04:00
sithlord48
23c8496e24
feat: allow users to run a script on entry or exit of a screen
2026-03-16 12:33:45 +00:00
Tomaz Canabrava
18220a7847
chore: Fix Typo
2026-03-16 12:33:45 +00:00
UberKitten
ac8cc42b7a
fix: retry OpenClipboard() on Windows
...
OpenClipboard() can fail transiently when another process holds the
clipboard mutex. Add a retry loop (5 attempts, 5ms delay) so that
Deskflow handles brief contention gracefully instead of immediately
failing.
2026-03-12 08:19:43 -04:00
sithlord48
7126f31d3f
fix: do not reset network if old interface is missing
...
fixes : #9552
2026-03-12 10:24:20 +00:00
sithlord48
11871d343d
refactor: check for not mac not win in placeof x or wayland in some cases
2026-03-06 08:57:31 -05:00
sithlord48
12cf55d4fc
build: Replace WINAPI_CARBON with Q_OS_MAC
2026-03-06 08:57:31 -05:00
sithlord48
e4cf1392c9
build: Replace WINAPI_MSWINDOWS with Q_OS_WIN
2026-03-06 08:57:31 -05:00
sithlord48
f2a54f4af0
buid: replace NIH SYSAPI_WIN32 with Q_OS_WIN
2026-03-06 08:57:31 -05:00
sithlord48
fce1a37e97
build: remove SYSAPI_UNIX define
2026-03-06 08:57:31 -05:00
sithlord48
90e79dad75
refactor: SettingsDialog update ux for initial window state
2026-03-06 13:38:30 +00:00
sithlord48
8f8874370e
refactor: SettingsDialog adjust wording of close to tray option
2026-03-06 13:38:30 +00:00
sithlord48
3d67865ffc
refactor: SettingsDialog, new Window Behavior tab
2026-03-06 13:38:30 +00:00
sithlord48
22a303842e
refactor: Settings Dialog Vertically center contents
2026-03-06 13:38:30 +00:00
Luiz Sardinha
c20671f1db
build: ensuring macOS codesign is triggered for changes in core
2026-03-05 15:22:46 -05:00
sithlord48
2b379b31cd
refactor: SettingsDialog adjust tab layout to have consistant top and bottom margins
2026-03-02 06:31:21 -05:00
sithlord48
8bb23179c4
refactor: SettingsDialog, adjust tray icon style layout
2026-03-02 06:31:21 -05:00
sithlord48
a8588ab507
refactor: SettingsDialog, Fix missing spacing in language combobox with some widget sets
2026-03-02 06:31:21 -05:00
Luiz Sardinha
c80cd56f27
fix: properly handling infinite timeout for macOS on EventQueue
2026-02-27 19:47:59 -05:00
Luiz Sardinha
7743d9008d
refactor: checking for server config files read permissions upon start
2026-02-27 16:21:40 -05:00
Luiz Sardinha
2ecf91e50a
refactor: adding function to check if server config file have the needed read permissions
2026-02-27 16:21:40 -05:00
Luiz Sardinha
d8c7367900
fix: visual error if core start emit errors that modify start/restart visibility
2026-02-27 16:21:40 -05:00
sithlord48
fc1f3b0142
fix: macOS flicker when menu is first clicked if the app is set to autohide on startup
...
fixes : #9523
2026-02-27 12:25:14 +00:00
sithlord48
814d63af28
refactor: MainWindow::EvenFilter set keyEvent in if only
2026-02-27 12:25:14 +00:00
sithlord48
a9bfcf3c81
refactor: SettingsDialog remove minimum size from vertial spacer on network page
2026-02-26 13:10:24 +00:00
sithlord48
fb8104ff86
fix: security icon not being set for clients
...
fixes : #9524
2026-02-26 13:10:24 +00:00
sithlord48
a0a28e7a94
chore: remove untriggerable wayland warnings
2026-02-26 12:52:03 +00:00
sithlord48
9188d4b1c1
build: require libportal 0.9.1
2026-02-26 12:52:03 +00:00
Luiz Sardinha
d392547fd8
fix: ClientProxyUnknownFailure should also remove its client socket
2026-02-26 12:02:28 +00:00
Luiz Sardinha
220bf3178c
fix: correctly deletes sockets that failed to become clients
2026-02-26 12:02:28 +00:00
sithlord48
c0692b6fc7
refactor: remove messages::showClientError, fix mainwindow calling showandactive for non error messages
2026-02-24 17:06:17 +00:00
sithlord48
47ed13868f
refactor: ScreenSetupView remove unneeded include
2026-02-24 16:10:01 +00:00
sithlord48
09d4b1a27a
refactor: Forward Declare more in gui/validators classes
2026-02-24 16:10:01 +00:00
sithlord48
4e641adae9
refactor: ComputerNameValidator define regex static where used
2026-02-24 16:10:01 +00:00
sithlord48
568f5c7fc5
refactor: SpacesValidator, use QChar::Space
2026-02-24 16:10:01 +00:00
sithlord48
a0ac24a42c
refactor: NewScreenWidget::mousePressEvent remove remove unused arg
2026-02-24 16:10:01 +00:00
sithlord48
f69bd5601c
refactor: make NetworkMonitor::validAddresses static
2026-02-24 16:10:01 +00:00
sithlord48
37728cc7a3
refactor: Settings::cleanComputerName do not store empty QString for nothing
2026-02-24 16:10:01 +00:00