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.
75 lines
2.1 KiB
75 lines
2.1 KiB
4 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//=============================================================================
|
||
|
|
||
|
#ifndef BLACKLISTEDSERVERMANAGER_H
|
||
|
#define BLACKLISTEDSERVERMANAGER_H
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include "platform.h"
|
||
|
#include "netadr.h"
|
||
|
#include "utlvector.h"
|
||
|
|
||
|
#define BLACKLIST_DEFAULT_SAVE_FILE "cfg/server_blacklist.txt"
|
||
|
|
||
|
class gameserveritem_t;
|
||
|
|
||
|
struct blacklisted_server_t
|
||
|
{
|
||
|
int m_nServerID;
|
||
|
char m_szServerName[64];
|
||
|
uint32 m_ulTimeBlacklistedAt;
|
||
|
netadr_t m_NetAdr;
|
||
|
};
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Purpose: Collection of blacklisted servers
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class CBlacklistedServerManager
|
||
|
{
|
||
|
public:
|
||
|
CBlacklistedServerManager();
|
||
|
|
||
|
void Reset( void );
|
||
|
|
||
|
blacklisted_server_t *AddServer( gameserveritem_t &server );
|
||
|
blacklisted_server_t *AddServer( const char *serverName, uint32 serverIP, int serverPort );
|
||
|
blacklisted_server_t *AddServer( const char *serverName, const char *netAddressString, uint32 timestamp );
|
||
|
|
||
|
void RemoveServer( int iServerID ); // remove server with matching 'server id' from list
|
||
|
|
||
|
void SaveToFile( const char *filename );
|
||
|
int LoadServersFromFile( const char *pszFilename, bool bResetTimes ); // returns count of appended servers, zero for failure
|
||
|
|
||
|
blacklisted_server_t *GetServer( int iServerID ); // return server with matching 'server id'
|
||
|
int GetServerCount( void ) const;
|
||
|
|
||
|
const CUtlVector< blacklisted_server_t > &GetServerVector( void ) const;
|
||
|
|
||
|
bool IsServerBlacklisted( const gameserveritem_t &server ) const;
|
||
|
bool IsServerBlacklisted( uint32 serverIP, int serverPort, const char *serverName ) const;
|
||
|
|
||
|
bool CanServerBeBlacklisted( gameserveritem_t &server ) const;
|
||
|
bool CanServerBeBlacklisted( uint32 serverIP, int serverPort, const char *serverName ) const;
|
||
|
|
||
|
private:
|
||
|
CUtlVector< blacklisted_server_t > m_Blacklist;
|
||
|
int m_iNextServerID; // for vgui use
|
||
|
};
|
||
|
|
||
|
inline int CBlacklistedServerManager::GetServerCount( void ) const
|
||
|
{
|
||
|
return m_Blacklist.Count();
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#endif // BLACKLISTEDSERVERMANAGER_H
|