diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/data.c | 19 | ||||
-rw-r--r-- | src/data.h | 4 | ||||
-rw-r--r-- | src/login.c | 14 | ||||
-rw-r--r-- | src/server.c | 3 |
4 files changed, 30 insertions, 10 deletions
@@ -17,29 +17,36 @@ int try_make_data_dirs() { int try_load_plr(char *player_name, playerc_t *plr) { int err = 0; + printf("Trying to make data directories...\n"); err = try_make_data_dirs(); if (err) { switch (err) { - // Now the errors that continue will be from I/O, which we can use to figure out if the file exists in login + // Now the errors that continue will be from I/O, which we can use to + // figure out if the file exists in login case EACCES: /* No permissions***************************************/ - printf("No permissions to create directories\n"); - return -1; - default:/* Do nothing because this is fine****************************/ - break; + printf("No permissions to create directories\n"); + return -1; + default: /* Do nothing because this is fine****************************/ + break; } } + printf("Done, opening file.\n"); + char *fname; asprintf(&fname, "data/players/%s.plr", player_name); FILE *fp = fopen(fname, "rb"); + printf("Got fp\n"); fread(&plr, sizeof(playerc_t), 1, fp); + printf("Read file into plr\n"); + return err; } -int try_write_file(player_t *plr) { +int try_write_plr(player_t *plr) { int err = 0; err = try_make_data_dirs(); @@ -2,8 +2,8 @@ #define DATA_H #include "login.h" -int try_load_file(char *player_name); +int try_load_plr(char *player_name, playerc_t *conn); -int try_write_file(player_t *plr); +int try_write_plr(player_t *plr); #endif diff --git a/src/login.c b/src/login.c index c6ab408..c94ad42 100644 --- a/src/login.c +++ b/src/login.c @@ -5,16 +5,20 @@ #include "server.h" #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <sys/socket.h> #include <unistd.h> void handle_player(int conn_fd) { + printf("Let's make a new player object\n"); playerc_t plrc = {0}; plrc.state = LoggedOut; plrc.conn = conn_fd; player_t plr = {0}; plrc.plr = plr; + printf("No sense in having a player if they can't log in!\n"); + int err = step_login(&plrc, conn_fd); if (err) { err = send_to_fd(conn_fd, "Error in login process, exiting"); @@ -35,11 +39,15 @@ int step_login(playerc_t *player, int conn_fd) { switch (player->state) { case LoggedOut: /* the player has yet to log in, this is a fresh connection! */ + printf("The player is logged out\n"); send_to_fd(player->conn, "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); - err = try_load_file(buf); + 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! strcpy(player->plr.name, buf); @@ -60,7 +68,9 @@ int step_login(playerc_t *player, int conn_fd) { case WantMakeAccount: asprintf(&buf, "Welcome aboard %s! Why don't you start us off by giving me a " - "password.\n", ) send_to_fd(player->conn, "Welcome aboard! ") + "password.\n", + *player->plr.name); + send_to_fd(player->conn, buf); } } diff --git a/src/server.c b/src/server.c index bee6153..68fec90 100644 --- a/src/server.c +++ b/src/server.c @@ -45,6 +45,7 @@ int server_listen(server_t *server) { printf("Failed to listen on socket\n"); return err; } + printf("Bound to port 8000\n"); return 0; } @@ -61,6 +62,7 @@ int server_accept(server_t *server) { for (;;) { err = (conn_fd = accept(server->listen_fd, (struct sockaddr *)&client_addr, &client_len)); + printf("Accepting a new connection\n"); if (err == -1) { perror("Accept"); printf("failed accepting connection\n"); @@ -68,6 +70,7 @@ int server_accept(server_t *server) { } if (!fork()) { + printf("Forking, let's go handle them!\n"); handle_player(conn_fd); } } |