Ensure termination error code is propagated properly

This commit is contained in:
Cameron Gutman 2019-02-09 21:30:16 -08:00
parent ad5dd9c940
commit aa9610847e
5 changed files with 11 additions and 10 deletions

View File

@ -105,7 +105,7 @@ static void UdpPingThreadProc(void* context) {
err = sendto(rtpSocket, pingData, sizeof(pingData), 0, (struct sockaddr*)&saddr, RemoteAddrLen);
if (err != sizeof(pingData)) {
Limelog("Audio Ping: sendto() failed: %d\n", (int)LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketFail());
return;
}
@ -178,7 +178,7 @@ static void ReceiveThreadProc(void* context) {
packet->size = recvUdpSocket(rtpSocket, &packet->data[0], MAX_PACKET_SIZE, useSelect);
if (packet->size < 0) {
Limelog("Audio Receive: recvUdpSocket() failed: %d\n", (int)LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketFail());
break;
}
else if (packet->size == 0) {

View File

@ -148,6 +148,7 @@ static void ClInternalConnectionTerminated(long errorCode)
return;
}
terminationCallbackErrorCode = errorCode;
alreadyTerminated = 1;
// Invoke the termination callback on a separate thread

View File

@ -486,7 +486,7 @@ static void lossStatsThreadFunc(void* context) {
payloadLengths[IDX_LOSS_STATS], lossStatsPayload)) {
free(lossStatsPayload);
Limelog("Loss Stats: Transaction failed: %d\n", (int)LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketFail());
return;
}
@ -520,7 +520,7 @@ static void requestIdrFrame(void) {
if (!sendMessageAndDiscardReply(packetTypes[IDX_INVALIDATE_REF_FRAMES],
payloadLengths[IDX_INVALIDATE_REF_FRAMES], payload)) {
Limelog("Request IDR Frame: Transaction failed: %d\n", (int)LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketFail());
return;
}
}
@ -529,7 +529,7 @@ static void requestIdrFrame(void) {
if (!sendMessageAndDiscardReply(packetTypes[IDX_REQUEST_IDR_FRAME],
payloadLengths[IDX_REQUEST_IDR_FRAME], preconstructedPayloads[IDX_REQUEST_IDR_FRAME])) {
Limelog("Request IDR Frame: Transaction failed: %d\n", (int)LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketFail());
return;
}
}
@ -564,7 +564,7 @@ static void requestInvalidateReferenceFrames(void) {
if (!sendMessageAndDiscardReply(packetTypes[IDX_INVALIDATE_REF_FRAMES],
payloadLengths[IDX_INVALIDATE_REF_FRAMES], payload)) {
Limelog("Request Invaldiate Reference Frames: Transaction failed: %d\n", (int)LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketFail());
return;
}

View File

@ -318,7 +318,7 @@ static void inputSendThreadProc(void* context) {
(int) (encryptedSize + sizeof(encryptedLengthPrefix)), 0);
if (err <= 0) {
Limelog("Input: send() failed: %d\n", (int) LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketFail());
return;
}
}
@ -337,7 +337,7 @@ static void inputSendThreadProc(void* context) {
(int) (encryptedSize + sizeof(encryptedLengthPrefix)));
if (err < 0) {
Limelog("Input: sendInputPacketOnControlStream() failed: %d\n", (int) err);
ListenerCallbacks.connectionTerminated(LastSocketError());
ListenerCallbacks.connectionTerminated(err);
return;
}
}

View File

@ -51,7 +51,7 @@ static void UdpPingThreadProc(void* context) {
err = sendto(rtpSocket, pingData, sizeof(pingData), 0, (struct sockaddr*)&saddr, RemoteAddrLen);
if (err != sizeof(pingData)) {
Limelog("Video Ping: send() failed: %d\n", (int)LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketFail());
return;
}
@ -96,7 +96,7 @@ static void ReceiveThreadProc(void* context) {
err = recvUdpSocket(rtpSocket, buffer, receiveSize, useSelect);
if (err < 0) {
Limelog("Video Receive: recvUdpSocket() failed: %d\n", (int)LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketError());
ListenerCallbacks.connectionTerminated(LastSocketFail());
break;
}
else if (err == 0) {