diff options
| -rw-r--r-- | src/main.c | 15 | ||||
| -rw-r--r-- | src/net.c | 2 |
2 files changed, 12 insertions, 5 deletions
@@ -22,7 +22,7 @@ int main(int argc, char **argv) int* csocks; struct player_list players; int opponents = 3; - char* nickname = "deki"; + const char* nickname = "deki"; servermode = true; port = argv[1]; @@ -33,7 +33,8 @@ int main(int argc, char **argv) csocks = server_get_players(ssock, opponents); players.count = opponents + 1; - players.names[0] = nickname; + players.names[0] = malloc(strlen(nickname)); + strcpy(players.names[0], nickname); for(int i=0; i<opponents; i++) { @@ -46,6 +47,9 @@ int main(int argc, char **argv) // start game and send player list to clients server_start_game(csocks, opponents, &players); + // cleanup + for(int i=0; i<players->count; i++) + free(players.names[i]); close(ssock); free(csocks); } @@ -53,7 +57,7 @@ int main(int argc, char **argv) { int sock; struct player_list* players; - char* nickname = "schnippi"; + const char* nickname = "schnippi"; addr = argv[1]; port = argv[2]; @@ -68,8 +72,11 @@ int main(int argc, char **argv) for(int i=0; i<players->count; i++) printf("Player %d: %s\n", i, players->names[i]); - close(sock); + // cleanup + for(int i=0; i<players->count; i++) + free(players->names[i]); free(players); + close(sock); } ui_init(); @@ -230,7 +230,7 @@ static char* server_recv_hello(int sock) char buf[12], *name; uint8_t namelen; - recv(sock, buf, 13, 0); + recv(sock, buf, 12, 0); assert(buf[0] == msg_type_hello); |
