chansrv: sound: zero out ack flags when sound_send_close called, to

avoid deadloop when chunk is sent and not acked back by the client.
This commit is contained in:
speidy 2014-04-28 00:24:20 +03:00 committed by Jay Sorg
parent 0db5bdbf69
commit 2305e6de59

View File

@ -373,6 +373,8 @@ sound_send_wave_data_chunk(char *data, int data_bytes)
return 0; return 0;
} }
LOG(20, ("sound_send_wave_data_chunk: g_sent_flag[%d] = %d",
g_cBlockNo + 1, g_sent_flag[(g_cBlockNo + 1) & 0xff]));
if (g_sent_flag[(g_cBlockNo + 1) & 0xff] & 1) if (g_sent_flag[(g_cBlockNo + 1) & 0xff] & 1)
{ {
LOG(10, ("sound_send_wave_data_chunk: no room")); LOG(10, ("sound_send_wave_data_chunk: no room"));
@ -474,6 +476,7 @@ sound_send_close(void)
/* send any left over data */ /* send any left over data */
sound_send_wave_data_chunk(g_buffer, g_buf_index); sound_send_wave_data_chunk(g_buffer, g_buf_index);
g_buf_index = 0; g_buf_index = 0;
g_memset(g_sent_flag, 0, sizeof(g_sent_flag));
make_stream(s); make_stream(s);
init_stream(s, 8182); init_stream(s, 8182);
@ -701,6 +704,7 @@ sound_init(void)
int APP_CC int APP_CC
sound_deinit(void) sound_deinit(void)
{ {
LOG(10, ("sound_deinit:"));
if (g_audio_l_trans_out != 0) if (g_audio_l_trans_out != 0)
{ {
trans_delete(g_audio_l_trans_out); trans_delete(g_audio_l_trans_out);