ConnectionTimeout

ConnectionTimeout

#Overview

name: ConnectionTimeout

The value of this variable can be defined or overridden in .ini config files. 3 .ini config files referencing this setting variable.

It is referenced in 38 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of ConnectionTimeout is to define the maximum duration allowed for establishing or maintaining a network connection before it is considered failed. This setting is crucial for managing network communications and ensuring that the system doesn’t hang indefinitely waiting for unresponsive connections.

ConnectionTimeout is used across various Unreal Engine subsystems and plugins, including:

  1. Networking and Online Subsystems
  2. HTTP and Web Services
  3. Remote Session and Debugging
  4. Media Streaming
  5. Virtual Production

The value of this variable is typically set in configuration files or through code, depending on the specific subsystem. For example:

ConnectionTimeout often interacts with other timeout-related variables, such as:

Developers should be aware of the following when using ConnectionTimeout:

  1. Setting it too low may cause premature disconnections in slow network conditions
  2. Setting it too high may lead to long waits before detecting actual connection issues
  3. Different subsystems may have their own ConnectionTimeout implementations

Best practices for using ConnectionTimeout include:

  1. Adjust the value based on the expected network conditions and application requirements
  2. Consider using different timeout values for debug/development and production environments
  3. Implement proper error handling and user feedback when timeouts occur
  4. Monitor and log timeout occurrences to identify potential network issues
  5. For critical operations, consider implementing a retry mechanism with exponential backoff

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Config/BaseEngine.ini:1630, section: [/Script/OnlineSubsystemUtils.IpNetDriver]

Location: <Workspace>/Engine/Config/BaseEngine.ini:2257, section: [/Script/SteamSockets.SteamSocketsNetDriver]

Location: <Workspace>/Engine/Plugins/Experimental/WebSocketNetworking/Config/BaseWebSocketNetDriver.ini:10, section: [/Script/WebSocketNetworking.WebSocketNetDriver]

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Plugins/Bridge/Source/MegascansPlugin/Public/TCPServer.h:33

Scope (from outer to inner):

file
class        class FTCPServer : public FRunnable

Source code excerpt:

	FString LocalHostIP = "127.0.0.1";
	int32 PortNum = 13429; 
	int32 ConnectionTimeout;
	TArray<class FSocket*> Clients;

	void HandleIncomingSocket(FSocket* IncomingConnection);
	static TQueue<FString> ImportQueue;

private:	

#Loc: <Workspace>/Engine/Plugins/Experimental/QuicMessaging/Source/QuicMessagingTransport/Private/QuicUtils.cpp:77

Scope (from outer to inner):

file
namespace    QuicUtils
function     EQuicEndpointError ConvertQuicStatus

Source code excerpt:

		case QUIC_STATUS_CONNECTION_TIMEOUT:

			EndpointError = EQuicEndpointError::ConnectionTimeout;
			break;

		case QUIC_STATUS_CONNECTION_IDLE:

			EndpointError = EQuicEndpointError::ConnectionIdle;
			break;

#Loc: <Workspace>/Engine/Plugins/Experimental/QuicMessaging/Source/QuicMessagingTransport/Private/QuicUtils.cpp:198

Scope (from outer to inner):

file
namespace    QuicUtils
function     FString GetEndpointErrorString

Source code excerpt:

			break;

		case EQuicEndpointError::ConnectionTimeout:

			ErrorMessage = "Connection timed out while waiting for a response from peer";
			break;

		case EQuicEndpointError::ConnectionIdle:

#Loc: <Workspace>/Engine/Plugins/Experimental/QuicMessaging/Source/QuicMessagingTransport/Public/QuicFlags.h:237

Scope: file

Source code excerpt:


	/** Connection timed out while waiting for a response from peer. */
	ConnectionTimeout,

	/** Connection timed out from inactivity. */
	ConnectionIdle,

	/** Internal error. */
	InternalError,

#Loc: <Workspace>/Engine/Plugins/Experimental/RemoteSession/Source/RemoteSession/Private/RemoteSessionClient.cpp:15

Scope (from outer to inner):

file
function     FRemoteSessionClient::FRemoteSessionClient

Source code excerpt:

	ConnectionAttemptTimer = FLT_MAX;		// attempt a connection asap
	TimeConnectionAttemptStarted = 0;
    ConnectionTimeout = 5;

	IsConnecting = false;

	if (HostAddress.Contains(TEXT(":")) == false)
	{
		HostAddress += FString::Printf(TEXT(":%d"), (int32)IRemoteSessionModule::kDefaultPort);

#Loc: <Workspace>/Engine/Plugins/Experimental/RemoteSession/Source/RemoteSession/Private/RemoteSessionClient.cpp:111

Scope (from outer to inner):

file
function     void FRemoteSessionClient::CheckConnection

Source code excerpt:

	if (IsConnected() == false)
	{
		if (Success == false || TimeSpentConnecting >= ConnectionTimeout)
		{
			IsConnecting = false;
			
			FString Msg;
			
			if (TimeSpentConnecting >= ConnectionTimeout)
			{
				Msg = FString::Printf(TEXT("Timing out connection attempt after %.02f seconds"), TimeSpentConnecting);
			}
			else
			{
				Msg = TEXT("Failed to check for connection. Aborting.");

#Loc: <Workspace>/Engine/Plugins/Experimental/RemoteSession/Source/RemoteSession/Private/RemoteSessionClient.h:35

Scope (from outer to inner):

file
class        class FRemoteSessionClient : public FRemoteSessionRole

Source code excerpt:

	
	bool				IsConnecting;
    float               ConnectionTimeout;

	double				ConnectionAttemptTimer;
	double				TimeConnectionAttemptStarted;
	
	FDelegateHandle		ChannelCallbackHandle;

#Loc: <Workspace>/Engine/Plugins/Experimental/RemoteSession/Source/RemoteSession/Private/RemoteSessionRole.cpp:100

Scope (from outer to inner):

file
function     void FRemoteSessionRole::Tick

Source code excerpt:

	const URemoteSessionSettings* ConnectionSettings = GetDefault<URemoteSessionSettings>();

	const float kTimeout = FPlatformMisc::IsDebuggerPresent() ? ConnectionSettings->ConnectionTimeoutWhenDebugging : ConnectionSettings->ConnectionTimeout;
	const float kPingTime = ConnectionSettings->PingTime;

	if (PendingState != ConnectionState::Unknown)
	{
		UE_LOG(LogRemoteSession, Log, TEXT("Processing change from %s to %s"), LexToString(CurrentState), LexToString(PendingState));
		// pass this in so code can know where we came from if needed

#Loc: <Workspace>/Engine/Plugins/Experimental/RemoteSession/Source/RemoteSession/Public/RemoteSessionTypes.h:72

Scope (from outer to inner):

file
class        class URemoteSessionSettings : public UObject

Source code excerpt:

	/* Time until a connection will timeout  */
	UPROPERTY(config)
	int32 ConnectionTimeout = 7;

	/* Time until a connection will timeout when a debugger is attached  */
	UPROPERTY(config)
	int32 ConnectionTimeoutWhenDebugging = 30;

	/* Time between pings  */

#Loc: <Workspace>/Engine/Plugins/Media/ElectraPlayer/Source/ElectraPlayerRuntime/Private/Runtime/Player/AdaptiveStreamingPlayerResourceRequest.cpp:90

Scope (from outer to inner):

file
namespace    Electra
function     bool FHTTPResourceRequest::SetFromJSON

Source code excerpt:

			if (JSONParams->TryGetNumberField(TEXT("ctoms"), TimeOutMS))
			{
				ConnectionTimeout(FTimeValue(FTimeValue::MillisecondsToHNS(TimeOutMS)));
			}

			// No-data timeout in milliseconds
			TimeOutMS = 0;
			if (JSONParams->TryGetNumberField(TEXT("ndtoms"), TimeOutMS))
			{

#Loc: <Workspace>/Engine/Plugins/Media/ElectraPlayer/Source/ElectraPlayerRuntime/Private/Runtime/Player/AdaptiveStreamingPlayerResourceRequest.h:102

Scope (from outer to inner):

file
namespace    Electra
class        class FHTTPResourceRequest : public TSharedFromThis<FHTTPResourceRequest, ESPMode::ThreadSafe>
function     virtual FHTTPResourceRequest& ConnectionTimeout

Source code excerpt:

	{ Request->Parameters.AcceptEncoding.Set(InAcceptEncoding); return *this; }
	
	virtual FHTTPResourceRequest& ConnectionTimeout(const FTimeValue& InTimeoutAfter)
	{ Request->Parameters.ConnectTimeout = InTimeoutAfter; return *this; }
	
	virtual FHTTPResourceRequest& NoDataTimeout(const FTimeValue& InTimeoutAfter)
	{ Request->Parameters.NoDataTimeout = InTimeoutAfter; return *this; }
	
	virtual FHTTPResourceRequest& AllowStaticQuery(IAdaptiveStreamingPlayerResourceRequest::EPlaybackResourceType InStaticQueryType)

#Loc: <Workspace>/Engine/Plugins/Media/ElectraPlayer/Source/ElectraPlayerRuntime/Private/Runtime/Player/DASH/PlaylistReaderDASH.cpp:907

Scope (from outer to inner):

file
namespace    Electra
function     void FPlaylistReaderDASH::SetupRequestTimeouts

Source code excerpt:

		case FMPDLoadRequestDASH::ELoadType::MPD:
		{
			InRequest->Request->ConnectionTimeout(PlayerSessionServices->GetOptionValue(DASH::OptionKeyMPDLoadConnectTimeout).SafeGetTimeValue(FTimeValue().SetFromMilliseconds(1000 * 8)));
			InRequest->Request->NoDataTimeout(PlayerSessionServices->GetOptionValue(DASH::OptionKeyMPDLoadNoDataTimeout).SafeGetTimeValue(FTimeValue().SetFromMilliseconds(1000 * 5)));
			break;
		}
		case FMPDLoadRequestDASH::ELoadType::MPDUpdate:
		{
			InRequest->Request->ConnectionTimeout(PlayerSessionServices->GetOptionValue(DASH::OptionKeyMPDReloadConnectTimeout).SafeGetTimeValue(FTimeValue().SetFromMilliseconds(1000 * 2)));
			InRequest->Request->NoDataTimeout(PlayerSessionServices->GetOptionValue(DASH::OptionKeyMPDReloadNoDataTimeout).SafeGetTimeValue(FTimeValue().SetFromMilliseconds(1000 * 2)));
			break;
		}
		case FMPDLoadRequestDASH::ELoadType::Segment:
		{
			InRequest->Request->ConnectionTimeout(FTimeValue(FTimeValue::MillisecondsToHNS(1000 * 5)));
			InRequest->Request->NoDataTimeout(FTimeValue(FTimeValue::MillisecondsToHNS(1000 * 2)));
			InRequest->Request->AcceptEncoding(TEXT("identity"));
			InRequest->Request->StreamTypeAndQuality(InRequest->SegmentStreamType, InRequest->SegmentQualityIndex, InRequest->SegmentQualityIndexMax);
			InRequest->Request->GetRequest()->ResponseCache = PlayerSessionServices->GetHTTPResponseCache();
		}
		case FMPDLoadRequestDASH::ELoadType::XLink_Period:

#Loc: <Workspace>/Engine/Plugins/NetcodeUnitTest/NetcodeUnitTest/Source/NetcodeUnitTest/Private/MinimalClient.cpp:635

Scope (from outer to inner):

file
function     bool UMinimalClient::ConnectMinimalClient

Source code excerpt:


		UnitNetDriver->InitialConnectTimeout = FMath::Max(UnitNetDriver->InitialConnectTimeout, (float)Timeout);
		UnitNetDriver->ConnectionTimeout = FMath::Max(UnitNetDriver->ConnectionTimeout, (float)Timeout);

#if !UE_BUILD_SHIPPING
		if (!(MinClientFlags & EMinClientFlags::SendRPCs) || !!(MinClientFlags & EMinClientFlags::DumpSendRPC))
		{
			UnitNetDriver->SendRPCDel.BindUObject(this, &UMinimalClient::NotifySendRPC);
		}

#Loc: <Workspace>/Engine/Plugins/NetcodeUnitTest/NetcodeUnitTest/Source/NetcodeUnitTest/Private/NUTActor.cpp:461

Scope (from outer to inner):

file
function     void ANUTActor::HookNetDriver

Source code excerpt:


			TargetNetDriver->InitialConnectTimeout = static_cast<float>(CustomTimeout);
			TargetNetDriver->ConnectionTimeout = static_cast<float>(CustomTimeout);
		}
	}
}

bool ANUTActor::Exec(UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar)
{

#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemOculus/Source/Private/OculusNetDriver.cpp:52

Scope (from outer to inner):

file
function     bool UOculusNetDriver::InitBase

Source code excerpt:

	}

	if (ConnectionTimeout == 0.0)
	{
		UE_LOG(LogNet, Warning, TEXT("ConnectionTimeout was set to %f"), ConnectionTimeout);
		ConnectionTimeout = 120.0;
	}

	if (KeepAliveTime == 0.0)
	{
		UE_LOG(LogNet, Warning, TEXT("KeepAliveTime was set to %f"), KeepAliveTime);
		KeepAliveTime = 0.2;

#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemSteam/Source/Private/SocketSubsystemSteam.h:82

Scope (from outer to inner):

file
class        class FSocketSubsystemSteam : public ISocketSubsystem, public FTSTickerObjectBase, public FSelfRegisteringExec

Source code excerpt:

     * Timeout (in seconds) period for any P2P session
	 * read from [OnlineSubsystemSteam.P2PConnectionTimeout]
     * (should be at least as long as NetDriver::ConnectionTimeout) 
     */
	float P2PConnectionTimeout;
	/** Accumulated time before next dump of connection info */
	double P2PDumpCounter;
	/** Connection info output interval */
	double P2PDumpInterval;
	/**
	 * The timeout (in seconds) between when a connection/channel is marked as destroyed
	 * and when it's cleaned up. This allows for catching lingering messages
	 * from other users.

#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemUtils/Source/OnlineSubsystemUtils/Private/OnlineBeaconClient.cpp:195

Scope (from outer to inner):

file
function     bool AOnlineBeaconClient::InitClient

Source code excerpt:

						NetDriver->Notify = this;
						NetDriver->InitialConnectTimeout = BeaconConnectionInitialTimeout;
						NetDriver->ConnectionTimeout = BeaconConnectionTimeout;

						if (!bSentHandshake)
						{
							SendInitialJoin();
						}

#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemUtils/Source/OnlineSubsystemUtils/Private/OnlineBeaconHost.cpp:109

Scope (from outer to inner):

file
function     bool AOnlineBeaconHost::InitHost

Source code excerpt:

				NetDriver->Notify = this;
				NetDriver->InitialConnectTimeout = BeaconConnectionInitialTimeout;
				NetDriver->ConnectionTimeout = BeaconConnectionTimeout;
				return true;
			}
			else
			{
				// error initializing the network stack...
				UE_LOG(LogBeacon, Log, TEXT("%s: AOnlineBeaconHost::InitHost failed"), *GetName());

#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemUtils/Source/OnlineSubsystemUtils/Private/OnlineBeaconHost.cpp:129

Scope (from outer to inner):

file
function     void AOnlineBeaconHost::HandleNetworkFailure

Source code excerpt:

	{
		// Timeouts from clients are ignored
		if (FailureType != ENetworkFailure::ConnectionTimeout)
		{
			Super::HandleNetworkFailure(World, InNetDriver, FailureType, ErrorString);
		}
	}
}

#Loc: <Workspace>/Engine/Plugins/VirtualProduction/LiveLinkPrestonMDR/Source/LiveLinkPrestonMDR/Private/PrestonMDRMessageThread.cpp:85

Scope (from outer to inner):

file
function     uint32 FPrestonMDRMessageThread::Run

Source code excerpt:

	while (Socket->GetConnectionState() != ESocketConnectionState::SCS_Connected)
	{
		if ((FPlatformTime::Seconds() - LastTimeDataReceived) > ConnectionTimeout)
		{
			ConnectionFailedDelegate.ExecuteIfBound();
			bIsFinished = true;
			return 0;
		}

#Loc: <Workspace>/Engine/Plugins/VirtualProduction/LiveLinkPrestonMDR/Source/LiveLinkPrestonMDR/Private/PrestonMDRMessageThread.h:278

Scope (from outer to inner):

file
class        class FPrestonMDRMessageThread : public FRunnable

Source code excerpt:


	static constexpr float ConnectionWaitInterval = 0.02f; // 20ms
	static constexpr double ConnectionTimeout = 5.0; // 3sec
	static constexpr double DataReceivedTimeout = 2.0; // 2sec
};

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Classes/Engine/NetDriver.h:902

Scope (from outer to inner):

file
class        class UNetDriver : public UObject, public FExec

Source code excerpt:

	 */
	UPROPERTY(Config)
	float ConnectionTimeout;

	/**
	* A multiplier that is applied to the above values when we are running with unoptimized builds (debug)
	* or data (uncooked). This allows us to retain normal timeout behavior while debugging without resorting
	* to the nuclear 'notimeouts' option or bumping the values above. If ==0 multiplier = 1
	*/

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Classes/GameFramework/Actor.h:2674

Scope: file

Source code excerpt:

	 * Used by the net connection to determine if a net owning actor should switch to using the shortened timeout value
	 * 
	 * @return true to switch from InitialConnectTimeout to ConnectionTimeout values on the net driver
	 */
	virtual bool UseShortConnectTimeout() const { return false; }

	/**
	 * SerializeNewActor has just been called on the actor before network replication (server side)
	 * @param OutBunch Bunch containing serialized contents of actor prior to replication
	 */
	virtual void OnSerializeNewActor(class FOutBunch& OutBunch) {};

	/** 

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Classes/GameFramework/PlayerController.h:453

Scope: file

Source code excerpt:


	/**
	 * When true, reduces connect timeout from InitialConnectionTimeOut to ConnectionTimeout.  
	 * Set once initial level load is complete (client may be unresponsive during level loading).
	 */
	uint32 bShortConnectTimeOut:1;

	/** Is this player currently in cinematic mode?  Prevents rotation/movement/firing/etc */
	uint32 bCinematicMode:1;
	
	/** When cinematic mode is true, signifies that this controller's pawn should be hidden */
	uint32 bHidePawnInCinematicMode:1;

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/NetConnection.cpp:4283

Scope (from outer to inner):

file
function     float UNetConnection::GetTimeoutValue

Source code excerpt:

	if ((GetConnectionState() != USOCK_Pending) && (bPendingDestroy || (OwningActor && OwningActor->UseShortConnectTimeout())))
	{
		const float ConnectionTimeout = Driver->ConnectionTimeout;

		// If the connection is pending destroy give it 2 seconds to try to finish sending any reliable packets
		Timeout = bPendingDestroy ? 2.f : ConnectionTimeout;
	}

	// Longtimeouts allows a multiplier to be added to get correct disconnection behavior
	// with with additional leniancy when required. Implicit in debug/editor builds
	static bool LongTimeouts = FParse::Param(FCommandLine::Get(), TEXT("longtimeouts"));

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/NetConnection.cpp:4697

Scope (from outer to inner):

file
function     void UNetConnection::HandleConnectionTimeout

Source code excerpt:

	if (!bPendingDestroy)
	{
		GEngine->BroadcastNetworkFailure(Driver->GetWorld(), Driver, ENetworkFailure::ConnectionTimeout, Error);
	}

	Close(ENetCloseResult::ConnectionTimeout);

#if USE_SERVER_PERF_COUNTERS
	PerfCountersIncrement(TEXT("TimedoutConnections"));
#endif

}

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/NetDriver.cpp:1497

Scope (from outer to inner):

file
function     bool UNetDriver::InitBase

Source code excerpt:

		if (ParsedValue != 0.0f)
		{
			ConnectionTimeout = ParsedValue;
		}
	}
	if (URL.HasOption(TEXT("NoTimeouts")))
	{
		bNoTimeouts = true;
	}

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Private/UnrealEngine.cpp:14150

Scope (from outer to inner):

file
function     void UEngine::HandleNetworkFailure

Source code excerpt:

			bShouldTravel = (FailureNetMode == NM_Client);
			break;
		case ENetworkFailure::ConnectionTimeout:
			// Hosts don't travel when clients disconnect
			bShouldTravel = (FailureNetMode == NM_Client);
			break;
		case ENetworkFailure::NetGuidMismatch:
		case ENetworkFailure::NetChecksumMismatch:
			// Hosts don't travel when clients have actor issues

#Loc: <Workspace>/Engine/Source/Runtime/Net/Core/Public/Net/Core/Connection/NetCloseResult.h:37

Scope: file

Source code excerpt:


	/** A connection to the net driver has timed out */
	ConnectionTimeout,

	/** The net driver received an NMT_Failure message */
	FailureReceived,

	/** The client needs to upgrade their game */
	OutdatedClient,

#Loc: <Workspace>/Engine/Source/Runtime/Net/Core/Public/Net/Core/Connection/NetEnums.h:21

Scope (from outer to inner):

file
namespace    ENetworkFailure

Source code excerpt:

		ConnectionLost,
		/** A connection to the net driver has timed out */
		ConnectionTimeout,
		/** The net driver received an NMT_Failure message */
		FailureReceived,
		/** The client needs to upgrade their game */
		OutdatedClient,
		/** The server needs to upgrade their game */
		OutdatedServer,

#Loc: <Workspace>/Engine/Source/Runtime/Net/Core/Public/Net/Core/Connection/NetEnums.h:51

Scope (from outer to inner):

file
namespace    ENetworkFailure
function     inline const TCHAR* ToString

Source code excerpt:

		case ConnectionLost:
			return TEXT("ConnectionLost");
		case ConnectionTimeout:
			return TEXT("ConnectionTimeout");
		case FailureReceived:
			return TEXT("FailureReceived");
		case OutdatedClient:
			return TEXT("OutdatedClient");
		case OutdatedServer:

#Loc: <Workspace>/Engine/Source/Runtime/Online/HTTP/Private/WinHttp/Support/WinHttpSession.cpp:83

Scope (from outer to inner):

file
function     FWinHttpSession::FWinHttpSession

Source code excerpt:


	FHttpModule& HttpModule = FHttpModule::Get();
	const FTimespan ConnectionTimeout = FTimespan::FromSeconds(HttpModule.GetHttpConnectionTimeout() > 0 ? HttpModule.GetHttpConnectionTimeout() : 0);
	const FTimespan ResolveTimeout = ConnectionTimeout;
	const FTimespan ReceiveTimeout = FTimespan::FromSeconds(HttpModule.GetHttpActivityTimeout() > 0 ? HttpModule.GetHttpActivityTimeout() : 0);
	const FTimespan SendTimeout = ReceiveTimeout;

	if (!WinHttpSetTimeouts(SessionHandle.Get(), ResolveTimeout.GetTotalMilliseconds(), ConnectionTimeout.GetTotalMilliseconds(), SendTimeout.GetTotalMilliseconds(), ReceiveTimeout.GetTotalMilliseconds()))
	{
		// Get last error
		const DWORD ErrorCode = GetLastError();
		FWinHttpErrorHelper::LogWinHttpSetTimeoutsFailure(ErrorCode);
	}

#Loc: <Workspace>/Engine/Source/Runtime/Online/HTTPServer/Private/HttpConnection.cpp:40

Scope (from outer to inner):

file
function     void FHttpConnection::Tick

Source code excerpt:

	QUICK_SCOPE_CYCLE_COUNTER(STAT_FHttpConnection_Tick);
	const float AwaitReadTimeout = bKeepAlive ?
		ConnectionKeepAliveTimeout : ConnectionTimeout;

	switch (State)
	{
	case EHttpConnectionState::AwaitingRead:
		if (ReadContext.GetElapsedIdleTime() > AwaitReadTimeout || ReadContext.GetSecondsWaitingForReadableSocket() > AwaitReadTimeout)
		{

#Loc: <Workspace>/Engine/Source/Runtime/Online/HTTPServer/Private/HttpConnection.cpp:54

Scope (from outer to inner):

file
function     void FHttpConnection::Tick

Source code excerpt:


	case EHttpConnectionState::Reading:
		if (ReadContext.GetElapsedIdleTime() > ConnectionTimeout)
		{
			Destroy(EConnectionDestroyReason::ReadTimeout);
			return;
		}
		ContinueRead(DeltaTime);
		break;

#Loc: <Workspace>/Engine/Source/Runtime/Online/HTTPServer/Private/HttpConnection.cpp:66

Scope (from outer to inner):

file
function     void FHttpConnection::Tick

Source code excerpt:


	case EHttpConnectionState::Writing:
		if (WriteContext.GetElapsedIdleTime() > ConnectionTimeout)
		{
			Destroy(EConnectionDestroyReason::WriteTimeout);
			return;
		}
		ContinueWrite(DeltaTime);
		break;

#Loc: <Workspace>/Engine/Source/Runtime/Online/HTTPServer/Private/HttpConnection.h:249

Scope: file

Source code excerpt:


	/** The duration (seconds) at which connections are forcefully timed out */
	static constexpr float ConnectionTimeout = 5.0f;

	/** The duration (seconds) at which idle keep-alive connections are forcefully timed out */
	static constexpr float ConnectionKeepAliveTimeout = 15.0f;

	/** Connection configuration data */
	FHttpServerConnectionConfig Config;

#Loc: <Workspace>/Engine/Source/Runtime/Online/XMPP/Private/XmppStrophe/StropheError.cpp:47

Scope (from outer to inner):

file
function     EStropheErrorType FStropheError::ConvertStropheError

Source code excerpt:

		return EStropheErrorType::Conflict;
	case XMPP_SE_CONN_TIMEOUT:
		return EStropheErrorType::ConnectionTimeout;
	case XMPP_SE_HOST_GONE:
		return EStropheErrorType::HostGone;
	case XMPP_SE_HOST_UNKNOWN:
		return EStropheErrorType::HostUnknown;
	case XMPP_SE_IMPROPER_ADDR:
		return EStropheErrorType::ImproperAddr;

#Loc: <Workspace>/Engine/Source/Runtime/Online/XMPP/Private/XmppStrophe/StropheError.h:17

Scope: file

Source code excerpt:

	BadNSPrefix,
	Conflict,
	ConnectionTimeout,
	HostGone,
	HostUnknown,
	ImproperAddr,
	InternalServerError,
	InvalidFrom,
	InvalidId,