summaryrefslogtreecommitdiff
path: root/minecctl
diff options
context:
space:
mode:
Diffstat (limited to 'minecctl')
-rw-r--r--minecctl/meson.build14
-rw-r--r--minecctl/minecctl.c40
2 files changed, 54 insertions, 0 deletions
diff --git a/minecctl/meson.build b/minecctl/meson.build
new file mode 100644
index 0000000..3490338
--- /dev/null
+++ b/minecctl/meson.build
@@ -0,0 +1,14 @@
+minecctl_sources = [
+ 'minecctl.c',
+]
+
+minecctl_deps = [
+ dep_libshared,
+]
+
+executable(
+ 'minecctl',
+ minecctl_sources,
+ dependencies: minecctl_deps,
+)
+
diff --git a/minecctl/minecctl.c b/minecctl/minecctl.c
new file mode 100644
index 0000000..e29dcef
--- /dev/null
+++ b/minecctl/minecctl.c
@@ -0,0 +1,40 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <inttypes.h>
+
+#include "rcon-protocol.h"
+
+int
+main(int argc, char **argv)
+{
+ char buf[4096];
+ size_t len;
+ int32_t id, type;
+ const char *msg, *error;
+
+ fprintf(stderr, "Started\n");
+
+ if (!rcon_protocol_create_packet(buf, sizeof(buf), &len,
+ 1, RCON_PACKET_LOGIN,
+ "test")) {
+ fprintf(stderr, "Failed to create packet\n");
+ exit(EXIT_FAILURE);
+ }
+
+ if (!rcon_protocol_packet_complete(buf, len)) {
+ fprintf(stderr, "Packet not complete\n");
+ exit(EXIT_FAILURE);
+ }
+
+ if (!rcon_protocol_read_packet(buf, len, &id, &type, &msg, &error)) {
+ fprintf(stderr, "Packet parsing failed: %s\n", error);
+ exit(EXIT_FAILURE);
+ }
+
+ fprintf(stderr, "Packet - id: %" PRIi32 ", type: %" PRIi32 ", msg: %s\n",
+ id, type, msg);
+
+ exit(EXIT_SUCCESS);
+}
+