X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fnetserv.h;h=6017557ab9b8f272347e55420dfc575df2ec2ee1;hp=e0815bd06a1754ae20c7f52e8dd81959dc1a609e;hb=45c910a978cabc8e8dd40fac47b17b7d402c91aa;hpb=abe44529b439ad39b4d8dbf19cbd67c9b9844279 diff --git a/src/netserv.h b/src/netserv.h index e0815bd0..6017557a 100644 --- a/src/netserv.h +++ b/src/netserv.h @@ -16,9 +16,9 @@ #define DEFAULT_SERVER_PORT 19504 -#define PROTOCOL_VERSION_1 1 -#define PROTOCOL_VERSION_2 2 -#define PROTOCOL_VERSION_3 0 +#define PROTOCOL_VERSION_MAJOR 2 +#define PROTOCOL_VERSION_MINOR 0 +#define PROTOCOL_VERSION_PATCH 0 #define OP_PROTOCOL_VERSION 1 #define OP_BAD_PROTOCOL_VERSION 2 @@ -36,10 +36,44 @@ #define MAX_BUFFER_SIZE 4096 -#if defined(TARGET_SDL) -int NetworkServerThread(void *); -#endif +struct NetworkBuffer +{ + unsigned int max_size; + unsigned int size; + unsigned int pos; + + byte *buffer; +}; + + +int getNetwork8BitInteger(byte *); +int putNetwork8BitInteger(byte *, int); +int getNetwork16BitInteger(byte *); +int putNetwork16BitInteger(byte *, int); +int getNetwork32BitInteger(byte *); +int putNetwork32BitInteger(byte *, int); +char *getNetworkString(byte *); +int putNetworkString(byte *, char *); + +struct NetworkBuffer *newNetworkBuffer(); +void initNetworkBufferForReceiving(struct NetworkBuffer *); +void initNetworkBufferForReading(struct NetworkBuffer *); +void initNetworkBufferForWriting(struct NetworkBuffer *, int, int); + +int receiveNetworkBufferBytes(struct NetworkBuffer *, TCPsocket, int); +int receiveNetworkBufferPacket(struct NetworkBuffer *, TCPsocket); + +int getNetworkBuffer8BitInteger(struct NetworkBuffer *); +void putNetworkBuffer8BitInteger(struct NetworkBuffer *, int); +int getNetworkBuffer16BitInteger(struct NetworkBuffer *); +void putNetworkBuffer16BitInteger(struct NetworkBuffer *, int); +int getNetworkBuffer32BitInteger(struct NetworkBuffer *); +void putNetworkBuffer32BitInteger(struct NetworkBuffer *, int); +char *getNetworkBufferString(struct NetworkBuffer *); +void putNetworkBufferString(struct NetworkBuffer *, char *); + +int NetworkServerThread(void *); void NetworkServer(int, int); #endif