143 lines
5.3 KiB
C++
143 lines
5.3 KiB
C++
#include "StdAfx.h"
|
|
#include "./SunNetworkApi.h"
|
|
|
|
#include "../FrostShieldLib/shieldSecurity.h"
|
|
|
|
//! ÇÁ·ÎÁ§Æ® ÀÇÁ¸¼º
|
|
//#ifdef _DEBUG
|
|
// #pragma comment(lib, "../lib/gameShieldLib_d.lib")
|
|
//#else
|
|
// #pragma comment(lib, "../lib/gameShieldLib.lib")
|
|
//#endif
|
|
|
|
namespace sun_network_api
|
|
{
|
|
NetworkSecurity network_security_ = kNetworkSecurity_none;
|
|
|
|
//------------------------------------------------------------------------------
|
|
NetworkSecurity get_network_security()
|
|
{
|
|
return network_security_;
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
void set_network_security(NetworkSecurity network_security)
|
|
{
|
|
network_security_ = network_security;
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
void sun_initialize()
|
|
{
|
|
if (get_network_security() == kNetworkSecurity_Frost)
|
|
{
|
|
frostInitialize("./Frost/gameShieldDll.dll");
|
|
}
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
void sun_finalize()
|
|
{
|
|
if (get_network_security() == kNetworkSecurity_Frost)
|
|
{
|
|
frostFinalize();
|
|
}
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
void sun_set_username(const char* user_name)
|
|
{
|
|
if (get_network_security() == kNetworkSecurity_Frost)
|
|
{
|
|
frostSetUserName(user_name);
|
|
}
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
int sun_connect(SOCKET s, const struct sockaddr* name, int namelen)
|
|
{
|
|
if (get_network_security() == kNetworkSecurity_Frost)
|
|
{
|
|
return frostConnect(s, name, namelen);
|
|
}
|
|
return connect(s, name, namelen);
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
int sun_send(SOCKET s, const char* buf, int len, int flags)
|
|
{
|
|
if (get_network_security() == kNetworkSecurity_Frost)
|
|
{
|
|
return frostSend(s, buf, len, flags);
|
|
}
|
|
return send(s, buf, len, flags);
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
int sun_WSASend(SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, LPDWORD lpNumberOfBytesSent,
|
|
DWORD dwFlags, LPWSAOVERLAPPED lpOverlapped,
|
|
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
|
|
{
|
|
if (get_network_security() == kNetworkSecurity_Frost)
|
|
{
|
|
return frostWSASend(s, lpBuffers, dwBufferCount, lpNumberOfBytesSent,
|
|
dwFlags, lpOverlapped, lpCompletionRoutine);
|
|
}
|
|
return WSASend(s, lpBuffers, dwBufferCount, lpNumberOfBytesSent,
|
|
dwFlags, lpOverlapped, lpCompletionRoutine);
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
int sun_sendto(SOCKET s, const char* buf, int len, int flags, const struct sockaddr* to, int tolen)
|
|
{
|
|
if (get_network_security() == kNetworkSecurity_Frost)
|
|
{
|
|
return frostSendto(s, buf, len, flags, to, tolen);
|
|
}
|
|
return sendto(s, buf, len, flags, to, tolen);
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
int sun_recv(SOCKET s, char* buf, int len, int flags)
|
|
{
|
|
if (get_network_security() == kNetworkSecurity_Frost)
|
|
{
|
|
return frostRecv(s, buf, len, flags);
|
|
}
|
|
return recv(s, buf, len, flags);
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
int sun_WSARecv(SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, LPDWORD lpNumberOfBytesRecvd,
|
|
LPDWORD lpFlags, LPWSAOVERLAPPED lpOverlapped,
|
|
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
|
|
{
|
|
if (get_network_security() == kNetworkSecurity_Frost)
|
|
{
|
|
return frostWSARecv(s, lpBuffers, dwBufferCount, lpNumberOfBytesRecvd,
|
|
lpFlags, lpOverlapped, lpCompletionRoutine);
|
|
}
|
|
return WSARecv(s, lpBuffers, dwBufferCount, lpNumberOfBytesRecvd,
|
|
lpFlags, lpOverlapped, lpCompletionRoutine);
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
int sun_recvfrom(SOCKET s, char* buf, int len, int flags, struct sockaddr* from, int* fromlen)
|
|
{
|
|
if (get_network_security() == kNetworkSecurity_Frost)
|
|
{
|
|
return frostRecvfrom(s, buf, len, flags, from, fromlen);
|
|
}
|
|
return recvfrom(s, buf, len, flags, from, fromlen);
|
|
}
|
|
#ifdef _DEBUG
|
|
//------------------------------------------------------------------------------
|
|
NetworkDebugFile::NetworkDebugFile(const char* filename, DWORD packet_size)
|
|
{
|
|
strcpy(filename_, filename);
|
|
packet_size_ = packet_size;
|
|
start_time_ = GetTickCount();
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
NetworkDebugFile::~NetworkDebugFile()
|
|
{
|
|
FILE* fp = fopen(filename_, "at");
|
|
if (fp)
|
|
{
|
|
fprintf(fp, "%d, %d\n", packet_size_, GetTickCount() - start_time_);
|
|
fclose(fp);
|
|
}
|
|
}
|
|
#endif
|
|
};
|