Passo alla gestione automatizzata delle dipendenze
Sostituisco getaddrinfo() con inet_pton() per il client, così da poter compilare in C89
Riscrivo create_client_node(), usando check_alloc() e inizializzando i campi più importanti
Cambio la gestione di read_dispatch, aggiungendo un flag 'muted' ai client
Modifico il Makefile per compilare in C89 e attivare tutti gli altri warning
Piccolo fix al server
Porto da LOG_WARNING a LOG_DEBUG i messaggi per segnalare received=0 (disconnessione)
Separo uno spezzone di codice in send_play_request() per il server
Separo uno spezzone di codice in send_play_contact() per il server
Implemento la gestione del messaggio REQ_END, con corretta gestione della
disconnessione di uno dei client.
Riscrivo start_match() per prevedere la possiblità che il client che ha fatto
richiesta di gioco si sia sconnesso nel frattempo.
Il cambio di read_dispatch in uscita da send_data() è molto più lineare perché
dipende solo dallo stato del client.
Adatto anche l'implementazione del comando 'playing', da migliorare.
Piccolo fix (aec6e74) per zittire un warning per il client
Cambio tutti i print del client in log, in inglese.
Qualche correzione al logging del server.
Aggiungo il controllo client != NULL in log_statechange()
Aggiungo log_multiline() con documentazione
Aggiungo log_prompt(), che va a sostituire la macro prompt()
Divido su più linee le istruzioni che superano la soglia di 80 caratteri,
allineando a destra quello che rimane.
Rifattorizzo tris_client.c: riorganizzo le variabili globali e locali, eseguo il
login all'avvio e faccio qualche fix
Rifattorizzo tris_client.c: aggiungo get_play_response(),
list_connected_clients() e send_play_request()
Aggiungo send_byte() e send_buffer() in common.h e le utilizzo in tris_client.c
per rifattorizzare le operazioni di invio di dati. Rinomino send_* in prepare_*
in tris_server.c per evitare conflitti.
Aggiungo l'inserimento del timestamp per i log wrapped