forked from LosaDev/ls-2019-source
LosaDev source snapshot 2019
This commit is contained in:
commit
c198676e97
20588 files changed
+8812878
No files matched your search
@@ -0,0 +1,348 @@
|
||||
#pragma once
|
||||
|
||||
#include "cCommand.h"
|
||||
#include "cBuffer.h"
|
||||
#include "cSession.h"
|
||||
#include "cSerialize.h"
|
||||
#include "Utility.h"
|
||||
#include "PerfMon.h"
|
||||
#include "../common/internal.h"
|
||||
#include <vector>
|
||||
|
||||
class CPing : public cCommand
|
||||
{
|
||||
protected:
|
||||
virtual BOOL Verify(IIocpContext* pContext, uint8* buffer, const uint32 length)
|
||||
{
|
||||
if(length != 0)
|
||||
return FALSE;
|
||||
|
||||
m_packet = reinterpret_cast<csPing*>(buffer);
|
||||
return TRUE;
|
||||
}
|
||||
virtual void Self()
|
||||
{
|
||||
Debug(_T("C_PING\n"));
|
||||
}
|
||||
virtual void Run(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
csPing* m_packet;
|
||||
|
||||
};
|
||||
|
||||
class CServices : public cCommand, public cSerialize
|
||||
{
|
||||
protected:
|
||||
virtual BOOL Verify(IIocpContext* pContext, uint8* buffer, const uint32 length)
|
||||
{
|
||||
m_services.clear();
|
||||
m_files.clear();
|
||||
m_scripts.clear();
|
||||
return TRUE;
|
||||
}
|
||||
virtual void Self()
|
||||
{
|
||||
Debug(_T("C_SERVICES\n"));
|
||||
}
|
||||
virtual void Run(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL Ready(IIocpContext* context);
|
||||
void Begin(IIocpContext* context);
|
||||
|
||||
BOOL GetRunning(const TCHAR* service, BOOL& running, BOOL& console);
|
||||
|
||||
protected:
|
||||
cSession* m_session;
|
||||
|
||||
STRINGS m_services, m_files, m_scripts;
|
||||
};
|
||||
|
||||
|
||||
class CTransfer : public cCommand
|
||||
{
|
||||
protected:
|
||||
virtual BOOL Verify(IIocpContext* pContext, uint8* buffer, const uint32 length)
|
||||
{
|
||||
if(length < sizeof(csTransfer))
|
||||
return FALSE;
|
||||
|
||||
m_packet = reinterpret_cast<csTransfer*>(buffer);
|
||||
m_buffer = NULL;
|
||||
m_length = 0;
|
||||
m_temp.Erase();
|
||||
|
||||
switch(m_packet->type)
|
||||
{
|
||||
case TRANSFER_BEGIN :
|
||||
if(length < sizeof(csTransferBegin))
|
||||
return FALSE;
|
||||
m_begin = reinterpret_cast<csTransferBegin*>(buffer);
|
||||
break;
|
||||
|
||||
case TRANSFER_DO :
|
||||
{
|
||||
if(length < sizeof(csTransferDo))
|
||||
return FALSE;
|
||||
m_do = reinterpret_cast<csTransferDo*>(buffer);
|
||||
m_buffer = (buffer + sizeof(csTransferDo));
|
||||
if(length != (m_do->length + sizeof(csTransferDo)))
|
||||
return FALSE;
|
||||
|
||||
m_length = m_do->length;
|
||||
}
|
||||
break;
|
||||
|
||||
case TRANSFER_END :
|
||||
if(length < sizeof(csTransferEnd))
|
||||
return FALSE;
|
||||
m_end = reinterpret_cast<csTransferEnd*>(buffer);
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
virtual void Self()
|
||||
{
|
||||
Debug(_T("C_TRANSFER\n"));
|
||||
}
|
||||
virtual void Run(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL Ready(IIocpContext* context);
|
||||
void Begin(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL TransferBegin();
|
||||
BOOL TransferDo();
|
||||
BOOL TransferEnd();
|
||||
|
||||
BOOL UpdateFile(const TCHAR* fileName, const uint32 fileLength, const BYTE* source);
|
||||
BOOL CreateBuffer(const TCHAR* fileName, const uint32 length);
|
||||
|
||||
protected:
|
||||
cSession* m_session;
|
||||
|
||||
csTransfer* m_packet;
|
||||
csTransferBegin* m_begin;
|
||||
csTransferDo* m_do;
|
||||
csTransferEnd* m_end;
|
||||
uint8* m_buffer;
|
||||
uint32 m_length;
|
||||
cBuffer m_temp;
|
||||
};
|
||||
|
||||
|
||||
class CRemove : public cCommand
|
||||
{
|
||||
protected:
|
||||
virtual BOOL Verify(IIocpContext* pContext, uint8* buffer, const uint32 length)
|
||||
{
|
||||
if(length < sizeof(csRemove))
|
||||
return FALSE;
|
||||
|
||||
m_packet = reinterpret_cast<csRemove*>(buffer);
|
||||
return TRUE;
|
||||
}
|
||||
virtual void Self()
|
||||
{
|
||||
Debug(_T("C_REMOVE\n"));
|
||||
}
|
||||
virtual void Run(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL Ready(IIocpContext* context);
|
||||
void Begin(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL RemoveFolder();
|
||||
|
||||
protected:
|
||||
cSession* m_session;
|
||||
|
||||
csRemove* m_packet;
|
||||
};
|
||||
|
||||
class CInstall : public cCommand
|
||||
{
|
||||
protected:
|
||||
virtual BOOL Verify(IIocpContext* pContext, uint8* buffer, const uint32 length)
|
||||
{
|
||||
if(length < sizeof(Install))
|
||||
return FALSE;
|
||||
|
||||
m_packet = reinterpret_cast<Install*>(buffer);
|
||||
if(m_packet->install)
|
||||
{
|
||||
if(length < sizeof(csInstall))
|
||||
return FALSE;
|
||||
|
||||
m_install = reinterpret_cast<csInstall*>(buffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(length < sizeof(csUninstall))
|
||||
return FALSE;
|
||||
|
||||
m_uninstall = reinterpret_cast<csUninstall*>(buffer);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
virtual void Self()
|
||||
{
|
||||
Debug(_T("C_INSTALL\n"));
|
||||
}
|
||||
virtual void Run(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL Ready(IIocpContext* context);
|
||||
void Begin(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL DoInstall(const TCHAR* service, const TCHAR* file, const TCHAR* script);
|
||||
BOOL DoUninstall(const TCHAR* service);
|
||||
void Remove(const BOOL b);
|
||||
|
||||
BOOL CreateRegistry(const TCHAR* service, const TCHAR* file, const TCHAR* script);
|
||||
BOOL DeleteRegistry(const TCHAR* service);
|
||||
|
||||
protected:
|
||||
cSession* m_session;
|
||||
|
||||
Install* m_packet;
|
||||
csInstall* m_install;
|
||||
csUninstall* m_uninstall;
|
||||
};
|
||||
|
||||
|
||||
class CPlay : public cCommand
|
||||
{
|
||||
protected:
|
||||
virtual BOOL Verify(IIocpContext* pContext, uint8* buffer, const uint32 length)
|
||||
{
|
||||
if(length < sizeof(Play))
|
||||
return FALSE;
|
||||
|
||||
m_packet = reinterpret_cast<Play*>(buffer);
|
||||
if(m_packet->play)
|
||||
{
|
||||
if(length < sizeof(csPlay))
|
||||
return FALSE;
|
||||
|
||||
m_play = reinterpret_cast<csPlay*>(buffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(length < sizeof(csStop))
|
||||
return FALSE;
|
||||
|
||||
m_stop = reinterpret_cast<csStop*>(buffer);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
virtual void Self()
|
||||
{
|
||||
Debug(_T("C_PLAY\n"));
|
||||
}
|
||||
virtual void Run(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL Ready(IIocpContext* context);
|
||||
void Begin(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL DoPlay(const TCHAR* service, const BOOL isDemon, DWORD &PID);
|
||||
BOOL DoStop(const TCHAR* service, const BOOL isDemon);
|
||||
|
||||
protected:
|
||||
cSession* m_session;
|
||||
|
||||
Play* m_packet;
|
||||
csPlay* m_play;
|
||||
csStop* m_stop;
|
||||
|
||||
};
|
||||
|
||||
|
||||
class CBackup : public cCommand
|
||||
{
|
||||
protected:
|
||||
virtual BOOL Verify(IIocpContext* pContext, uint8* buffer, const uint32 length)
|
||||
{
|
||||
if(length < sizeof(csBackup))
|
||||
return FALSE;
|
||||
|
||||
m_packet = reinterpret_cast<csBackup*>(buffer);
|
||||
return TRUE;
|
||||
}
|
||||
virtual void Self()
|
||||
{
|
||||
Debug(_T("C_BACKUP\n"));
|
||||
}
|
||||
virtual void Run(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL Ready(IIocpContext* context);
|
||||
void Begin(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL DoBackup(const TCHAR* source, const TCHAR* target);
|
||||
|
||||
protected:
|
||||
cSession* m_session;
|
||||
|
||||
csBackup* m_packet;
|
||||
};
|
||||
|
||||
class CReboot : public cCommand
|
||||
{
|
||||
protected:
|
||||
virtual BOOL Verify(IIocpContext* pContext, uint8* buffer, const uint32 length)
|
||||
{
|
||||
if(length < sizeof(csReboot))
|
||||
return FALSE;
|
||||
|
||||
m_packet = reinterpret_cast<csReboot*>(buffer);
|
||||
return TRUE;
|
||||
}
|
||||
virtual void Self()
|
||||
{
|
||||
Debug(_T("C_REBOOT\n"));
|
||||
}
|
||||
virtual void Run(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL Ready(IIocpContext* context);
|
||||
void Begin(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL DoReboot(const uint32 option);
|
||||
|
||||
protected:
|
||||
cSession* m_session;
|
||||
|
||||
csReboot* m_packet;
|
||||
};
|
||||
|
||||
class CResource : public cCommand, public cSerialize
|
||||
{
|
||||
protected:
|
||||
virtual BOOL Verify(IIocpContext* pContext, uint8* buffer, const uint32 length)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
virtual void Self()
|
||||
{
|
||||
Debug(_T("C_RESOURCE\n"));
|
||||
}
|
||||
virtual void Run(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
BOOL Ready(IIocpContext* context);
|
||||
void Begin(IIocpContext* context);
|
||||
|
||||
protected:
|
||||
cSession* m_session;
|
||||
|
||||
PerfMon m_perfomance;
|
||||
};
|
||||
Reference in new issue
Block a user