Validate conversationId
Validate conversationId in WebRTC and Call message listeners.
Add conversationId in message interfaces.
GitLab: #181
Change-Id: If92a4c484b65d3f06a6c42a1c1a4463425546a6b
diff --git a/client/src/contexts/CallProvider.tsx b/client/src/contexts/CallProvider.tsx
index 93ec5b5..e602508 100644
--- a/client/src/contexts/CallProvider.tsx
+++ b/client/src/contexts/CallProvider.tsx
@@ -228,6 +228,11 @@
if (callRole === 'caller' && callStatus === CallStatus.Ringing) {
const callAcceptListener = (data: CallAction) => {
console.info('Received event on CallAccept', data);
+ if (data.conversationId !== conversationId) {
+ console.warn('Wrong incoming conversationId, ignoring action');
+ return;
+ }
+
setCallStatus(CallStatus.Connecting);
webRtcConnection
@@ -246,7 +251,7 @@
webSocket.unbind(WebSocketMessageType.CallAccept, callAcceptListener);
};
}
- }, [callRole, webSocket, webRtcConnection, sendWebRtcOffer, callStatus]);
+ }, [callRole, webSocket, webRtcConnection, sendWebRtcOffer, callStatus, conversationId]);
const quitCall = useCallback(() => {
if (!webRtcConnection) {
@@ -271,6 +276,11 @@
const callEndListener = (data: CallAction) => {
console.info('Received event on CallEnd', data);
+ if (data.conversationId !== conversationId) {
+ console.warn('Wrong incoming conversationId, ignoring action');
+ return;
+ }
+
quitCall();
// TODO: write in chat that the call ended
};