r3582 - in trunk/libminisip: include/libminisip/media source/subsystem_media

erik at minisip.org erik at minisip.org
Wed May 28 14:18:25 CEST 2008


Author: erik
Date: 2008-05-28 14:18:24 +0200 (Wed, 28 May 2008)
New Revision: 3582

Modified:
   trunk/libminisip/include/libminisip/media/MediaStream.h
   trunk/libminisip/source/subsystem_media/MediaStream.cxx
   trunk/libminisip/source/subsystem_media/Session.cxx
Log:

 * When the media stream was not signaled in the MIKEY, we now use the
   default policy to create a new crypto context. I am not really sure
   if this is how we should behave, but that's why we have signal a
   default policy - right?



Modified: trunk/libminisip/include/libminisip/media/MediaStream.h
===================================================================
--- trunk/libminisip/include/libminisip/media/MediaStream.h	2008-05-22 13:09:08 UTC (rev 3581)
+++ trunk/libminisip/include/libminisip/media/MediaStream.h	2008-05-28 12:18:24 UTC (rev 3582)
@@ -210,6 +210,12 @@
 		void setKeyAgreementZrtp(MRef<CryptoContext *>cx);
 #endif
 
+		void flushCryptoContexts(){
+			kaLock.lock();
+			cryptoContexts.clear();
+			kaLock.unlock();
+		}
+
 	protected:
 		MRef<CryptoContext *> getCryptoContext( uint32_t ssrc, uint16_t seq_no );
 		RealtimeMediaStream( std::string callId, MRef<RealtimeMedia *> );
@@ -336,6 +342,7 @@
 		 */
 		virtual void handleRtpPacketExt(MRef<SRtpPacket *> packet);
 #endif
+
 	protected:
 		std::list<MRef<Codec *> > codecList;
 		MRef<RtpReceiver *> rtpReceiver;

Modified: trunk/libminisip/source/subsystem_media/MediaStream.cxx
===================================================================
--- trunk/libminisip/source/subsystem_media/MediaStream.cxx	2008-05-22 13:09:08 UTC (rev 3581)
+++ trunk/libminisip/source/subsystem_media/MediaStream.cxx	2008-05-28 12:18:24 UTC (rev 3582)
@@ -221,15 +221,16 @@
 #endif
 #endif
 
-		if( csId != 0 ){
+//		if( csId != 0 ){
 			cryptoContext = new CryptoContext( ssrc, roc, seq_no, keydr,
 			ealg, aalg, masterKey, 16, masterSalt, 14, ekeyl, akeyl, skeyl, encr, auth, autht );
 
 			cryptoContext->derive_srtp_keys( 0 );
-		}
-		else{
-			cryptoContext = new CryptoContext( ssrc );
-		}
+//		}
+//		else{
+//			cerr << "EEEE: WARNING - csId is NULL"<<endl;
+//			cryptoContext = new CryptoContext( ssrc );
+//		}
 	}
 
 	cryptoContexts.push_back( cryptoContext );

Modified: trunk/libminisip/source/subsystem_media/Session.cxx
===================================================================
--- trunk/libminisip/source/subsystem_media/Session.cxx	2008-05-22 13:09:08 UTC (rev 3581)
+++ trunk/libminisip/source/subsystem_media/Session.cxx	2008-05-28 12:18:24 UTC (rev 3582)
@@ -956,8 +956,10 @@
 		if( ! (*iR)->disabled ){
 			if( ka ){
 				(*iR)->setKeyAgreement( ka );
+				(*iR)->flushCryptoContexts();
 			}
 			(*iR)->start();
+		}else{
 		}
 	}
 	



More information about the Minisip-devel mailing list