summaryrefslogtreecommitdiff
path: root/src/modules/raop
diff options
context:
space:
mode:
authorHajime Fujita <crisp.fujita@nifty.com>2016-11-06 12:54:24 -0600
committerTanu Kaskinen <tanuk@iki.fi>2017-01-19 03:10:19 +0200
commitd7721032ea3aee1a7845f7853d7978255c367296 (patch)
tree286c12acb3757f0f8f1b8682b5e1318e4e80efad /src/modules/raop
parent3e26f2d15e095edf39048e35eb6953f559268dd8 (diff)
downloadpulseaudio-d7721032ea3aee1a7845f7853d7978255c367296.tar.gz
raop: Discard data upon getting EAGAIN on a socket
This patch discards audio data when a socket returns EAGAIN. This was made based on a suggestion by karlstav (https://github.com/karlstav), and is supposed to solve Issue #32. (https://github.com/hfujita/pulseaudio-raop2/issues/32)
Diffstat (limited to 'src/modules/raop')
-rw-r--r--src/modules/raop/raop-client.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/modules/raop/raop-client.c b/src/modules/raop/raop-client.c
index 68d188a0c..f71ad9d3a 100644
--- a/src/modules/raop/raop-client.c
+++ b/src/modules/raop/raop-client.c
@@ -471,8 +471,7 @@ static ssize_t send_udp_audio_packet(pa_raop_client *c, pa_memchunk *block, size
written = pa_write(c->udp_sfd, buffer, packet->length, NULL);
if (written < 0 && (errno == EAGAIN || errno == EWOULDBLOCK)) {
pa_log_debug("Discarding UDP (audio, seq=%d) packet due to EAGAIN (%s)", c->seq, pa_cstrerror(errno));
- pa_memblock_release(packet->memblock);
- return (ssize_t) packet->length;
+ written = packet->length;
}
pa_memblock_release(packet->memblock);