diff options
author | Plex <thinkplex@riseup.net> | 2022-02-04 19:16:30 +0100 |
---|---|---|
committer | Plex <thinkplex@riseup.net> | 2022-02-04 19:16:30 +0100 |
commit | 28b41ee492805971632e1d65ab9f855ce837767b (patch) | |
tree | 8fee2d3206bb74fd1117536576a391a8d1725e33 /include | |
parent | c71e08d9daa3444318c6f768894b97b1b6d65bc9 (diff) |
Factored the usage() function
Diffstat (limited to 'include')
-rw-r--r-- | include/mcnetwork.h | 8 | ||||
-rw-r--r-- | include/mctypes.h | 45 |
2 files changed, 53 insertions, 0 deletions
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 <sys/socket.h> +#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 <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 |