43 lines
1.2 KiB
C++
43 lines
1.2 KiB
C++
#pragma once
|
|
|
|
|
|
// ISecuritySolutionImpl을 상속받은 녀석의 인스턴스 관리 및 예외 IP 체크만 함
|
|
struct XSecuritySolutionManager
|
|
{
|
|
public:
|
|
enum _SECURITY_SOLUTION_TYPE
|
|
{
|
|
TYPE_NONE = 0,
|
|
TYPE_GAMEGUARD = 1,
|
|
TYPE_HACKSHIELD = 2,
|
|
TYPE_XTRAP = 3,
|
|
};
|
|
public:
|
|
static XSecuritySolutionManager & Instance()
|
|
{
|
|
static XSecuritySolutionManager _instance;
|
|
return _instance;
|
|
}
|
|
~XSecuritySolutionManager();
|
|
|
|
const bool Init();
|
|
const void Deinit();
|
|
|
|
// 이하 5개의 함수는 g_ConnectionTagLock이 걸린 채로 사용되어야 함
|
|
const bool InitClientSession( struct IStreamSocketConnection * pConnection );
|
|
const bool BlockInitIncompleteClientSession( struct IStreamSocketConnection * pConnection );
|
|
const void DeinitClientSession( struct IStreamSocketConnection * pConnection );
|
|
const bool ProcValidation( struct IStreamSocketConnection * pConnection );
|
|
const bool OnValidationResponse( struct IStreamSocketConnection * pConnection, const void * pResponseBuffer, unsigned int size );
|
|
|
|
protected:
|
|
XSecuritySolutionManager()
|
|
: m_pImpl( 0 )
|
|
{}
|
|
|
|
const bool isExceptionalIP( const char * pszIP ) const;
|
|
|
|
protected:
|
|
struct ISecuritySolutionImpl * m_pImpl;
|
|
};
|