Commit graph

111 commits

Author SHA1 Message Date
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
Nick Bolton
66c9b6607c feat(ipc): Messaging for connection states via IPC (async client) 2026-04-07 13:09:29 +01:00
sithlord48
ca6220ad30 refactor: remove redundant c_str when setting logError 2026-03-30 10:36:15 +01: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
Luiz Sardinha
220bf3178c fix: correctly deletes sockets that failed to become clients 2026-02-26 12:02:28 +00:00
sithlord48
be4e861604 feat: use Computer in settings to replace name
provide Settings::upgradeSettings to upgrade the screenName -> computerName
Make a note to remove "ScreenName" for 2.0
2026-02-03 18:55:17 +00:00
gayanMatch
35ee17f959 fix: macOS server crash when client disconnects abruptly 2026-01-12 10:49:02 +00:00
sithlord48
a6daff59f6 refactor: SecureSocket::doWrite remove unnessessary reset of bufferSize 2025-12-02 08:37:30 -05:00
sithlord48
dc76366a48 fix: SecureSocket::secureConnect, uset SSL host name before connect 2025-12-02 08:37:30 -05:00
sithlord48
7d07222832 refactor: SecureSocket::loadCertificates(const std::string) & => SecureSocket::loadCertificate(const QString &) 2025-12-02 08:37:30 -05:00
sithlord48
2dfba73cfb refactor: use QCryptographicHash::Algorithm in place of Fingerprint::Type 2025-11-27 08:05:04 -05:00
sithlord48
f8b299ff67 chore: IStream remove unused includes 2025-11-07 15:54:19 -05:00
sithlord48
5966b8f1b8 chore: SecureSocket remove unused includes 2025-11-06 09:12:18 -05:00
sithlord48
8c6fa880b4 refactor: SecureSocket do not set retry on failure to false when disconnecting 2025-10-29 08:32:58 -04:00
sithlord48
83e0a6b1ea refactor: SSL_Options, ignore client disconnect w/o close message 2025-10-29 08:32:58 -04:00
sithlord48
7f7e7de841 chore: SecureSocket serviceConnect / serviceAccept make anonymous ISocketMultiplexer a pointer const 2025-09-25 15:01:17 +01:00
sithlord48
30ce0bdf45 refactor: SecureSocket, remove names for unused parameters for socket service accept and serviceConnect 2025-09-05 11:52:17 +01:00
sithlord48
cba3881f41 refactor: Move all messages that are checked for by GUI in the log to new IPC Level so the gui can work with any filter level 2025-08-28 00:45:40 +01:00
sithlord48
97e3524a24 build: SecureSocket, include io/FileSystem in SecureSocket.cpp 2025-08-22 09:54:20 +01:00
sithlord48
299ebea0e2 refactor: replace QString::toStdString().c_str with qPrintable(...) 2025-08-22 09:54:20 +01:00
sithlord48
85d89f9846 refactor: XArch Classes => Arch Exception Classes 2025-08-11 17:14:45 +01:00
sithlord48
2a84ef0ebf refactor: update log calls to LOG_... fixes #8819 2025-08-06 16:18:38 +01:00
sithlord48
cfccee1592 refactor: TCPSocket, make m_events private access via getEvents method 2025-08-04 13:46:27 +01:00
sithlord48
9db11a90eb refactor: TCPSocket, new protected methods to access m_readable, m_writable and m_connected, use them in place of direct access and make the variables private
TCPSocket, remove duplicate private and protected sections in header
2025-07-17 18:47:50 +01:00
sithlord48
d1b810baa5 refactor: use std::size to get size of arrays 2025-07-17 18:47:50 +01:00
sithlord48
94be5f7498 refactor: TCPSocket::EJobResult => enum class TCPSocket::JobResult 2025-07-11 03:06:24 -07:00
sithlord48
32e6a84a6f chore: remove unused anon enum in SecureSocket 2025-07-11 03:06:24 -07:00
sithlord48
c6778dc9be refactor: use more if and switch init-statements 2025-07-07 17:53:56 +01:00
sithlord48
0100cb796e chore: SecureSocket remove unused MAX_ERROR_SIZE define , rename MAX_INPUT_BUFFER_SIZE static to confirm to naming convention 2025-07-07 17:53:56 +01:00
sithlord48
ab4fbd1c85 refactor: use using enum EventTypes when possible to reduce verbosity 2025-07-03 03:24:16 +00:00
sithlord48
879283f46f refactor: Make IArchNetwork::EAddressFamily enum class IArchNetwork::AddressFamily
confirm AddressFamily items to naming convention
2025-07-03 03:24:16 +00:00
sithlord48
06a616ef42 refactor: secureSocket uniqueprt for Ssl object
based on: 89d8ce20b0
2025-06-19 19:13:24 +01:00
sithlord48
dbc7aebfbc refactor: free SecureSocket cert after use 2025-06-19 18:56:14 +01:00
sithlord48
3a35b183d3 refactor: use std::function for Event callback
based on 6d347337c3
2025-06-18 13:17:16 +01:00
sithlord48
c15214aee7 refactor: use std::scoped_lock inplace of std::lock_guard 2025-06-17 10:23:42 +01:00
sithlord48
5fd4d93f7f refactor: replace ARCH->sleep(...) calls with Arch::sleep(...) 2025-06-17 10:23:42 +01:00
sithlord48
e6a374369b chore: use const for more local ref and pointer vars 2025-05-28 09:42:08 +01:00
sithlord48
9c56fa5dda chore: Combine unnessessary multi level if into less fewer checks 2025-05-28 09:42:08 +01:00
sithlord48
475b895755 chore: initialize class vars using the order class define, initilizer list, constructor 2025-05-23 10:19:11 -07:00
sithlord48
fe12972e83 chore: use const pointer / ref where possible 2025-05-22 20:46:41 +01:00
sithlord48
3cf0fb89ef chore: add comment to empty methods 2025-05-20 16:20:07 +01:00
sithlord48
c224cd4661 chore: declare const methods recommened by sonar 2025-05-20 16:20:07 +01:00
sithlord48
332e6c4a4d refactor: do not write sha1 to localdb and no longer send sha1 as part of comparison 2025-05-15 15:46:16 +01:00
sithlord48
0309d35aef feat: port fingerprint info into Qt
mv FingerprintData -> Fingerprint
2025-05-13 11:32:02 -04:00
sithlord48
55a7fa3266 Port simplified EventTypes from 8b23570379 2025-05-05 17:17:01 -04:00
sithlord48
e87c596fbe chore: SecureSocket, add missing nullptr replacement 2025-05-02 12:12:17 +01:00
sithlord48
0d3f7248ed chore: SecureSocket, use auto where possible 2025-04-28 13:50:43 +01:00
sithlord48
63d65bb47b chore: use nullptr where possible in place of NULL 2025-04-28 13:08:40 +01:00
sithlord48
ffbe2cf885 refactor: use Settings for secure connect certificate path 2025-03-19 20:01:01 +00:00