ProtoProxy: Compiles under Linux.
This commit is contained in:
parent
b99fe7d812
commit
1aeecdbe43
@ -77,8 +77,8 @@ endfunction()
|
|||||||
|
|
||||||
|
|
||||||
# Include the libraries:
|
# Include the libraries:
|
||||||
file(GLOB CRYPTOPP_SRC "../../lib/CryptoPP/*.cpp")
|
file(GLOB CRYPTOPP_SRC "../../lib/cryptopp/*.cpp")
|
||||||
file(GLOB CRYPTOPP_HDR "../../lib/CryptoPP/*.h")
|
file(GLOB CRYPTOPP_HDR "../../lib/cryptopp/*.h")
|
||||||
flatten_files(CRYPTOPP_SRC)
|
flatten_files(CRYPTOPP_SRC)
|
||||||
flatten_files(CRYPTOPP_HDR)
|
flatten_files(CRYPTOPP_HDR)
|
||||||
source_group("CryptoPP" FILES ${CRYPTOPP_SRC} ${CRYPTOPP_HDR})
|
source_group("CryptoPP" FILES ${CRYPTOPP_SRC} ${CRYPTOPP_HDR})
|
||||||
|
@ -155,6 +155,32 @@ AString PrintableAbsIntTriplet(int a_X, int a_Y, int a_Z, double a_Divisor = 32)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
struct sCoords
|
||||||
|
{
|
||||||
|
int x, y, z;
|
||||||
|
|
||||||
|
sCoords(int a_X, int a_Y, int a_Z) : x(a_X), y(a_Y), z(a_Z) {}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
struct sChunkMeta
|
||||||
|
{
|
||||||
|
int m_ChunkX, m_ChunkZ;
|
||||||
|
short m_PrimaryBitmap;
|
||||||
|
short m_AddBitmap;
|
||||||
|
sChunkMeta(int a_ChunkX, int a_ChunkZ, short a_PrimaryBitmap, short a_AddBitmap) :
|
||||||
|
m_ChunkX(a_ChunkX), m_ChunkZ(a_ChunkZ), m_PrimaryBitmap(a_PrimaryBitmap), m_AddBitmap(a_AddBitmap)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// cConnection:
|
// cConnection:
|
||||||
|
|
||||||
@ -220,7 +246,7 @@ void cConnection::Run(void)
|
|||||||
int res = select(2, &ReadFDs, NULL, NULL, NULL);
|
int res = select(2, &ReadFDs, NULL, NULL, NULL);
|
||||||
if (res <= 0)
|
if (res <= 0)
|
||||||
{
|
{
|
||||||
printf("select() failed: %d; aborting client", WSAGetLastError());
|
printf("select() failed: %d; aborting client", SocketError);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (FD_ISSET(m_ServerSocket, &ReadFDs))
|
if (FD_ISSET(m_ServerSocket, &ReadFDs))
|
||||||
@ -319,7 +345,7 @@ bool cConnection::ConnectToServer(void)
|
|||||||
localhost.sin_addr.s_addr = htonl(0x7f000001); // localhost
|
localhost.sin_addr.s_addr = htonl(0x7f000001); // localhost
|
||||||
if (connect(m_ServerSocket, (sockaddr *)&localhost, sizeof(localhost)) != 0)
|
if (connect(m_ServerSocket, (sockaddr *)&localhost, sizeof(localhost)) != 0)
|
||||||
{
|
{
|
||||||
printf("connection to server failed: %d\n", WSAGetLastError());
|
printf("connection to server failed: %d\n", SocketError);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Log("Connected to SERVER");
|
Log("Connected to SERVER");
|
||||||
@ -336,7 +362,7 @@ bool cConnection::RelayFromServer(void)
|
|||||||
int res = recv(m_ServerSocket, Buffer, sizeof(Buffer), 0);
|
int res = recv(m_ServerSocket, Buffer, sizeof(Buffer), 0);
|
||||||
if (res <= 0)
|
if (res <= 0)
|
||||||
{
|
{
|
||||||
Log("Server closed the socket: %d; %d; aborting connection", res, WSAGetLastError());
|
Log("Server closed the socket: %d; %d; aborting connection", res, SocketError);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -376,7 +402,7 @@ bool cConnection::RelayFromClient(void)
|
|||||||
int res = recv(m_ClientSocket, Buffer, sizeof(Buffer), 0);
|
int res = recv(m_ClientSocket, Buffer, sizeof(Buffer), 0);
|
||||||
if (res <= 0)
|
if (res <= 0)
|
||||||
{
|
{
|
||||||
Log("Client closed the socket: %d; %d; aborting connection", res, WSAGetLastError());
|
Log("Client closed the socket: %d; %d; aborting connection", res, SocketError);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -424,7 +450,7 @@ bool cConnection::SendData(SOCKET a_Socket, const char * a_Data, int a_Size, con
|
|||||||
int res = send(a_Socket, a_Data, a_Size, 0);
|
int res = send(a_Socket, a_Data, a_Size, 0);
|
||||||
if (res <= 0)
|
if (res <= 0)
|
||||||
{
|
{
|
||||||
Log("%s closed the socket: %d, %d; aborting connection", a_Peer, res, WSAGetLastError());
|
Log("%s closed the socket: %d, %d; aborting connection", a_Peer, res, SocketError);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -1664,12 +1690,6 @@ bool cConnection::HandleServerExplosion(void)
|
|||||||
HANDLE_SERVER_PACKET_READ(ReadBEFloat, float, PosZ);
|
HANDLE_SERVER_PACKET_READ(ReadBEFloat, float, PosZ);
|
||||||
HANDLE_SERVER_PACKET_READ(ReadBEFloat, float, Force);
|
HANDLE_SERVER_PACKET_READ(ReadBEFloat, float, Force);
|
||||||
HANDLE_SERVER_PACKET_READ(ReadBEInt, int, NumRecords);
|
HANDLE_SERVER_PACKET_READ(ReadBEInt, int, NumRecords);
|
||||||
struct sCoords
|
|
||||||
{
|
|
||||||
int x, y, z;
|
|
||||||
|
|
||||||
sCoords(int a_X, int a_Y, int a_Z) : x(a_X), y(a_Y), z(a_Z) {}
|
|
||||||
} ;
|
|
||||||
std::vector<sCoords> Records;
|
std::vector<sCoords> Records;
|
||||||
Records.reserve(NumRecords);
|
Records.reserve(NumRecords);
|
||||||
int PosXI = (int)PosX, PosYI = (int)PosY, PosZI = (int)PosZ;
|
int PosXI = (int)PosX, PosYI = (int)PosY, PosZI = (int)PosZ;
|
||||||
@ -1864,16 +1884,6 @@ bool cConnection::HandleServerMapChunkBulk(void)
|
|||||||
|
|
||||||
// Read individual chunk metas.
|
// Read individual chunk metas.
|
||||||
// Need to read them first and only then start logging (in case we don't have the full packet yet)
|
// Need to read them first and only then start logging (in case we don't have the full packet yet)
|
||||||
struct sChunkMeta
|
|
||||||
{
|
|
||||||
int m_ChunkX, m_ChunkZ;
|
|
||||||
short m_PrimaryBitmap;
|
|
||||||
short m_AddBitmap;
|
|
||||||
sChunkMeta(int a_ChunkX, int a_ChunkZ, short a_PrimaryBitmap, short a_AddBitmap) :
|
|
||||||
m_ChunkX(a_ChunkX), m_ChunkZ(a_ChunkZ), m_PrimaryBitmap(a_PrimaryBitmap), m_AddBitmap(a_AddBitmap)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
} ;
|
|
||||||
typedef std::vector<sChunkMeta> sChunkMetas;
|
typedef std::vector<sChunkMeta> sChunkMetas;
|
||||||
sChunkMetas ChunkMetas;
|
sChunkMetas ChunkMetas;
|
||||||
ChunkMetas.reserve(ChunkCount);
|
ChunkMetas.reserve(ChunkCount);
|
||||||
@ -1903,7 +1913,6 @@ bool cConnection::HandleServerMapChunkBulk(void)
|
|||||||
// TODO: Save the compressed data into a file for later analysis
|
// TODO: Save the compressed data into a file for later analysis
|
||||||
|
|
||||||
COPY_TO_CLIENT();
|
COPY_TO_CLIENT();
|
||||||
Sleep(50);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2853,8 +2862,8 @@ void cConnection::SendEncryptionKeyResponse(const AString & a_ServerPublicKey, c
|
|||||||
int EncryptedLength = rsaEncryptor.FixedCiphertextLength();
|
int EncryptedLength = rsaEncryptor.FixedCiphertextLength();
|
||||||
ASSERT(EncryptedLength <= sizeof(EncryptedSecret));
|
ASSERT(EncryptedLength <= sizeof(EncryptedSecret));
|
||||||
rsaEncryptor.Encrypt(rng, SharedSecret, sizeof(SharedSecret), EncryptedSecret);
|
rsaEncryptor.Encrypt(rng, SharedSecret, sizeof(SharedSecret), EncryptedSecret);
|
||||||
m_ServerEncryptor.SetKey(SharedSecret, 16, MakeParameters(Name::IV(), ConstByteArrayParameter(SharedSecret, 16))(Name::FeedbackSize(), 1));
|
m_ServerEncryptor.SetKey(SharedSecret, 16, MakeParameters(Name::IV(), ConstByteArrayParameter(SharedSecret, 16, true))(Name::FeedbackSize(), 1));
|
||||||
m_ServerDecryptor.SetKey(SharedSecret, 16, MakeParameters(Name::IV(), ConstByteArrayParameter(SharedSecret, 16))(Name::FeedbackSize(), 1));
|
m_ServerDecryptor.SetKey(SharedSecret, 16, MakeParameters(Name::IV(), ConstByteArrayParameter(SharedSecret, 16, true))(Name::FeedbackSize(), 1));
|
||||||
|
|
||||||
// Encrypt the nonce:
|
// Encrypt the nonce:
|
||||||
byte EncryptedNonce[128];
|
byte EncryptedNonce[128];
|
||||||
|
@ -95,6 +95,7 @@ typedef unsigned short UInt16;
|
|||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
|
#include <ws2tcpip.h>
|
||||||
|
|
||||||
// Windows SDK defines min and max macros, messing up with our std::min and std::max usage
|
// Windows SDK defines min and max macros, messing up with our std::min and std::max usage
|
||||||
#undef min
|
#undef min
|
||||||
@ -104,6 +105,8 @@ typedef unsigned short UInt16;
|
|||||||
#ifdef GetFreeSpace
|
#ifdef GetFreeSpace
|
||||||
#undef GetFreeSpace
|
#undef GetFreeSpace
|
||||||
#endif // GetFreeSpace
|
#endif // GetFreeSpace
|
||||||
|
|
||||||
|
#define SocketError WSAGetLastError()
|
||||||
#else
|
#else
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h> // for mkdir
|
#include <sys/stat.h> // for mkdir
|
||||||
@ -116,6 +119,7 @@ typedef unsigned short UInt16;
|
|||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
@ -129,6 +133,8 @@ typedef unsigned short UInt16;
|
|||||||
{
|
{
|
||||||
INVALID_SOCKET = -1,
|
INVALID_SOCKET = -1,
|
||||||
};
|
};
|
||||||
|
#define closesocket close
|
||||||
|
#define SocketError errno
|
||||||
#if !defined(ANDROID_NDK)
|
#if !defined(ANDROID_NDK)
|
||||||
#include <tr1/memory>
|
#include <tr1/memory>
|
||||||
#endif
|
#endif
|
||||||
|
@ -66,11 +66,11 @@ void cServer::Run(void)
|
|||||||
{
|
{
|
||||||
sockaddr_in Addr;
|
sockaddr_in Addr;
|
||||||
memset(&Addr, 0, sizeof(Addr));
|
memset(&Addr, 0, sizeof(Addr));
|
||||||
int AddrSize = sizeof(Addr);
|
socklen_t AddrSize = sizeof(Addr);
|
||||||
SOCKET client = accept(m_ListenSocket, (sockaddr *)&Addr, &AddrSize);
|
SOCKET client = accept(m_ListenSocket, (sockaddr *)&Addr, &AddrSize);
|
||||||
if (client == INVALID_SOCKET)
|
if (client == INVALID_SOCKET)
|
||||||
{
|
{
|
||||||
printf("accept returned an error: %d; bailing out.\n", WSAGetLastError());
|
printf("accept returned an error: %d; bailing out.\n", SocketError);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
printf("Client connected, proxying...\n");
|
printf("Client connected, proxying...\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user