From ab6225c1ac1c57f5af50890d722437ec8a921d0d Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:44:12 +0000 Subject: [PATCH] Add some extra diagnostics to investigate a read of zero bytes. --- rtsp.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/rtsp.c b/rtsp.c index e7618995..7ed0378d 100644 --- a/rtsp.c +++ b/rtsp.c @@ -1179,19 +1179,29 @@ ssize_t timed_read_from_rtsp_connection(rtsp_conn_info *conn, uint64_t wait_time read_encrypted(conn->fd, &conn->ap2_pairing_context.control_cipher_bundle, buf, count); } else { result = read(conn->fd, buf, count); - if (result == 0) - debug(1, "AP2 read result 0, for a request count of %u.", count); + if (result == 0) { + debug(1, "AP2 read result 0, for a request count of %u.", count); + } } #else result = read(conn->fd, buf, count); - if (result == 0) + if (result == 0) { debug(1, "AP1 read result 0, for a request count of %u.", count); + + } #endif + if ((result == 0) && (errno != 0)) { + char errorstring[1024]; + strerror_r(errno, (char *)errorstring, sizeof(errorstring)); + debug(1, "Connection %d: read result 0, error %d: \"%s\".", + conn->connection_number, errno, (char *)errorstring); + } + if (wait_time != 0) remaining_time = time_to_wait_to - get_absolute_time_in_ns(); - if (((result == -1) && ((errno == EAGAIN) || (errno == EWOULDBLOCK))) && (remaining_time > 0)) + if ((((result == -1) || (result == 0)) && ((errno == EAGAIN) || (errno == EWOULDBLOCK))) && (remaining_time > 0)) debug(1, "remaining time on a timed read is %" PRId64 " ns.", remaining_time); - } while (((result == -1) && ((errno == EAGAIN) || (errno == EWOULDBLOCK))) && + } while ((((result == -1) || (result == 0)) && ((errno == EAGAIN) || (errno == EWOULDBLOCK))) && (remaining_time > 0)); } else { -- 2.47.2