summaryrefslogtreecommitdiff
path: root/src/server/comms.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/comms.c')
-rw-r--r--src/server/comms.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/server/comms.c b/src/server/comms.c
new file mode 100644
index 0000000..7b8001b
--- /dev/null
+++ b/src/server/comms.c
@@ -0,0 +1,52 @@
+#include <assert.h>
+
+struct str {
+ char msg[126];
+ int len;
+};
+
+void set_output(struct str* output, char* msg) {
+ int i = 0;
+ while (msg[i] != 0) {
+ assert(i < 126);
+ output->msg[i] = msg[i];
+ i++;
+ }
+ output->len = i;
+}
+
+struct strs {
+ struct str* data;
+ int capacity;
+ int count;
+};
+
+struct strs init_strs() {
+ return (struct strs) {
+ .data = malloc(sizeof(struct str) * 10),
+ .count = 0,
+ .capacity = 10,
+ };
+}
+void add_str(struct strs* strs, char* str) {
+ if (strs->count + 1 > strs->capacity) {
+ strs->capacity += 30;
+ strs->data = realloc(strs->data, sizeof(struct str) * strs->capacity);
+ }
+
+ struct str item;
+ set_output(&item, str);
+
+ strs->data[strs->count] = item;
+ strs->count++;
+}
+
+struct strs handle_input(char* payload, int len) {
+ printf("Message: %.*s\n", len, payload);
+ struct strs output = init_strs();
+
+ add_str(&output, "nigga");
+ add_str(&output, "nigga2");
+
+ return output;
+}