695 Commits

Author SHA1 Message Date
Cameron Gutman
3fddfc5557 Fix Clang warnings 2020-12-05 23:20:02 -06:00
Cameron Gutman
ac6630ef59 Add AppVeyor CI builds 2020-12-05 20:12:14 -06:00
Cameron Gutman
0ead0df2a1 Remove usage of long types for LP64 and LLP64 consistency 2020-12-05 16:51:03 -06:00
Cameron Gutman
333382ae74 Use stdint types for ByteBuffer 2020-11-30 22:03:24 -06:00
Cameron Gutman
4b4162c1a1 Fix redefinition warning for errno.h constants on Windows 2020-11-30 20:44:46 -06:00
Cameron Gutman
5f9f7ce407 Code cleanup: use stdbool.h 2020-11-30 20:38:13 -06:00
Cameron Gutman
e9ee868da4 Don't enable QoS for IPv6/NAT64 either 2020-10-31 17:08:29 -05:00
Cameron Gutman
dbf81dcb63 Don't enable QoS for remote IPv4 streams
Some broken routers/CPE will drop all QoS tagged packets
2020-10-28 20:35:45 -05:00
Cameron Gutman
edf08d0a60
Merge pull request #51 from d3m3vilurr/fix-vita-compile
vita: Restore select call on the VITA system
2020-10-22 21:39:53 -05:00
Sunguk Lee
6195007bf3
Add missing poll header parts of the VITA 2020-10-23 11:29:02 +09:00
Cameron Gutman
f15582a090 Update pollSockets() fallback for Vita compatibility 2020-10-22 17:20:07 -05:00
Cameron Gutman
4f42188c1f Test for UDP MTU issues 2020-10-10 13:03:05 -05:00
Cameron Gutman
327917683a Fix platform cleanup on resolveHostName() failure 2020-10-10 12:51:31 -05:00
Cameron Gutman
dbedf938d4 Don't require linking to wlanapi.dll
This is not always available on Windows Server
2020-09-08 18:26:36 -07:00
Cameron Gutman
128c1503f2 Don't perform the connection test in resolveHostName() for single addresses unless required 2020-09-06 17:11:14 -07:00
Cameron Gutman
6ca0b93809 Ignore ICMP Port Unreachable messages on our UDP sockets
These messages can falsely indicate failure in cases where the UDP socket
for audio or video hasn't opened yet when we start to send our PING packets.

It is also problematic when sending STUN requests to multiple IP addresses.
If one returns an ICMP Port Unreachable, it can cause us to fail the entire set
of requests even when other IP addresses do respond.
2020-09-06 14:04:57 -07:00
Cameron Gutman
7b024c967e Try TCP 47989 and TCP 48010 as fallbacks if 47984 doesn't work 2020-09-06 11:55:25 -07:00
Cameron Gutman
9e4651e460 Fix implicit function declaration warnings 2020-08-29 21:13:54 -07:00
Cameron Gutman
38fe65f8bd Remove unused variable 2020-08-29 21:09:35 -07:00
Cameron Gutman
1b022a0d05 Terminate the connection if we can't receive a key frame in 10 seconds 2020-08-29 21:00:05 -07:00
Cameron Gutman
a89fcb8a46 Always use the test port 2020-08-29 19:14:53 -07:00
Cameron Gutman
9064d4931f Add createSocket() helper to reduce code duplication 2020-08-29 18:54:11 -07:00
Cameron Gutman
feaca5b5b0 Use resolveHostName() instead of getaddrinfo() and connectTcpSocket() directly 2020-08-29 18:27:02 -07:00
Cameron Gutman
e74fe2b016 Fix socket errors being clobbered by closeSocket() 2020-08-28 18:48:15 -07:00
Cameron Gutman
5ddd53e17f Enable media streaming mode for 802.11 WLAN interfaces on Windows 2020-08-11 22:12:58 -07:00
Cameron Gutman
f2c1d03d8e Don't bother doing any connection testing if no ports were specified 2020-08-09 12:08:16 -07:00
Cameron Gutman
b59007cdea Fix server-side log spam caused by sending unused command 0x0201 2020-08-09 11:46:49 -07:00
Cameron Gutman
ae00c09cb6 Restore the 500 ms ping logic to prevent warnings in the server-side logs 2020-08-08 23:16:55 -07:00
Cameron Gutman
2fdcfb9429 Accept IPv6 addresses for network testing to support NAT64 2020-08-06 21:59:17 -07:00
Cameron Gutman
453c722fa8 Add LiGetPortFlagsFromTerminationErrorCode() 2020-08-06 21:43:18 -07:00
Cameron Gutman
6010367637 Only allow input packets to be queued between start and stop 2020-08-06 19:12:29 -07:00
Cameron Gutman
f6927475cf Enable poll() in ENet for Linux/BSD 2020-07-27 00:03:22 -07:00
Cameron Gutman
6351749039 Fix TCP connection tests on Linux and BSD 2020-07-26 20:56:39 -07:00
Cameron Gutman
117a7c637f Switch to poll() to be safe against stack corruption from exceeding FD_SETSIZE
Fortunately, the fd_set definition is not prone to stack corruption on Windows,
because FD_SETSIZE is the maximum number of sockets in a fd_set, not
the maximum value socket file descriptor that can be stored in a fd_set.

https://beesbuzz.biz/code/5739-The-problem-with-select-vs-poll
2020-07-26 20:27:58 -07:00
Cameron Gutman
84f2421fbf Add support for client-side connectivity testing 2020-07-19 14:39:42 -07:00
Cameron Gutman
5c9935e11b Temporarily comment out validation of reserved field
FEC doesn't recover this field correctly with GFE 3.20.4.
2020-07-01 11:50:23 -05:00
Cameron Gutman
407d57a50a Update ENet submodule to fix QoS-related connection issues 2020-06-12 21:59:16 -07:00
Cameron Gutman
bea625a13d Work around rounding error in GFE's mouse position scaling 2020-05-26 18:19:53 -07:00
Cameron Gutman
0df24c76c0 Fix incorrect behavior of modifier keys on the right side of the keyboard 2020-05-26 17:33:57 -07:00
Cameron Gutman
f8ffb30e1f Don't send no-op mouse move and scroll events 2020-05-26 17:13:22 -07:00
Cameron Gutman
7b56ab755d Add batching for mouse position packets 2020-05-20 18:56:30 -07:00
Cameron Gutman
b44cad6598 Fix freeing uninitialized pointer on allocation failure 2020-05-20 18:38:58 -07:00
Cameron Gutman
c8faf3539b Replace version check with note for LiSendMousePosition() 2020-05-03 15:56:39 -07:00
Cameron Gutman
495b269a10 Disable FEC on Gen 4 and earlier and assert that FLAG_EXTENSION is present 2020-05-03 15:51:49 -07:00
Cameron Gutman
f911d974c9 Enable FEC validation mode on debug builds 2020-05-02 16:56:13 -07:00
Cameron Gutman
719f690e56 Add an assert to catch incorrectly sized video packets 2020-05-02 16:49:51 -07:00
Cameron Gutman
5ba94e0282 Add FEC validation mode to diagnose FEC recovery failures 2020-05-02 14:24:24 -07:00
Cameron Gutman
f596e80575 Improve logging of video/audio delay and errors 2020-05-01 20:23:44 -07:00
Cameron Gutman
b46e06fcf1 Terminate the connection if video isn't received for 10 seconds 2020-05-01 19:25:24 -07:00
Cameron Gutman
413ea9bc8e Minor RTSP code cleanup 2020-05-01 18:32:26 -07:00