diff options
Diffstat (limited to 'include/mctypes.h')
-rw-r--r-- | include/mctypes.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/include/mctypes.h b/include/mctypes.h new file mode 100644 index 0000000..2541b93 --- /dev/null +++ b/include/mctypes.h @@ -0,0 +1,45 @@ +#ifndef MCTYPES_H +#define MCTYPES_H + +#include <sys/types.h> + + +typedef u_int8_t *varint; +typedef u_int8_t *varlong; + +typedef struct { + varint length; + char *content; +} string; + +typedef struct { + varint length; + varint id; + void *data; +} packet; + +typedef struct { + varint protocol_version; + string server_address; + unsigned short server_port; + varint next_state; +}__attribute__((packed)) handshake; + + +typedef long ping; +typedef long pong; + +int from_varint(varint x); +varint to_varint(unsigned int x); +size_t size_varint(varint x); + +size_t serialize_handshake(handshake hs, void **buf); +size_t serialize_packet(const packet p, void **buf); + +varint deserialize_varint(void **raw); +string deserialize_string(void **raw); + +void free_packet(packet p); +void free_handshake(handshake h); + +#endif // MCTYPES_H |