Commit Graph

6864 Commits

Author SHA1 Message Date
akallabeth
df26d30c84 [core,gateway] fix WINPR_CIPHER_TYPE initial value 2026-01-09 09:24:12 +01:00
Ondrej Holy
72585691fd [core,tcp] Fix PreferIPv6OverIPv4 fallback to IPv4 addresses
Currently, when the `FreeRDP_PreferIPv6OverIPv4` option is `TRUE` and
the `getaddrinfo` function returns IPv4 addresses before IPv6 addresses,
the code tries all IPv6 addresses, but it doesn't try any IPv4 address.
This happens because the `get_next_addrinfo` function skips to the first
IPv6 address, but never goes back to try IPv4 addresses that appeared
earlier in the list. Let's fix this by reordering the address list
first when the `PreferIPv6OverIPv4` option is `TRUE`.

Co-Authored-By: Claude <noreply@anthropic.com>

Related: https://github.com/FreeRDP/FreeRDP/issues/5335
2026-01-08 16:36:37 +01:00
Ondrej Holy
0bdd8da099 [core,tcp] Don't ignore connect errors
The `freerdp_tcp_connect_timeout` function doesn't fail currently in the
case of connection failure (e.g. destination unreachable). It fails only
in the case of the `WSAECONNRESET` error. That seems to be regression from
the refactoring made by commit e6c23cb5. Let's use again the recommended
`getsockopt` function with the `SO_ERROR` argument to check for errors and
fail for all kinds of errors. The nice side-effect is that FreeRDP now
fails with "Failed to connect" instead of "Broken pipe" error.

Co-Authored-By: Claude <noreply@anthropic.com>

Related: https://github.com/FreeRDP/FreeRDP/issues/5335
2026-01-08 16:36:37 +01:00
Ondrej Holy
bd67348eb3 [core,tcp] Try next DNS entry on connect failure
FreeRDP still fails to connect when first DNS entry is unreachable. The
commit 4286a4c doesn't fix that unfortunately. It tries to create a socket
for all DNS entries until the socket is created, but it doesn't verify
that it is actually possible to connect to that socket. Let's call also
the `freerdp_tcp_connect_timeout` function for all the entries until success.

Co-Authored-By: Claude <noreply@anthropic.com>

Related: https://github.com/FreeRDP/FreeRDP/issues/5335
2026-01-08 16:36:37 +01:00
Armin Novak
e65d488a51 [core,tcp] refactor freerdp_tcp_default_connect 2026-01-08 16:36:37 +01:00
Armin Novak
90eae383ee [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:47 +01:00
Armin Novak
7b8bbd7fd9 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:47 +01:00
Armin Novak
c307aa23c8 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:47 +01:00
Armin Novak
f8ac8fb7b6 [c,warnings] fix unterminated string warnings
initialize variables as array to avoid warnings with gcc >= 15 or clang
2026-01-08 11:32:47 +01:00
Armin Novak
a63165939d [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:47 +01:00
Armin Novak
6b36ace10b [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:42 +01:00
Armin Novak
2a1c0bbdfc [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:42 +01:00
Armin Novak
d228b0f3d3 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:42 +01:00
Armin Novak
aa96853483 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:42 +01:00
Armin Novak
abb7d9db17 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:42 +01:00
Armin Novak
aabaf91f9c [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:42 +01:00
Armin Novak
361d0e80f8 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:41 +01:00
Armin Novak
7ba7501777 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:41 +01:00
Armin Novak
8343f0596f [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:41 +01:00
Armin Novak
2d3cb653ce [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:41 +01:00
Armin Novak
4a2262d52a [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:41 +01:00
Armin Novak
f7478f906c [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:41 +01:00
Armin Novak
385e697f34 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:40 +01:00
Armin Novak
c173891d78 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:40 +01:00
Armin Novak
e935146e07 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:40 +01:00
Armin Novak
8ba3babc09 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:40 +01:00
Armin Novak
fe63c0a362 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:40 +01:00
Armin Novak
bc76a09d3b [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:40 +01:00
Armin Novak
4047139905 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:40 +01:00
Armin Novak
97c435d5ed [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:39 +01:00
Armin Novak
5985bda2b0 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:39 +01:00
Armin Novak
ab75b85531 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:39 +01:00
Armin Novak
40704c5213 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:39 +01:00
Armin Novak
d93e09e942 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:39 +01:00
Armin Novak
f7c0bdca6a [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:39 +01:00
Armin Novak
9272d8b255 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:38 +01:00
Armin Novak
d22df6c6e5 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:38 +01:00
Armin Novak
ad80c7a719 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:38 +01:00
Armin Novak
5224c35fe0 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:38 +01:00
Armin Novak
38d1eaf0b0 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:38 +01:00
Armin Novak
2f3c9aff3c [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:37 +01:00
Armin Novak
6e5993c768 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:37 +01:00
Armin Novak
383255409e [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:37 +01:00
Armin Novak
c607056f93 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:37 +01:00
Armin Novak
a177d4af39 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:37 +01:00
Armin Novak
ef8b76887a [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:37 +01:00
Armin Novak
c3faabebec [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:36 +01:00
Armin Novak
3a250af8f5 [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:36 +01:00
Armin Novak
32e831506b [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:36 +01:00
Armin Novak
69103d5a5a [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:36 +01:00