From 75a43e5f2e6c9ad7082a80d9b08b184c96a45808 Mon Sep 17 00:00:00 2001 From: Stephane Letz Date: Sun, 9 Mar 2014 20:32:45 +0100 Subject: [PATCH] Improve error reporting in NetJack2. --- common/JackNetAPI.cpp | 4 ++-- common/JackNetInterface.cpp | 8 ++------ common/JackNetTool.cpp | 12 +++++++++++- posix/JackNetUnixSocket.cpp | 33 +++++++++++++++++++++++++++------ 4 files changed, 42 insertions(+), 15 deletions(-) diff --git a/common/JackNetAPI.cpp b/common/JackNetAPI.cpp index ec746cda..3ab5e5bd 100644 --- a/common/JackNetAPI.cpp +++ b/common/JackNetAPI.cpp @@ -422,7 +422,7 @@ struct JackNetExtMaster : public JackNetMasterInterface { return res2; } catch (JackNetException& e) { - jack_error("Lost connection"); + jack_error(e.what()); return -1; } } @@ -458,7 +458,7 @@ struct JackNetExtMaster : public JackNetMasterInterface { return 0; } catch (JackNetException& e) { - jack_error("Lost connection"); + jack_error(e.what()); return -1; } } diff --git a/common/JackNetInterface.cpp b/common/JackNetInterface.cpp index 2088fc5d..2aa66a4d 100644 --- a/common/JackNetInterface.cpp +++ b/common/JackNetInterface.cpp @@ -431,7 +431,6 @@ namespace Jack int rx_bytes; if (((rx_bytes = fSocket.Recv(fRxBuffer, size, flags)) == SOCKET_ERROR) && fRunning) { - fSocket.PrintError(); FatalRecvError(); } @@ -823,14 +822,12 @@ namespace Jack void JackNetSlaveInterface::FatalRecvError() { - jack_error("Recv connection lost error = %s", StrError(NET_ERROR_CODE)); - throw JackNetException(); + throw JackNetException("Recv connection lost error"); } void JackNetSlaveInterface::FatalSendError() { - jack_error("Send connection lost error = %s", StrError(NET_ERROR_CODE)); - throw JackNetException(); + throw JackNetException("Send connection lost error"); } int JackNetSlaveInterface::Recv(size_t size, int flags) @@ -839,7 +836,6 @@ namespace Jack // handle errors if (rx_bytes == SOCKET_ERROR) { - fSocket.PrintError(); FatalRecvError(); } diff --git a/common/JackNetTool.cpp b/common/JackNetTool.cpp index 43034ff6..50bfe8e2 100644 --- a/common/JackNetTool.cpp +++ b/common/JackNetTool.cpp @@ -498,6 +498,7 @@ namespace Jack for (int i = 0; i < fNPorts; i++) { fCeltMode[i] = celt_mode_create(params->fSampleRate, params->fPeriodSize, &error); if (error != CELT_OK) { + jack_log("NetCeltAudioBuffer celt_mode_create err = %d", error); goto error; } @@ -505,12 +506,14 @@ namespace Jack fCeltEncoder[i] = celt_encoder_create_custom(fCeltMode[i], 1, &error); if (error != CELT_OK) { + jack_log("NetCeltAudioBuffer celt_encoder_create_custom err = %d", error); goto error; } celt_encoder_ctl(fCeltEncoder[i], CELT_SET_COMPLEXITY(1)); fCeltDecoder[i] = celt_decoder_create_custom(fCeltMode[i], 1, &error); if (error != CELT_OK) { + jack_log("NetCeltAudioBuffer celt_decoder_create_custom err = %d", error); goto error; } celt_decoder_ctl(fCeltDecoder[i], CELT_SET_COMPLEXITY(1)); @@ -519,12 +522,14 @@ namespace Jack fCeltEncoder[i] = celt_encoder_create(fCeltMode[i], 1, &error); if (error != CELT_OK) { + jack_log("NetCeltAudioBuffer celt_mode_create err = %d", error); goto error; } celt_encoder_ctl(fCeltEncoder[i], CELT_SET_COMPLEXITY(1)); fCeltDecoder[i] = celt_decoder_create(fCeltMode[i], 1, &error); if (error != CELT_OK) { + jack_log("NetCeltAudioBuffer celt_decoder_create err = %d", error); goto error; } celt_decoder_ctl(fCeltDecoder[i], CELT_SET_COMPLEXITY(1)); @@ -533,12 +538,14 @@ namespace Jack fCeltEncoder[i] = celt_encoder_create(fCeltMode[i]); if (error != CELT_OK) { + jack_log("NetCeltAudioBuffer celt_encoder_create err = %d", error); goto error; } celt_encoder_ctl(fCeltEncoder[i], CELT_SET_COMPLEXITY(1)); fCeltDecoder[i] = celt_decoder_create(fCeltMode[i]); if (error != CELT_OK) { + jack_log("NetCeltAudioBuffer celt_decoder_create err = %d", error); goto error; } celt_decoder_ctl(fCeltDecoder[i], CELT_SET_COMPLEXITY(1)); @@ -740,16 +747,19 @@ namespace Jack /* Allocate en/decoders */ fOpusMode[i] = opus_custom_mode_create(params->fSampleRate, params->fPeriodSize, &error); if (error != OPUS_OK) { + jack_log("NetOpusAudioBuffer opus_custom_mode_create err = %d", error); goto error; } fOpusEncoder[i] = opus_custom_encoder_create(fOpusMode[i], 1, &error); if (error != OPUS_OK) { + jack_log("NetOpusAudioBuffer opus_custom_encoder_create err = %d", error); goto error; } fOpusDecoder[i] = opus_custom_decoder_create(fOpusMode[i], 1, &error); if (error != OPUS_OK) { + jack_log("NetOpusAudioBuffer opus_custom_decoder_create err = %d", error); goto error; } @@ -1024,7 +1034,7 @@ namespace Jack } NextCycle(); - } + } //network<->buffer int NetIntAudioBuffer::RenderFromNetwork(int cycle, int sub_cycle, uint32_t port_num) diff --git a/posix/JackNetUnixSocket.cpp b/posix/JackNetUnixSocket.cpp index 267cf456..f8917a53 100644 --- a/posix/JackNetUnixSocket.cpp +++ b/posix/JackNetUnixSocket.cpp @@ -371,14 +371,19 @@ namespace Jack return -1; } #endif - return sendto(fSockfd, buffer, nbytes, flags, reinterpret_cast(&fSendAddr), sizeof(socket_address_t)); + int res; + if ((res = sendto(fSockfd, buffer, nbytes, flags, reinterpret_cast(&fSendAddr), sizeof(socket_address_t))) < 0) { + jack_error("SendTo fd = %ld err = %s", fSockfd, strerror(errno)); + } + return res; } int JackNetUnixSocket::SendTo(const void* buffer, size_t nbytes, int flags, const char* ip) { int addr_conv = inet_aton(ip, &fSendAddr.sin_addr); - if (addr_conv < 1) + if (addr_conv < 1) { return addr_conv; + } #if defined(__sun__) || defined(sun) if (WaitWrite() < 0) { return -1; @@ -394,7 +399,11 @@ namespace Jack return -1; } #endif - return send(fSockfd, buffer, nbytes, flags); + int res; + if ((res = send(fSockfd, buffer, nbytes, flags)) < 0) { + jack_error("Send fd = %ld err = %s", fSockfd, strerror(errno)); + } + return res; } int JackNetUnixSocket::RecvFrom(void* buffer, size_t nbytes, int flags) @@ -405,7 +414,11 @@ namespace Jack return -1; } #endif - return recvfrom(fSockfd, buffer, nbytes, flags, reinterpret_cast(&fRecvAddr), &addr_len); + int res; + if ((res = recvfrom(fSockfd, buffer, nbytes, flags, reinterpret_cast(&fRecvAddr), &addr_len)) < 0) { + jack_error("RecvFrom fd = %ld err = %s", fSockfd, strerror(errno)); + } + return res; } int JackNetUnixSocket::Recv(void* buffer, size_t nbytes, int flags) @@ -415,7 +428,11 @@ namespace Jack return -1; } #endif - return recv(fSockfd, buffer, nbytes, flags); + int res; + if ((res = recv(fSockfd, buffer, nbytes, flags)) < 0) { + jack_error("Recv fd = %ld err = %s", fSockfd, strerror(errno)); + } + return res; } int JackNetUnixSocket::CatchHost(void* buffer, size_t nbytes, int flags) @@ -426,7 +443,11 @@ namespace Jack return -1; } #endif - return recvfrom(fSockfd, buffer, nbytes, flags, reinterpret_cast(&fSendAddr), &addr_len); + int res; + if ((res = recvfrom(fSockfd, buffer, nbytes, flags, reinterpret_cast(&fSendAddr), &addr_len)) < 0) { + jack_error("CatchHost fd = %ld err = %s", fSockfd, strerror(errno)); + } + return res; } net_error_t JackNetUnixSocket::GetError()