From 4585ec623286900898a09b1714b3b5de38be4fec Mon Sep 17 00:00:00 2001 From: Cara Salter Date: Fri, 28 Jan 2022 15:50:38 -0500 Subject: login: Add password authentication for registrations --- src/data.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/data.c') diff --git a/src/data.c b/src/data.c index dabdee7..3884170 100644 --- a/src/data.c +++ b/src/data.c @@ -6,6 +6,7 @@ #include #include #include +#include int try_make_data_dirs() { int err = 0; @@ -39,7 +40,6 @@ int try_load_plr(char *player_name, playerc_t *plr) { FILE *fp; if (fp = fopen(fname, "rb")) { - printf("%p", fp); printf("Got fp\n"); @@ -59,17 +59,24 @@ int try_write_plr(player_t *plr) { err = try_make_data_dirs(); if (err) { - perror("creating data directories"); - printf("Could not create data/\n"); - return 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 + case EACCES: /* No permissions***************************************/ + printf("No permissions to create directories\n"); + return -1; + default: /* Do nothing because this is fine****************************/ + break; + } } char *fname; - asprintf(&fname, "data/players/%s.plr", *plr->name); + asprintf(&fname, "data/players/%s.plr", plr->name); FILE *fp = fopen(fname, "wb"); fwrite(&plr, sizeof(player_t), 1, fp); + fsync(fp); return err; } -- cgit v1.2.3