Commit Graph

384 Commits

Author SHA1 Message Date
ReenigneArcher 0eb84dcca8 Add NXDK (Xbox) support
CMake / CMake ubuntu-latest Debug (push) Cancelled after 0s
CMake / CMake windows-latest Debug (push) Cancelled after 0s
CMake / CMake macos-latest Release (push) Cancelled after 0s
CMake / CMake ubuntu-latest Release (push) Cancelled after 0s
CMake / CMake windows-latest Release (push) Cancelled after 0s
CMake / CMake macos-latest Debug (push) Cancelled after 0s
2026-05-23 18:45:48 -05:00
MrCreativ3001 c7353c0593 Use lowercase windows headers for easier cross-compilation 2026-02-20 19:32:47 -06:00
Cameron Gutman 78cc9b4b03 Only pass the peer's local address if the host was wildcard bound 2026-02-06 23:20:39 -06:00
ReenigneArcher dea6fb5414 Add FreeBSD support for IP_RECVDSTADDR and IP_SENDSRCADDR
This commit adds compatibility for FreeBSD by using IP_RECVDSTADDR and IP_SENDSRCADDR in place of IP_PKTINFO for IPv4 socket operations. It ensures correct handling of source and destination addresses on FreeBSD systems where struct in_pktinfo is not available.
2025-11-09 20:29:40 -06:00
AorsiniYT 115a10baa1 Removes unnecessary definitions for PS Vita and ensures unavailability of the Messages API. 2025-07-04 16:58:56 -05:00
Cameron Gutman 44c85e1627 Further improve ping interval wait logic 2024-10-20 17:05:36 -05:00
Cameron Gutman badcd6c01d Fix waking early to send pings 2024-10-20 16:32:16 -05:00
Cameron Gutman b757dc7c28 Wake from the socket wait for a peer RTO 2024-10-20 16:16:57 -05:00
Cameron Gutman bbf71856bb Use SO_NONBLOCK on Haiku 2024-06-10 23:44:39 -05:00
Roberto Acevedo 76125b56b3 Update unix.c
Added check to compile in Haiku
2024-06-10 23:35:15 -05:00
Cameron Gutman 9e1cfe280a Fix -Wsign-compare warning 2024-05-25 17:08:01 -05:00
GaryOderNichts 0032f5e750 Implement support for userbuffers on Wii U
The Wii U socket implementation has limited memory available. To support larger receive buffers, application memory needs to be provided.
To make sockets use this user memory the `SO_RUSRBUF` option needs to be set on the socket.
2024-02-18 13:35:43 -06:00
Cameron Gutman d3a323fc8b Don't use VersionHelpers.h on UWP 2024-02-03 17:18:59 -06:00
Cameron Gutman 04e2759067 Enable ECN/L4S on Windows 10 2024-02-03 15:04:23 -06:00
Cameron Gutman a754295f42 Enable ECN/L4S on UNIX
Since this is enabled as a QoS option, it will benefit from the opportunistic
disablement code when ECN-intolerant networks are encountered.
2024-02-03 14:34:24 -06:00
Cameron Gutman a92d6960a6 Enable DSCP tagging in addition to using SO_NET_SERVICE_TYPE on macOS/iOS
It appears SO_NET_SERVICE_TYPE doesn't always enable DSCP tagging, so let's do it manually too.
2024-02-01 18:24:53 -06:00
zoeyjodon a339bf51c8 Prevent Polling from Blocking on 3DS (#15) 2024-02-01 18:23:03 -06:00
Cameron Gutman 061ce30163 Add IN6ADDR_V4MAPPEDPREFIX_INIT definition for MinGW 2024-02-01 01:14:56 -06:00
Cameron Gutman c76572875a Add workaround for qWAVE bug with IPv4-mapped IPv6 addresses 2024-02-01 01:11:41 -06:00
Cameron Gutman f6e67b1138 Automatically disable QoS tagging on the server-side too for blackhole router scenarios
Also bump the threshold for QoS disablement to 3 losses to avoid unnecessary fallbacks on the server side.
2024-01-31 23:31:04 -06:00
Cameron Gutman acf813c4aa Ignore some socket errors that may be caused by transient network interruptions
This allows the ENet connection to survive WiFi network roaming.
2024-01-24 23:22:19 -06:00
Cameron Gutman c6bb0e5011 Add workaround for Apple kernel bug 2023-12-28 16:07:39 -06:00
Cameron Gutman 43218d4de2 Add warning when IPv6 options are not defined on Apple platforms 2023-12-28 00:35:46 -06:00
zoeyjodon 89a7ebd63d Reduce 3DS MTU (#14) 2023-12-22 12:48:34 -06:00
zoeyjodon c07aa74c60 Add 3DS configuration (#13)
* Adds unix definitions for the 3DS
Guards AF_INET6 options for 3DS builds
2023-11-10 15:09:07 -06:00
Arthur Kasimov bbfe93c248 Add CMake option to disable installation of headers and libraries 2023-09-20 20:51:32 -05:00
Cameron Gutman 880e41f3ab Fix QOS_FLOWID detection with new MinGW headers 2023-07-30 13:58:58 -05:00
Cameron Gutman 50ab7907d8 Don't enable QoS marking on ENet connections by default
The caller will enable this itself if appropriate for the given usage.
2023-07-30 13:56:05 -05:00
Cameron Gutman 68ffba7d45 Adjust RTO logic to retransmit more quickly on links with high RTT variance
Since Moonlight uses ENet for highly latency sensitive but very low bandwidth traffic flows, we'd rather generate a little excess traffic than wait too long to retransmit.
2023-07-30 13:52:25 -05:00
Cameron Gutman bbed828aae Cap the retransmit timer at 1/5 of the max peer timeout
This helps avoiding spurious disconnections in cases of large RTT variance
2023-07-26 00:57:05 -05:00
Cameron Gutman bdda0eecc5 Merge remote-tracking branch 'upstream/master' into moonlight 2023-07-25 21:54:49 -05:00
Lee Salzman 2a85cd6445 better partial message handling 2023-07-23 21:05:47 -04:00
Cameron Gutman 4979b629c2 Fix build after removal of roundTripTimeoutLimit 2023-07-08 11:14:46 -05:00
Cameron Gutman 33c726ab73 Merge remote-tracking branch 'upstream/master' into moonlight 2023-07-08 10:59:10 -05:00
Elia Zammuto 441a6e9c5b UWP Support (#10)
* Fixed Build for UWP
2023-07-08 08:22:12 -05:00
Cameron Gutman 7914bc74a9 Switch from timeGetTime() to GetTickCount() which is available for UWP apps too 2023-07-07 21:42:28 -05:00
Cameron Gutman fc123218d3 Don't adjust timer period when ENet is initialized
We handle this elsewhere in Moonlight and Sunshine when actually streaming
2023-07-07 21:41:49 -05:00
Lee Salzman ea4607a90d lower default MTU to 1392 to avoid stressing certain VPNs 2023-04-02 16:48:09 -04:00
Lee Salzman 8ae0e85298 update connecting peer's mtu from host's current mtu 2023-04-01 14:49:22 -04:00
Michael Keck 07a40ef0f9 Add GitHub Actions CI (#188)
Add GitHub Actions CI
2023-03-21 09:24:33 -04:00
Lee Salzman eb89a34d66 Merge pull request #222 from seragh/server-mtu
Fix MTU negotiation on server side
2023-03-10 14:01:19 -05:00
Ralph Sennhauser 4faa11a243 Fix MTU negotiation on server side
On connect the MTU sent by the client gets stored and sent back
unchanged if within minimum and maximum of the protocol. Then on verify
connect a test is done if the returned MTU is smaller than the current
MTU and if so gets adjusted. So as long as the MTU is within boundaries
only the client specified MTU is relevant.

This patch adds a check for smaller MTU on server side.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2023-03-10 09:41:55 +01:00
Chris Pable 47e42dbf42 Fix overlooked address -> peerAddress rename (#9) 2023-03-05 14:30:18 -06:00
Lee Salzman 153e10f953 Relocate home to http://sauerbraten.org/enet/ 2023-03-02 22:43:35 -05:00
Cameron Gutman e790647a57 Correctly support hosts with multiple possible source addresses 2023-02-12 15:35:34 -06:00
Lee Salzman be7cefa39c avoid explicitly storing roundTripTimeoutLimit 2023-02-05 00:55:34 -05:00
Lee Salzman 9dde91d003 remove unnecessary sent unreliable list from peers 2023-02-04 23:20:39 -05:00
Lee Salzman ca18dfb8f8 avoid revisiting peers when continuing to send 2023-02-04 22:48:18 -05:00
Lee Salzman d7e5470cf7 maintain a separate queue for outgoing send reliable packets 2023-02-04 22:16:19 -05:00
Lee Salzman bb788ea48b Merge pull request #217 from skyfloogle/ttl
Add ENET_SOCKOPT_TTL
2023-01-08 14:08:39 -05:00