Improve error reporting in NetJack2.

This commit is contained in:
Stephane Letz 2014-03-09 20:32:45 +01:00
parent 905f6d7a60
commit 75a43e5f2e
4 changed files with 42 additions and 15 deletions

View File

@ -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;
}
}

View File

@ -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();
}

View File

@ -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)

View File

@ -371,14 +371,19 @@ namespace Jack
return -1;
}
#endif
return sendto(fSockfd, buffer, nbytes, flags, reinterpret_cast<socket_address_t*>(&fSendAddr), sizeof(socket_address_t));
int res;
if ((res = sendto(fSockfd, buffer, nbytes, flags, reinterpret_cast<socket_address_t*>(&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<socket_address_t*>(&fRecvAddr), &addr_len);
int res;
if ((res = recvfrom(fSockfd, buffer, nbytes, flags, reinterpret_cast<socket_address_t*>(&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<socket_address_t*>(&fSendAddr), &addr_len);
int res;
if ((res = recvfrom(fSockfd, buffer, nbytes, flags, reinterpret_cast<socket_address_t*>(&fSendAddr), &addr_len)) < 0) {
jack_error("CatchHost fd = %ld err = %s", fSockfd, strerror(errno));
}
return res;
}
net_error_t JackNetUnixSocket::GetError()