1
0
cuberite-2a/ProtoProxy/Connection.h
madmaxoft@gmail.com e1c83be32d ProtoProxy: Initial import of the protocol proxy project.
Currently it logs all communication, doesn't decode anything, doesn't decrypt.

git-svn-id: http://mc-server.googlecode.com/svn/trunk@822 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-02 15:38:28 +00:00

60 lines
1.1 KiB
C++

// Connection.h
// Interfaces to the cConnection class representing a single pair of connected sockets
#pragma once
#include <time.h>
class cServer;
class cConnection
{
cCriticalSection m_CSLog;
FILE * m_LogFile;
cServer & m_Server;
SOCKET m_ClientSocket;
SOCKET m_ServerSocket;
clock_t m_BeginTick; // Tick when the relative time was first retrieved (used for GetRelativeTime())
public:
cConnection(SOCKET a_ClientSocket, cServer & a_Server);
~cConnection();
void Run(void);
void Log(const char * a_Format, ...);
void DataLog(const void * a_Data, int a_Size, const char * a_Format, ...);
protected:
bool ConnectToServer(void);
/// Relays data from server to client; returns false if connection aborted
bool RelayFromServer(void);
/// Relays data from client to server; returns false if connection aborted
bool RelayFromClient(void);
/// Returns the time relative to the first call of this function, in the fractional seconds elapsed
double GetRelativeTime(void);
} ;