22 Commits

Author SHA1 Message Date
brian bekich
c06f880faa Fixing circular dependency with engine and replay streamer interface
#ROBOMERGE-SOURCE: CL 6858558 via CL 6858559 via CL 6858601
#ROBOMERGE-BOT: (v366-6836689)

[CL 6858605 by brian bekich in Main branch]
2019-06-05 23:48:19 -04:00
brian bekich
38ff14554c Replay interface changes to pass the demo url into the streamer
#rb ryan.gerleve, evan.kinney


#ROBOMERGE-SOURCE: CL 6856445 via CL 6856586 via CL 6857764
#ROBOMERGE-BOT: (v366-6836689)

[CL 6857820 by brian bekich in Main branch]
2019-06-05 21:01:06 -04:00
brian bekich
ec03fb9952 Adding RequestEventGroupData to replay streamer API for batched requests
#rb ryan.gerleve, donal.maccarthy, luciano.ferraro


#ROBOMERGE-SOURCE: CL 6596568 via CL 6596573 via CL 6597505
#ROBOMERGE-BOT: (v351-6581450)

[CL 6597606 by brian bekich in Main branch]
2019-05-21 15:16:07 -04:00
brian bekich
640162676f Add UpdatePlaybackTime to replay streamer interface
#rb jon.nabozny


#ROBOMERGE-SOURCE: CL 6184443 via CL 6185229 via CL 6186446

[CL 6186646 by brian bekich in Main branch]
2019-04-30 20:12:38 -04:00
brian bekich
03cb3cf0a1 Bump default max buffered stream chunks count
#rnx


#ROBOMERGE-SOURCE: CL 6140965 via CL 6140967 via CL 6141544

[CL 6175644 by brian bekich in Main branch]
2019-04-30 11:46:27 -04:00
brian bekich
31d8602eb1 Making some internal serialization values publicly accessible
#rb jon.nabozny


#ROBOMERGE-SOURCE: CL 5993301 via CL 5993304 via CL 5993305 via CL 5993306 via CL 5995299

[CL 5995578 by brian bekich in Main branch]
2019-04-18 17:52:07 -04:00
brian bekich
770e17bfc7 Fixing some thread safety issues with SetLastError
#rb ryan.gerleve


#ROBOMERGE-SOURCE: CL 5831320 via CL 5831566 via CL 5835553

[CL 5836331 by brian bekich in Main branch]
2019-04-12 10:10:44 -04:00
brian bekich
9e19b57c08 removing extra whitespace at top of file
#jira UE-72597
#rnx


#ROBOMERGE-SOURCE: CL 5820575 via CL 5820578 via CL 5820579 via CL 5825515

[CL 5825578 by brian bekich in Main branch]
2019-04-10 22:15:21 -04:00
brian bekich
2cb6581b86 Add flush for loaded replay streamers/factories
#rb ryan.gerleve


#ROBOMERGE-SOURCE: CL 5774348 via CL 5774350 via CL 5774353 via CL 5774834

[CL 5774844 by brian bekich in Main branch]
2019-04-08 11:49:36 -04:00
Brian Bekich
dfe303d25f Fix non-unity compile
#jira none
#rnx
#rb trivial

[CL 5356573 by Brian Bekich in Main branch]
2019-03-08 21:55:33 -05:00
brian bekich
787b5e7c65 Flush local file streamer queue on module shutdown
#rb ryan.gerleve


#ROBOMERGE-SOURCE: CL 5350913 via CL 5351231 via CL 5352228

[CL 5352344 by brian bekich in Main branch]
2019-03-08 15:37:29 -05:00
david harvey
4ecd3d52ea [LLM] created a new Replay tag to further tidy EngineMisc
#rb anthony.bills


#ROBOMERGE-SOURCE: CL 5313026 via CL 5313052 via CL 5315910

[CL 5315991 by david harvey in Main branch]
2019-03-06 13:17:29 -05:00
ryan gerleve
e2af73b780 Made the periodic replay flush log verbose to reduce log spam when recording replays with the LocalFileNetworkReplayStreamer.
[FYI] brian.bekich


#ROBOMERGE-SOURCE: CL 5109791 via CL 5109792 via CL 5109793 via CL 5111042

[CL 5111167 by ryan gerleve in Main branch]
2019-02-21 13:52:28 -05:00
brian bekich
2990a84cbf Add delta replay checkpoints (demo.WithDeltaCheckpoints, disabled by default), implemented for local file and http replay streamers
#rb ryan.gerleve


#ROBOMERGE-OWNER: brian.bekich
#ROBOMERGE-AUTHOR: brian.bekich
#ROBOMERGE-SOURCE: CL 4977682 via CL 4979505 via CL 4980018

[CL 4983195 by brian bekich in Main branch]
2019-02-13 12:29:24 -05:00
Ben Marsh
7598af0532 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

[CL 4662404 by Ben Marsh in Main branch]
2018-12-14 13:41:00 -05:00
Ben Marsh
ea340d3fbf Copying //UE4/Fortnite-Staging to Dev-Main (//UE4/Dev-Main)
#rb none
#lockdown Nick.Penwarden

[CL 4567513 by Ben Marsh in Main branch]
2018-11-14 19:05:13 -05:00
Marc Audy
af90b7bcd4 Copying //UE4/Fortnite-Staging to Dev-Main (//UE4/Dev-Main) @ 4395008
#rb
#rnx
#lockdown Nick.Penwarden

[CL 4395058 by Marc Audy in Main branch]
2018-09-25 10:11:35 -04:00
Marc Audy
d90da4ab1a Merge to Dev-Main for 4.20 @ 4090813
#rb
#rnx
#lockdown Nick.Penwarden

[CL 4091081 by Marc Audy in Main branch]
2018-05-23 21:04:31 -04:00
Ben Marsh
95dbcb7f47 Disabling more benign PVS-Studio warnings.
#rb none
#lockdown Nick.Penwarden

[CL 3951982 by Ben Marsh in Main branch]
2018-03-17 20:46:41 -04:00
Marc Audy
7a0f229e8d Copying //UE4/Fortnite-Staging to //UE4/Dev-Main (Source: //Fortnite/Main/Engine @ 3876564)
#lockdown Nick.Penwarden
#rnx
#rb none

[CL 3903710 by Marc Audy in Main branch]
2018-02-22 11:25:06 -05:00
Ben Marsh
13d012685f Merging copyright update from 4.19 branch.
#rb none
#rnx
#jira

[CL 3818977 by Ben Marsh in Staging-4.19 branch]
2018-01-02 15:30:26 -05:00
Bart Hawthorne
d60243e455 Copying //UE4/Dev-Networking to //UE4/Dev-Main (Source: //UE4/Dev-Networking @ 3802510)
#lockdown Nick.Penwarden
#rb none

============================
  MAJOR FEATURES & CHANGES
============================

Change 3596568 by Ryan.Gerleve

	Restore changelist 3594583

Change 3613386 by John.Barrett

	When a NetConnecton rejects a channel, stop processing further bunches from the same ChIndex, within the same packet.

	Fixes an edge case triggered by NetcodeUnitTest.

Change 3613422 by John.Barrett

	Added net.ForceNetFlush CVar, to force flushing of bunches as soon as they are comitted to the NetConnection buffer.

	Helps give more useful stack traces, when tracing packet sends - but should be considered potentially unstable.

Change 3617584 by John.Barrett

	Error/warning log tweak, to help with NetcodeUnitTest automation support.

Change 3630704 by Jon.Nabozny

	Fix issue where CurrentWorld is null after CancelTravel is called from StartTravel.

Change 3633371 by Ryan.Gerleve

	Merged, from Mike.Fricker: send a single RPC for updating level visibility and loaded status when possible
	- This is an optimization to avoid RPC spam when there are a large number of players connected
	- We now send a single RPC for each local player upon connection or match start to tell the server which levels are visible
	- We now send a single RPC from the server to each connected client to tell them which levels they should have loaded
	- There are still some cases where we don't batch the RPCs, such as when levels are loaded on the fly in the client.

Change 3639159 by Jon.Nabozny

	Fixup code assuming Actor outers were ULevels.

Change 3640190 by Jake.Leonard

	First pass Play in Editor replays. Should be backwards compatible with existing replays.

	#Jira UENET-659

Change 3643356 by Jake.Leonard

	Do not error out if we have a valid pending net game. Current code was erroring and then would attempt to browse again, even though our travel is correct.

	#Jira UE-49672

Change 3648785 by Jake.Leonard

	Add explicit nullcheck

	#Jira UE-49928

Change 3649319 by Jake.Leonard

	Fix the double achievement, save and leaderboard write in shooter game if you are a listen server.

	All of these functions require a localplayer, which is not true in any case but a listen server.

	An RPC that fires off to everyone will end up pushing these stats anyways (since clients write their own stats unless we have server authentication which I don't think UE4 doesn't supports anyways)

	#Jira UE-14327

Change 3659736 by Jake.Leonard

	Fix steam voice not working after a seemless travel.

	#Jira UE-44432

Change 3660990 by John.Barrett

	Major NetcodeUnitTest refactor, providing infrastructure for Fortnite MCP support.

	Full changes:
	- Added UnitTask class, for performing complex game/environment specific setup for UnitTest's, at different stages of execution. Multiple UnitTask's can be assigned to a UnitTest, but they will execute sequentially, and will block UnitTest progression until complete.

	- Added FUnitLogInterface, as a generic interface for UNIT_LOG logging, and optionally redirecting logs back to the parent UnitTest for MinimalClient's and UnitTask's - refactored all log related code to be based on this class

	- Refactored more ClientUnitTest code into MinimalClient, to reduce co-dependence, and to allow MinimalClient use by UnitTask's - and planned future refactors.

	- Added improved tracking/interface, for identifying log events belonging to a particular unit test

	- Added ability to specify join URL options, for MinimalClient

	- Fixed MinimalClient connections, that were broken by changes to the base control channel messages

	- Corrected some relevant logs not getting hooked by the UnitTest log window

	- Suppress PackageMap warning/error logs, caused by NetcodeUnitTest hooks, that were triggering automation failures

Change 3660996 by John.Barrett

	Added full search highlighting, plus search error tips, to the NetcodeUnitTest log windows.

	Full changes:
	- Added search highlighting, with checkbox for enabling/disabling highlighting
	- Added 'tooltip' notifying when a search failed, and when a search wraps/restarts from the top/bottom
	- Focus the search edit box, when the search tab is opened

Change 3660997 by John.Barrett

	Added support for reflection with USoftObjectProperty, plus other reflection tweaks.

	Full changes:
	- Now support reflection with USoftObjectProperty, with cast to FSoftObjectPtr, and can assign soft object properties using strings
	- Added support for UStruct-casting with compile-time checks, using GetStructRef (NOTE: Alters the state of the reflection object)
	- Adjusted FFuncReflection, to allow modification (rather than just reading) of UFunction parameters
	- Added casting of UEnum values to/from strings, and verified proper enum support
	- Fixed conversion of UFunction parameter values to strings, due to transient variables not getting exported
	- Tightened const-correctness in the internal code

Change 3660999 by John.Barrett

	Added simple 'Process Log Watches', to allow use of quick inline delegates/lambda's, to monitor the log output of any process run by a unit test.

Change 3661001 by John.Barrett

	Added '-DumpRPCs' commandline parameter in NetcodeUnitTest, which will dump all received RPC calls (plus full parameters) to the log.

	Has a bug (feature) where it will also dump all sent RPC's as well - distinguish based on Server/Client prefix.

	Other changes:
	- Adjusted FProcessEventHook to support global/process-wide hooks for UE4 VM events (particularly RPC's)

Change 3661003 by John.Barrett

	Added 'FScopedLogSuppress' to NetcodeUnitTest, for suppressing logs within a certain scope - and fixed a bug with the LogTrace command spamming the log.

Change 3661007 by John.Barrett

	Minor NetcodeUnitTest tweaks/fixes.

Change 3661338 by John.Barrett

	Fixed Linux compile warning.

Change 3663237 by John.Barrett

	Attempted static analysis fixes.

Change 3664787 by John.Barrett

	Reduced logspam from scoped logging - and more attempted static analysis fixes.

Change 3674073 by John.Barrett

	Another static analysis fix.

Change 3677370 by John.Barrett

	Static analysis fixes...

Change 3678820 by John.Barrett

	Added '-NetDriverOverrides' commandline parameter, to allow overriding of multiple named net driver definitions, without modifying the config file. See code for documentation.

Change 3679833 by John.Barrett

	Added comment to clarify ambiguous code.

Change 3683251 by John.Barrett

	Improved 'wrong network actors list' error log.

Change 3683252 by John.Barrett

	Added CVars to Steam online subsystem: "OSS.SteamInitServerOnClient" for disabling server API init on clients (to allow running Steam server + client on same computer), and "OSS.SteamUnitTest" to force-enable Steam for unit testing.

Change 3683253 by John.Barrett

	Updated NetcodeUnitTest to work with arbitrary net drivers, plus minor refactoring/fixes.

Change 3683254 by John.Barrett

	Added unit tests for testing basic net driver functionality, for the IP, HTML5 and Steam net drivers.

Change 3683599 by John.Barrett

	Fixed missing includes.

Change 3705189 by Ryan.Gerleve

	Changing filetype in attempt to fix a merge issue

Change 3705219 by Ryan.Gerleve

	Just delete the file, it's not needed anyway.

Change 3719300 by John.Barrett

	Restricted NUTActor spawning on servers, to only happen as part of unit tests.

Change 3719305 by John.Barrett

	Made NetcodeUnitTest plugins Developer-only, and enabled them all by default, for automation tests.

Change 3719943 by Jake.Leonard

	Test harness for Online Presence Interface.

	This does require the testing user to have friends and be connected to the platform.
	Usage is "online test presence [OPTIONAL ID]". The id passed should be an arbitrary non-friend. If no id is passed, the arbitrary lookup test is skipped.

	This test does wait for presence updates for about two minutes, after this time if no updates are recieved, the harness will mark the test as a failure.

	#Jira UE-41232

Change 3720402 by Jake.Leonard

	Steam Rich Presence

	* Adds a new Steam Presence interface
	* Auto-updates presence/status information
	* Fixes up some of the rich presence issues in addition to pushing advertisements of users joining game servers reliably (which should also bandaid UE-10686 until secure sessions are implemented, I was not able to fully test this).

	#Jira UE-41232

Change 3720467 by Jake.Leonard

	Fixing warnings with test interface.

Change 3720533 by Jake.Leonard

	Fix ordering warnings

Change 3723717 by Brian.Bekich

	change package flag check to account for objects being PIE packages

	#jira UE-51513, UE-51601

Change 3723982 by Ryan.Gerleve

	PR #4098: Delete ensure for not found nefield during replay (Contributed by ymartel06)


Change 3724030 by John.Barrett

	Minor NetcodeUnitTest refactor - implemented a tweaked version of GitHub pull #4097 (by GeorgeR).
	Have left out server parms change, as intentionally don't use full project path.


Change 3724047 by Ryan.Gerleve

	PR #4096: Fix ENetDormancy enum states to be exposed properly and fix typo in DORN_MAX (Contributed by konflictue)

	Updated from original PR to fix spelling and add enum redirect for DORN_MAX.


Change 3724845 by John.Barrett

	#PR 4097: Specify full project path for client/server executable (contributed by GeorgeR).


Change 3725519 by Brian.Bekich

	Adding local file replay from single file, supports playback/recording and live playback, compression, and recording/updating of events
	#jira UENET-847

Change 3726561 by Jake.Leonard

	Limit demos to a single active playback in editor.

	Also prevent errors from causing crashes in shootergame because it forces global world destruction.

	#Jira UE-51582

Change 3728494 by Brian.Bekich

	Fix for pvs studio

Change 3730150 by Brian.Bekich

	Handle replication of startup actors that get renamed
	#jira UE-51387
	#jira UE-46951

Change 3730230 by Brian.Bekich

	- Prevent warnings from Start/EndSession when no session exists in ShooterGame
	- Changed warnings to logs in connection status events
	- Disable "Paused" presence key in ShooterGame, it is trivial to spam it in offline games and hit rate limit errors on console

	#jira UE-51252

Change 3734054 by John.Barrett

	Added support for partial packets to NetcodeUnitTest, to support unusually large connect URL's used by Fortnite.

	Fixed a bug where the full connect URL was not passed to NMT_Login.

	Added FScopedNetNameReplace class, for replacing FName's serialized during replication.

Change 3734056 by John.Barrett

	Adjusted -DumpRPCs commandline parameter, to allow filtering for specific RPC's (with partial string matches), in the format:
	-DumpRPCs="RPC1,RPC2"

Change 3734180 by Brian.Bekich

	Fix for single process PIE dedicated server ticking objects it should not

	#jira UE-15947

Change 3744491 by John.Barrett

	Fixed FName crash/exploit while accessing invalid hardcoded names.

	#JIRA UENET-787

Change 3750058 by Ryan.Gerleve

	Disable net.UseAdaptiveNetUpdateFrequency by default. This causes too many regressions for users who are not using ForceNetUpdate() aggressively.

	#jira UE-45681

Change 3750650 by John.Barrett

	Added "-MaxAlloc=x" commandline parameter, for limiting the maximum size of any single memory (re)allocation, for debugging.

Change 3750651 by John.Barrett

	Adjusted ClientUnitTest to allow overriding of the MinimalClient class.

	Fixed AssertDisable command.

Change 3751738 by John.Barrett

	Fixed missed non-shipping check.

Change 3752561 by John.Barrett

	Made NMT_Login serialize RequestURL as a string again, instead of a TArray - as the latter had no checks for strings with invalid data, which allowed reading past the end of the raw array data.

	Also increased the maximum string serialize size, while processing NMT_Login, to allow Fortnite's enormous join URL's - this removes the need to use TArray for the join URL.

	#JIRA UENET-850

Change 3752562 by John.Barrett

	Made the MinimalClient use a string for the NMT_Login URL again.

Change 3758533 by John.Barrett

	Moved NetcodeUnitTest CIS/Automation commandline to file - to help with future tweaks.

Change 3758901 by Brian.Bekich

	Modify FSimpleAbstractSocket_FSocket::Send to handle partial sends

	#jira UE-52393

Change 3761445 by Brian.Bekich

	Fix for temporary scopelocks in steam user cloud interface

Change 3761503 by John.Barrett

	Adjusted serialization of TArray's to FArchive's, to properly handle serialization of invalid/negative ArrayNum values, and to limit maximum serialization for archives used by the netcode.

	#JIRA UENET-850

Change 3764345 by Ryan.Gerleve

	PR #4225: Allow dedicated servers to use voice subsystem override (Contributed by sswires)


Change 3772444 by John.Barrett

	Adjusted control channel message defines, to require checking that received parameters were serialized successfully, before executing the message.

Change 3772445 by John.Barrett

	Updated control channel messages, to check that parameters were serialized properly.

Change 3773647 by John.Barrett

	Fixed a crash/exploit with the lobby ServerKickPlayer function.

	#JIRA UENET-732

Change 3775618 by John.Barrett

	Made array serialization security fix, more limited in scope, to fix issue with ArrayNum serialization.

Change 3788035 by Jake.Leonard

	Fix the test presence harness crashing because the subsystem doesn't have a presence interface hooked up. Also prevent crashes due to already being in a session when the command runs.

	#Jira UE-52806, UE-52810

Change 3790676 by Jake.Leonard

	Add a world destruction watch to make sure that nothing crashes during the presence test incorrectly due to dangling deleted pointers.

	#Jira UE-52961

Change 3792485 by Ryan.Gerleve

	Fix merge issues

Change 3793285 by Jake.Leonard

	Check to see if the perf counter module is loaded before trying to write stats. This causes perfcounters module to not be loaded during garbage collection.

	See comments in JIRA ticket.

	#Jira UE-51619

Change 3793402 by Jake.Leonard

	Fix the timer that did not clean up properly in a very specific case, thus causing the timer to fire after a test has completed. This now will end the timers correctly.

	#Jira UE-52961

Change 3793517 by Jake.Leonard

	Fix randrange going out of bounds during a presence test.

	#Jira UE-52961

Change 3793563 by Jake.Leonard

	Fix yet another crash in the presence test where the world is null while spamming the test command several times in rapid succession.

	#Jira UE-52961

Change 3797866 by Bart.Hawthorne

	Remove check that would get hit if the player tries to server travel to a world that has the same name as a uasset. Instead, log the failure. The player can then travel using the full path of the umap.

	#jira UE-51605

Change 3801245 by Bart.Hawthorne

	Fix oodle2.h include directive

[CL 3802705 by Bart Hawthorne in Main branch]
2017-12-11 18:59:06 -05:00