Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================
#include "RconMsgHandler.h"
#include "rcon.h"
#include "info.h"
#include "DialogGameInfo.h"
#include "inetapi.h"
#include "proto_oob.h"
extern void v_strncpy(char *dest, const char *src, int bufsize);
//-----------------------------------------------------------------------------
// Purpose: Constructor
//-----------------------------------------------------------------------------
CRconMsgHandlerDetails::CRconMsgHandlerDetails( CRcon *baseobject, HANDLERTYPE type, void *typeinfo /*= NULL*/ ) : CMsgHandler( type, typeinfo ) { m_pRcon = baseobject; }
//-----------------------------------------------------------------------------
// Purpose: Process cracked message
//-----------------------------------------------------------------------------
bool CRconMsgHandlerDetails::Process( netadr_t *from, CMsgBuffer *msg ) { // Skip the control character
//if (!m_pRcon->Challenge() && msg->ReadByte()!=A2C_PRINT)
// return false;
// get response name
const char *str = msg->ReadString(); if ( !str || !str[0] ) return false;
char info[ 2048 ]; v_strncpy( info, str, 2047 ); info[2047] = 0;
if(!_strnicmp(info,"lBad rcon_password",18) ) { m_pRcon->BadPassword(info+1); return true; }
if(m_pRcon->Challenge() ) { // if we know the challenge value pass it to UpdateServer
int challenge = atoi(info+strlen("challenge rcon")); m_pRcon->UpdateServer(from, challenge, NULL); } else // else pass a default value
{ m_pRcon->UpdateServer(from, -1, info+1 ); }
return true; }
|