From e481c2d7e0816557e5515ceb23b4378061777b36 Mon Sep 17 00:00:00 2001 From: Alex Zhukov Date: Sun, 16 Jul 2023 21:57:44 -0700 Subject: [PATCH 1/2] support ice-lite --- src/source/PeerConnection/PeerConnection.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/source/PeerConnection/PeerConnection.c b/src/source/PeerConnection/PeerConnection.c index 836f1157f4..b3b8c5420e 100644 --- a/src/source/PeerConnection/PeerConnection.c +++ b/src/source/PeerConnection/PeerConnection.c @@ -1027,6 +1027,7 @@ STATUS setRemoteDescription(PRtcPeerConnection pPeerConnection, PRtcSessionDescr ENTERS(); STATUS retStatus = STATUS_SUCCESS; PCHAR remoteIceUfrag = NULL, remoteIcePwd = NULL; + BOOL controlling = FALSE; UINT32 i, j; CHK(pPeerConnection != NULL, STATUS_NULL_ARG); @@ -1041,6 +1042,7 @@ STATUS setRemoteDescription(PRtcPeerConnection pPeerConnection, PRtcSessionDescr NULLABLE_SET_VALUE(pKvsPeerConnection->canTrickleIce, FALSE); CHK_STATUS(deserializeSessionDescription(pSessionDescription, pSessionDescriptionInit->sdp)); + controlling = pKvsPeerConnection->isOffer; for (i = 0; i < pSessionDescription->sessionAttributesCount; i++) { if (STRCMP(pSessionDescription->sdpAttributes[i].attributeName, "fingerprint") == 0) { @@ -1051,6 +1053,9 @@ STATUS setRemoteDescription(PRtcPeerConnection pPeerConnection, PRtcSessionDescr } else if (STRCMP(pSessionDescription->sdpAttributes[i].attributeName, "ice-options") == 0 && STRSTR(pSessionDescription->sdpAttributes[i].attributeValue, "trickle") != NULL) { NULLABLE_SET_VALUE(pKvsPeerConnection->canTrickleIce, TRUE); + } else if (STRCMP(pSessionDescription->sdpAttributes[i].attributeName, "ice-lite") == 0) { + //if remote description says "ice-lite" we are always the ice controlling side + controlling = TRUE; } } @@ -1103,7 +1108,7 @@ STATUS setRemoteDescription(PRtcPeerConnection pPeerConnection, PRtcSessionDescr STRNCPY(pKvsPeerConnection->remoteIcePwd, remoteIcePwd, MAX_ICE_PWD_LEN); CHK_STATUS(iceAgentStartAgent(pKvsPeerConnection->pIceAgent, pKvsPeerConnection->remoteIceUfrag, pKvsPeerConnection->remoteIcePwd, - pKvsPeerConnection->isOffer)); + controlling)); if (!pKvsPeerConnection->isOffer) { CHK_STATUS(setPayloadTypesFromOffer(pKvsPeerConnection->pCodecTable, pKvsPeerConnection->pRtxTable, pSessionDescription)); From 5dc1cec7abcd7f7a26d2a4bf3cb5b738014b7663 Mon Sep 17 00:00:00 2001 From: Alex Zhukov Date: Mon, 17 Jul 2023 15:46:25 -0700 Subject: [PATCH 2/2] clang format --- src/source/PeerConnection/PeerConnection.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/source/PeerConnection/PeerConnection.c b/src/source/PeerConnection/PeerConnection.c index b3b8c5420e..e3bee6455e 100644 --- a/src/source/PeerConnection/PeerConnection.c +++ b/src/source/PeerConnection/PeerConnection.c @@ -1054,7 +1054,7 @@ STATUS setRemoteDescription(PRtcPeerConnection pPeerConnection, PRtcSessionDescr STRSTR(pSessionDescription->sdpAttributes[i].attributeValue, "trickle") != NULL) { NULLABLE_SET_VALUE(pKvsPeerConnection->canTrickleIce, TRUE); } else if (STRCMP(pSessionDescription->sdpAttributes[i].attributeName, "ice-lite") == 0) { - //if remote description says "ice-lite" we are always the ice controlling side + // if remote description says "ice-lite" we are always the ice controlling side controlling = TRUE; } } @@ -1107,8 +1107,7 @@ STATUS setRemoteDescription(PRtcPeerConnection pPeerConnection, PRtcSessionDescr STRNCPY(pKvsPeerConnection->remoteIceUfrag, remoteIceUfrag, MAX_ICE_UFRAG_LEN); STRNCPY(pKvsPeerConnection->remoteIcePwd, remoteIcePwd, MAX_ICE_PWD_LEN); - CHK_STATUS(iceAgentStartAgent(pKvsPeerConnection->pIceAgent, pKvsPeerConnection->remoteIceUfrag, pKvsPeerConnection->remoteIcePwd, - controlling)); + CHK_STATUS(iceAgentStartAgent(pKvsPeerConnection->pIceAgent, pKvsPeerConnection->remoteIceUfrag, pKvsPeerConnection->remoteIcePwd, controlling)); if (!pKvsPeerConnection->isOffer) { CHK_STATUS(setPayloadTypesFromOffer(pKvsPeerConnection->pCodecTable, pKvsPeerConnection->pRtxTable, pSessionDescription));