From ef4e6ee4fed01e51f02bcdecba59a41b3c838cf3 Mon Sep 17 00:00:00 2001 From: fduncanh Date: Wed, 2 Feb 2022 19:11:12 -0500 Subject: [PATCH] raop_rtp_mirror.c fix detection of ECONNRESET --- lib/raop.h | 1 + lib/raop_rtp_mirror.c | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/raop.h b/lib/raop.h index 53dd0f0..35126f6 100644 --- a/lib/raop.h +++ b/lib/raop.h @@ -43,6 +43,7 @@ struct raop_callbacks_s { void (*conn_teardown)(void *cls, bool *teardown_96, bool *teardown_110 ); void (*audio_flush)(void *cls); void (*video_flush)(void *cls); + void (*video_conn_reset) (void *cls); void (*audio_set_volume)(void *cls, float volume); void (*audio_set_metadata)(void *cls, const void *buffer, int buflen); void (*audio_set_coverart)(void *cls, const void *buffer, int buflen); diff --git a/lib/raop_rtp_mirror.c b/lib/raop_rtp_mirror.c index 0b4b303..f014218 100644 --- a/lib/raop_rtp_mirror.c +++ b/lib/raop_rtp_mirror.c @@ -293,7 +293,7 @@ raop_rtp_mirror_thread(void *arg) } else if (ret == -1) { if (errno == EAGAIN || errno == EWOULDBLOCK) continue; // Timeouts can happen even if the connection is fine logger_log(raop_rtp_mirror->logger, LOGGER_ERR, "raop_rtp_mirror error in recv: %d", errno); - if (errno == ECONNRESET) conn_reset = true;; + if (errno == ECONNRESET) conn_reset = true; break; } @@ -442,12 +442,11 @@ raop_rtp_mirror_thread(void *arg) raop_rtp_mirror->running = false; MUTEX_UNLOCK(raop_rtp_mirror->run_mutex); - + logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "raop_rtp_mirror exiting TCP thread"); if (conn_reset && raop_rtp_mirror->callbacks.video_conn_reset) { - logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "raop_rtp_mirror: connection reset by client"); + logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "raop_rtp_mirror: received ECONNRESET from socket"); raop_rtp_mirror->callbacks.video_conn_reset(raop_rtp_mirror->callbacks.cls); } - logger_log(raop_rtp_mirror->logger, LOGGER_DEBUG, "raop_rtp_mirror exiting TCP thread"); return 0; }