From 322ff55a41374e39731aa53dcf6028b09c7c39c9 Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Sun, 23 Jan 2011 23:33:38 +0100 Subject: adapted client_recv_hello to data store --- src/net_server.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'src/net_server.c') diff --git a/src/net_server.c b/src/net_server.c index 7127428..327a695 100644 --- a/src/net_server.c +++ b/src/net_server.c @@ -108,23 +108,21 @@ void server_get_players(int serversock, socket_list_t* client_socks, const uint8 * @param[in] sock Socket to use * @return Username of client */ -char* server_recv_hello(const uint8_t* payload, const uint8_t payload_len) +bool server_recv_hello(const uint8_t* payload, const uint8_t payload_len) { - assert(payload != NULL); + assert(payload != NULL && payload_len < MAX_PLAYER_NAME_LENGTH && payload_len > 0); - char* name; + data_store* ds = datamodel(); - name = malloc(payload_len+1); - if(name == NULL) + for(int i=0; iplayers.count; i++) { - printf("sender_recv_hello: Out of memory\n"); - exit(EXIT_FAILURE); + if(strlen(ds->players.players[i].player_name) > 0) // search for first empty (not yet assigned) slot + continue; + memcpy(ds->players.players[i].player_name, payload, payload_len); + ds->players.players[i].player_name[payload_len] = '\0'; } - memcpy(name, payload, payload_len); - name[payload_len] = '\0'; - - return name; + return true; } card* server_recv_selected_card(const uint8_t* payload, const uint8_t payload_len) -- cgit v1.2.3