Navigation
API > API/Runtime > API/Runtime/Engine > API/Runtime/Engine/Net
Inheritance Hierarchy
- FRPCDoSState
- FRPCDoSDetection
References
| Module | Engine |
| Header | /Engine/Source/Runtime/Engine/Public/Net/RPCDoSDetection.h |
| Include | #include "Net/RPCDoSDetection.h" |
Syntax
class FRPCDoSDetection : protected FRPCDoSState
Remarks
RPC DoS detection
Implements DoS detection for NetConnection RPC's, using an escalating series of detection states depending on the severity of the DoS, to prevent false positives and minimize any performance impact.
RPC's are profiled based on count and execution time, with careful implementation of tracking to balance lookup speed, memory usage, timing, and analytics tracking.
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | Init
(
FName NetDriverName, |
Initialize RPC DoS Detection, inputting callbacks for retrieving external information necessary for analytics. | |
| void | InitConfig
(
FName NetDriverName |
Initializes configuration settings for RPC DoS Detection - with support for hot reloading | |
| bool | Whether or not RPC DoS Detection is enabled | ||
| void | LightweightReceivedRPC
(
UFunction* Function, |
If RPC monitoring is disabled, does extremely lightweight tracking of RPC calls, for monitoring tracking triggers, and to allow a chance for deducing full RPC tracking information if monitoring is enabled while receiving (so that e.g. if an RPC DoS attack enables monitoring, information on the RPC responsible can be recovered). | |
| void | NotifyClose () |
Triggered upon NetConnection Close (for committing analytics) | |
| ERPCNotifyResult | NotifyReceivedRPC
(
FNetBitReader& Reader, |
If RPC monitoring is enabled, provides a notification for every RPC that is received, with the ability to block it. | |
| void | PostReceivedPacket
(
double TimeSeconds |
Called after the current NetConnection receives a packet. | |
| void | Called after the current NetConnection receives an RPC. | ||
| void | PostReceivedRPCPacket
(
double TimeSeconds |
Called after the current NetConnection receives a packet, when RPC DoS Detection is active and the packet contains an RPC. | |
| void | PostSequentialRPC
(
EPostSequentialRPCType SequenceType, |
Called after the same RPC was received once or multiple times sequentially, for optimal timing | |
| void | Called after the packet-loop TickDispatch | ||
| void | PreReceivedPacket
(
double TimeSeconds |
Called prior to the current NetConnection receiving a packet. | |
| void | PreTickDispatch
(
double TimeSeconds |
Called prior to the packet-loop TickDispatch | |
| void | SetAddressFunc
(
FGetRPCDoSAddress&& InAddressFunc |
Overrides the current AddressFunc | |
| void | SetKickPlayerFunc
(
FRPCDoSKickPlayer&& InKickPlayerFunc |
Overrides the current KickPlayerFunc | |
| void | SetPlayerUIDFunc
(
FGetRPCDoSPlayerUID&& InPlayerUIDFunc |
Overrides the current PlayerUIDFunc | |
| bool | Whether or not monitoring of received RPC's (i.e. calling of NotifyReceivedRPC) should be performed |
Constants
| Name | Description |
|---|---|
| DefaultActiveRPCTrackingSize | Default size for ActiveRPCTracking, to minimize realloc |
| TimeQuotaCheckInterval | Interval for time quota checks, in seconds |
Deprecated Functions
| Type | Name | Description | |
|---|---|---|---|
| void | UpdateSeverity
(
ERPCDoSSeverityUpdate Update, |
UpdateSeverity will be made private soon. |