From 28b41ee492805971632e1d65ab9f855ce837767b Mon Sep 17 00:00:00 2001 From: Plex Date: Fri, 4 Feb 2022 19:16:30 +0100 Subject: Factored the usage() function --- include/mcnetwork.h | 8 ++++++++ include/mctypes.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 include/mcnetwork.h create mode 100644 include/mctypes.h (limited to 'include') diff --git a/include/mcnetwork.h b/include/mcnetwork.h new file mode 100644 index 0000000..d3faaa1 --- /dev/null +++ b/include/mcnetwork.h @@ -0,0 +1,8 @@ +#include +#include "mctypes.h" + +void connect_mc_server_ping(int socket, char* address, unsigned short port); +void send_handshake(int socket, int protocol, char* address, unsigned short port, int next_state); +void send_packet(int socket, int packet_id, size_t raw_size, void* raw_data); +packet recv_packet(int socket); +varint recv_varint(int socket); 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 + + +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 -- cgit v1.2.3