diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2011-01-23 23:33:38 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2011-01-23 23:33:38 +0100 |
| commit | 322ff55a41374e39731aa53dcf6028b09c7c39c9 (patch) | |
| tree | d4865acc1c0059c395a448458d0989bb9f8481c3 /src/net_server.c | |
| parent | 53a80d4dc85faea83f1a59039090a3a35424208e (diff) | |
adapted client_recv_hello to data store
Diffstat (limited to 'src/net_server.c')
| -rw-r--r-- | src/net_server.c | 20 |
1 files changed, 9 insertions, 11 deletions
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; i<ds->players.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) |
