aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2022-06-08 11:35:07 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2022-06-08 11:35:07 +0200
commit830c43f4b462fb2f8d995dd0cdc8fd32282d023e (patch)
tree8242f4e887c1bd8005fa4c12b9c96034a99f3052
parent5269fec9106327db4ada313701ceae67d833e736 (diff)
downloadODR-SourceCompanion-830c43f4b462fb2f8d995dd0cdc8fd32282d023e.tar.gz
ODR-SourceCompanion-830c43f4b462fb2f8d995dd0cdc8fd32282d023e.tar.bz2
ODR-SourceCompanion-830c43f4b462fb2f8d995dd0cdc8fd32282d023e.zip
Do not block on missing PAD data
-rw-r--r--src/PadInterface.cpp4
-rw-r--r--src/odr-sourcecompanion.cpp5
2 files changed, 4 insertions, 5 deletions
diff --git a/src/PadInterface.cpp b/src/PadInterface.cpp
index 47b9bce..a8a129c 100644
--- a/src/PadInterface.cpp
+++ b/src/PadInterface.cpp
@@ -45,12 +45,12 @@ void PadInterface::open(const std::string& pad_ident)
int flags = fcntl(m_sock, F_GETFL);
if (flags == -1) {
std::string errstr(strerror(errno));
- throw std::runtime_error("TCP: Could not get socket flags: " + errstr);
+ throw std::runtime_error("PAD socket: Could not get socket flags: " + errstr);
}
if (fcntl(m_sock, F_SETFL, flags | O_NONBLOCK) == -1) {
std::string errstr(strerror(errno));
- throw std::runtime_error("TCP: Could not set O_NONBLOCK: " + errstr);
+ throw std::runtime_error("PAD socket: Could not set O_NONBLOCK: " + errstr);
}
struct sockaddr_un claddr;
diff --git a/src/odr-sourcecompanion.cpp b/src/odr-sourcecompanion.cpp
index df1d514..2aab20d 100644
--- a/src/odr-sourcecompanion.cpp
+++ b/src/odr-sourcecompanion.cpp
@@ -457,12 +457,11 @@ int main(int argc, char *argv[])
// Fill the PAD Frame queue because multiple PAD frame requests
// can come for each DAB+ Frames (up to 6),
if (padlen != 0) {
- bool no_data = false;
- while (!no_data and !avtinput.padQueueFull()) {
+ while (!avtinput.padQueueFull()) {
vector<uint8_t> pad_data = pad_intf.request(padlen);
if (pad_data.empty()) {
- /* no PAD available */
+ break;
}
else if (pad_data.size() == (size_t)padlen + 1) {
const size_t calculated_padlen = pad_data[padlen];