multimediacommsengine/mmcesrv/mmcemediamanager/src/mcesecuredesstream.cpp
branchRCL_3
changeset 18 91f50911ea81
parent 3 513a8b745b2f
child 25 fb1bbf85a302
--- a/multimediacommsengine/mmcesrv/mmcemediamanager/src/mcesecuredesstream.cpp	Tue May 11 16:34:40 2010 +0300
+++ b/multimediacommsengine/mmcesrv/mmcemediamanager/src/mcesecuredesstream.cpp	Tue May 25 13:07:26 2010 +0300
@@ -83,12 +83,11 @@
 											CMccSecureInterface& aSecureInterface,
         									CMceComMediaStream& aMediaStream
         									):
-	
+	iWaitingBinding(EFalse),
 	iSecureSession(aSecureSession),
 	iSecInf(aSecureInterface),
 	iMediaStream(aMediaStream),
 	iIsSAVP(ETrue),
-	iWaitingBinding(EFalse),
 	iCryptoContextOutId(0),
 	iCryptoContextInId(0),
 	iOldLocalMediaPort(0)
@@ -489,10 +488,6 @@
     iGnoreSdpMsg = (iCryptoIn.iIfCryptoContextIdSet && 
     				iCryptoOut.iIfCryptoContextIdSet ) &&
     				!iGnoreSdpMsg ? EFalse : ETrue;		
-    if ( iWaitingBinding )
-    	{
-    	iSecureSession.BindStreamCrypto();
-    	}
     	
     MCEMM_DEBUG("SetCryptoContext(), Exit")
     }
@@ -858,6 +853,10 @@
       	if ( iSecureSession.iLSReadyToBind )
       		{
       		SetCryptoContextL();
+            if ( iWaitingBinding )
+               {
+               iSecureSession.BindStreamCrypto();
+               }
       		}
         MSG_IGNORE_RETURN()
         }
@@ -1490,8 +1489,10 @@
 			 cryptoOut.iAuthAlgms == aCrypto.iAuthAlgms &&
 			 cryptoOut.iCryptoSuite.Compare(aCrypto.iCryptoSuite) == 0)
 			{
-			//SEtCrypto
-			iCryptoOut.Copy( cryptoOut );
+            if(!iCryptoOut.iIfCryptoContextIdSet)
+                {  //SEtCrypto
+                iCryptoOut.Copy( cryptoOut );
+                }
 			iCryptoIn.iTag = cryptoOut.iTag;
 			iCryptoIn.iEncAlgms = cryptoOut.iEncAlgms;
 			iCryptoIn.iAuthAlgms = cryptoOut.iAuthAlgms;
@@ -1683,7 +1684,8 @@
 		{
 		iCryptoOuts->AppendL( aCopyFrom.iCryptoOuts->At( i ) );
 		}
-		iOldLocalMediaPort = aCopyFrom.iOldLocalMediaPort;
+    iOldLocalMediaPort = aCopyFrom.iOldLocalMediaPort;
+    iWaitingBinding = aCopyFrom.iWaitingBinding;
  	MCEMM_DEBUG( "CMceSecureDesStream::CopyStreamCryptoL Exit" )
 	}