Files
Sun1602/Server/MolaCrypt/SRC.MOLA/CryptManager.ISecureWorkNode.cpp
2022-10-26 12:25:11 +08:00

160 lines
4.3 KiB
C++

#include "stdafx.h"
//¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´
//¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´
// <FUNCTION PROTOTYPEs>
static BOOL CreateISecureWorkNode();
//¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´
// <MODULE VARIABLEs>
static DWORD s_dwHeartbeatSize = sizeof(MSG_CG_CONNECTION_HEARTBEAT_SYN);
static sSECURE_WORKNODE_STRUCTURE s_ISecureWorkNodeStream[1] = { 0, };
static BOOL s_bISecureInit = CreateISecureWorkNode();
static DWORD s_SecureLogicBase = NULL;
static DWORD s_SecureLogics[SECURE_PATTERNS_MAX] = { NULL, };
static sSECURE_WORKNODE_CMDSTREAM s_ISecureCmdStream[1];
//¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´
//
//
static BOOL CreateISecureWorkNode()
{
EXPORTER(CreateISecureWorkNode);
new (s_ISecureWorkNodeStream) ISecureWorkNode();
return TRUE;
}
ISecureWorkNode* CryptManager::GetISecureWorkNode()
{
EXPORTER(CryptManager::GetISecureWorkNode);
return (ISecureWorkNode*)s_ISecureWorkNodeStream;
}
DWORD CryptManager::GetHeartbeatSize()
{
return s_dwHeartbeatSize;
}
ISecureQueryCmdStreamBase* ISecureQueryCmdStreamBase::GetStaticInstance()
{
EXPORTER(ISecureQueryCmdStreamBase::GetStaticInstance);
return (ISecureQueryCmdStreamBase*)( new (s_ISecureCmdStream) ISecureQueryCmdStreamInit() );
}
//¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´
//
//
//¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´
//¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´
//
//
//¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´
BOOL CryptManager::InitSecureInfoParser()
{
//MOLA_SECURE_WORKNODE_WALL2
__DEBUGGING_OUTPUT0( "ISecureWorkNode::InitSecureInfoParser" );
BYTE stk[256];
ISecureWorkNode* pSecureNode;
pSecureNode = new (stk) ISecureWorkNode;
s_SecureLogicBase = OBJCONVERT(pSecureNode);
pSecureNode = new (stk) ISecureSimplexSNK01;
s_SecureLogics[SECURE_QUERY_SIMPLEX_PATTERN01_SNK] = OBJCONVERT(pSecureNode);
pSecureNode = new (stk) ISecureSimplexSNK02;
s_SecureLogics[SECURE_QUERY_SIMPLEX_PATTERN02_SNK] = OBJCONVERT(pSecureNode);
__DEBUGGING_OUTPUT1( "s_SecureLogics[SECURE_QUERY_SIMPLEX_PATTERN02_SNK]", s_SecureLogics[SECURE_QUERY_SIMPLEX_PATTERN02_SNK] );
__DEBUGGING_OUTPUT1( "pSecureNode", *(DWORD*)stk );
pSecureNode = new (stk) ISecureSimplexSNK03;
s_SecureLogics[SECURE_QUERY_SIMPLEX_PATTERN03_SNK] = OBJCONVERT(pSecureNode);
pSecureNode = new (stk) ISecureSimplexSNK04;
s_SecureLogics[SECURE_QUERY_SIMPLEX_PATTERN04_SNK] = OBJCONVERT(pSecureNode);
pSecureNode = new (stk) ISecureQueryMola;
s_SecureLogics[SECURE_QUERY_MOLA] = OBJCONVERT(pSecureNode);
pSecureNode = new (stk) ISecureConfigureMola;
s_SecureLogics[SECURE_QUERY_CONFIG_MOLA] = OBJCONVERT(pSecureNode);
pSecureNode = new (stk) ISecureConfigureHeartbeat;
s_SecureLogics[SECURE_QUERY_CONFIG_MOLA_HB] = OBJCONVERT(pSecureNode);
pSecureNode = new (stk) ISecureDuplexSNK;
s_SecureLogics[SECURE_QUERY_DUPLEX_SNK] = OBJCONVERT(pSecureNode);
memset( stk, 0, sizeof(stk) );
#if LOG_DEBUG_WRITER(__MOLA_CLIENT_DEBUGGING_WRITELOG__)
printf( "InitSecureInfo %08X %08X\n", MOLA_SECURE_WORKNODE_WALL1, MOLA_SECURE_WORKNODE_WALL2 );
#endif
return TRUE;
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#ifdef _USRDLL
namespace util
{
VOID AssertionLogger4Pool_Default( DWORD errTYPE, ePOOL_ERROR* IN pINFO )
{
TCHAR* pErrTypeMsg = ePOOL_ERROR::INVALID_REFERENCE == errTYPE ? _T("Freeing Address is Can't Accessable")
: ePOOL_ERROR::CANT_ALLOCATABLE == errTYPE ? _T("Can't Allocatable")
: ePOOL_ERROR::CANT_DEALLOCATABLE == errTYPE ? _T("Can't DeAllocatable, STAT(Already Freed | Invalid Reference | Overrun)")
: ePOOL_ERROR::NOT_MATCHED_ALLOCnDEALLOC == errTYPE ? _T("Free Count is not matched AllocCount")
: NULL;
//MessageOut( 3, _T("[POOL ASSERTION][TYPE:%s] \"%s\""), pINFO->m_pszTYPENAME, pErrTypeMsg );
# ifdef _DEBUG
printf( _T("[POOL ASSERTION][TYPE:%s] \"%s\"\n"), pINFO->m_pszTYPENAME, pErrTypeMsg );
# endif
# ifdef _DEBUG
__asm { int 3 }
# endif //
}
} //
#endif //_USRDLL