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:
- Networking and Online Subsystems
- HTTP and Web Services
- Remote Session and Debugging
- Media Streaming
- Virtual Production
The value of this variable is typically set in configuration files or through code, depending on the specific subsystem. For example:
- In the NetDriver, it’s set as a config property
- In HTTP modules, it’s retrieved from the FHttpModule
- In some plugins, it’s hardcoded or calculated based on other settings
ConnectionTimeout often interacts with other timeout-related variables, such as:
- InitialConnectTimeout
- NoDataTimeout
- KeepAliveTime
Developers should be aware of the following when using ConnectionTimeout:
- Setting it too low may cause premature disconnections in slow network conditions
- Setting it too high may lead to long waits before detecting actual connection issues
- Different subsystems may have their own ConnectionTimeout implementations
Best practices for using ConnectionTimeout include:
- Adjust the value based on the expected network conditions and application requirements
- Consider using different timeout values for debug/development and production environments
- Implement proper error handling and user feedback when timeouts occur
- Monitor and log timeout occurrences to identify potential network issues
- 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]
- INI Section:
/Script/OnlineSubsystemUtils.IpNetDriver
- Raw value:
60.0
- Is Array:
False
Location: <Workspace>/Engine/Config/BaseEngine.ini:2257, section: [/Script/SteamSockets.SteamSocketsNetDriver]
- INI Section:
/Script/SteamSockets.SteamSocketsNetDriver
- Raw value:
80.0
- Is Array:
False
Location: <Workspace>/Engine/Plugins/Experimental/WebSocketNetworking/Config/BaseWebSocketNetDriver.ini:10, section: [/Script/WebSocketNetworking.WebSocketNetDriver]
- INI Section:
/Script/WebSocketNetworking.WebSocketNetDriver
- Raw value:
60.0
- Is Array:
False
#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,