SquadJS/squad-server/log-parser/pending-connection-destroyed.js
ect0s 49809169b8 Player Connection/Disconnection Flow. cleareventStore caller
pending connection destroyed: error path for clients that fail to connect, required to cleanup connection state in this error case.

client-connected: Supersedes steamid connected, use base unreal engine client flow. Removes dependancy on EAC (broken as of squad 3.4). First step in resolving a new client connection. this gets us a connection id, steamid.

client-login: 2nd step in player connected flow, this setups the steamid into eventstore.steamid-connected.

playercontroller connected: gets us player controller. used in player connected flow.

player-connected: update to use new eventStore layout, now all players should always have suffix,steamid,controller. These are now also cached within the logparser for lookup. last step in player connected flow.

player-disconnected: uses new eventStore layout, marks players in eventStore.disconnected but doesn't remove cached players till map change; may be needed in cases with delayed logs, needs further testing. Broken as of Squad 3.4 due to EAC changes

steamid-connected: Removed in favor of client-connected, no longer works as of squad 3.4 due to EAC changes.
2022-11-09 20:20:50 -05:00

21 lines
764 B
JavaScript

export default {
regex:
/^\[([0-9.:-]+)]\[([ 0-9]*)]LogNet: UNetConnection::PendingConnectionLost\. \[UNetConnection\] RemoteAddr: ([0-9]{17}):[0-9]+, Name: (SteamNetConnection_[0-9]+), Driver: GameNetDriver (SteamNetDriver_[0-9]+), IsServer: YES, PC: NULL, Owner: NULL, UniqueId: (?:Steam:UNKNOWN \[.+\]|INVALID) bPendingDestroy=0/,
onMatch: (args, logParser) => {
const data = {
raw: args[0],
time: args[1],
chainID: args[2],
steamID: args[3],
connection: args[4],
driver: args[5]
};
/* This is Called when a pending client fails
Only used to cleanup clients in eventstore
*/
delete logParser.eventStore.clients[args[4]];
logParser.emit('PENDING_CONNECTION_DESTROYED', data);
}
};