diff options
author | Cara Salter <cara@devcara.com> | 2022-01-27 10:55:32 -0500 |
---|---|---|
committer | Cara Salter <cara@devcara.com> | 2022-01-27 10:55:32 -0500 |
commit | aa80bc22117d385474c8593560368adf6b57f074 (patch) | |
tree | bc8675806434e8f700b19fae9a127a4860c26376 /src/login.c | |
parent | ae68415af5c333d2c7a7f701ba99df6224e925a9 (diff) | |
download | cmud-aa80bc22117d385474c8593560368adf6b57f074.tar.gz cmud-aa80bc22117d385474c8593560368adf6b57f074.zip |
login: Update memory management
name is now char* instead of char*[] because why would that be a thing?
now also allocates 32 bytes for name *before* trying to strcpy
Signed-off-by: Cara Salter <cara@devcara.com>
Diffstat (limited to 'src/login.c')
-rw-r--r-- | src/login.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/login.c b/src/login.c index c94ad42..96f2615 100644 --- a/src/login.c +++ b/src/login.c @@ -1,7 +1,6 @@ -#include <string.h> #define _GNU_SOURCE -#include "data.h" #include "login.h" +#include "data.h" #include "server.h" #include <stdio.h> #include <stdlib.h> @@ -44,13 +43,17 @@ int step_login(playerc_t *player, int conn_fd) { "Welcome! Please enter your **username** below\n"); char *buf = (char *)malloc(1 << 10); printf("Waiting to receive...\n"); - recv(player->conn, buf, sizeof(buf), 0); + recv(player->conn, buf, 1024, 0); printf("Received!\n"); err = try_load_plr(buf, player); printf("Finished trying to load the player\n"); if (err) { // File doesn't exist, let's create a player! + printf("test inner\n"); + send_to_fd(player->conn, "Test"); + player->plr.name = (char *)malloc(32); strcpy(player->plr.name, buf); + printf("test copy\n"); send_to_fd(player->conn, "Howdy! Want to introduce yourself? [y|n]\n"); recv(player->conn, buf, sizeof(buf), 0); if (buf[0] == 'y') { @@ -62,16 +65,14 @@ int step_login(playerc_t *player, int conn_fd) { } continue; } else { - player->state = EnterPassword; + player->state = LoggedOut; continue; } case WantMakeAccount: - asprintf(&buf, - "Welcome aboard %s! Why don't you start us off by giving me a " - "password.\n", - *player->plr.name); + asprintf(buf, "Welcome aboard %s! Why don't you start us off by giving me a password.\n", player->plr.name); send_to_fd(player->conn, buf); } + printf("test\n"); } return err; |