]> sjero.net Git - linphone/commitdiff
fix usage of non default srtp key
authorJehan Monnier <jehan.monnier@linphone.org>
Thu, 15 Dec 2011 09:04:11 +0000 (10:04 +0100)
committerJehan Monnier <jehan.monnier@linphone.org>
Thu, 15 Dec 2011 09:04:11 +0000 (10:04 +0100)
.cproject
coreapi/linphonecall.c
coreapi/offeranswer.c
oRTP

index 52dd163940db5c0ff7319167c625e77f704b9945..0b797781c283b64c0be17772b585dc098eb8a968 100644 (file)
--- a/.cproject
+++ b/.cproject
                                                <useDefaultCommand>true</useDefaultCommand>
                                                <runAllBuilders>true</runAllBuilders>
                                        </target>
+                                       <target name="doc" path="mediastreamer2/help" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
+                                               <buildCommand>make</buildCommand>
+                                               <buildArguments/>
+                                               <buildTarget>all</buildTarget>
+                                               <stopOnError>true</stopOnError>
+                                               <useDefaultCommand>true</useDefaultCommand>
+                                               <runAllBuilders>true</runAllBuilders>
+                                       </target>
                                </buildTargets>
                        </storageModule>
                </cconfiguration>
index 45932f360532363da3a774a55917599812661fb5..c53d534f3784944bd9c3005831cc8ff1f422a161 100644 (file)
@@ -1039,7 +1039,15 @@ static bool_t linphone_call_sound_resources_available(LinphoneCall *call){
        return !linphone_core_is_in_conference(lc) && 
                (current==NULL || current==call);
 }
-
+static int find_crypto_index_from_tag(SalSrtpCryptoAlgo crypto[],unsigned char tag) {
+       int i;
+       for(i=0; i<SAL_CRYPTO_ALGO_MAX; i++) {
+               if (crypto[i].tag == tag) {
+                       return i;
+               }
+       }
+       return -1;
+}
 static void linphone_call_start_audio_stream(LinphoneCall *call, const char *cname, bool_t muted, bool_t send_ringbacktone, bool_t use_arc){
        LinphoneCore *lc=call->core;
        int jitt_comp=lc->rtp_conf.audio_jitt_comp;
@@ -1130,11 +1138,10 @@ static void linphone_call_start_audio_stream(LinphoneCall *call, const char *cna
                        if (stream->proto == SalProtoRtpSavp) {
                                const SalStreamDescription *local_st_desc=sal_media_description_find_stream(call->localdesc,
                                                SalProtoRtpSavp,SalAudio);
-                                               
                                audio_stream_enable_strp(
                                        call->audiostream, 
                                        stream->crypto[0].algo,
-                                       local_st_desc->crypto[0].master_key,
+                                       local_st_desc->crypto[find_crypto_index_from_tag(local_st_desc->crypto,stream->crypto[0].tag)].master_key,
                                        stream->crypto[0].master_key);
                                call->audiostream_encrypted=TRUE;
                        }else call->audiostream_encrypted=FALSE;
index ae0fda94ad74cf60b63f790bbc8ed53787d32dbf..4010e20b7e53dfb008a04012c23e916929bc49d2 100644 (file)
@@ -142,8 +142,8 @@ static bool_t match_crypto_algo(const SalSrtpCryptoAlgo* local, const SalSrtpCry
                                        strncpy(result->master_key, local[j].master_key, 41);
                                        result->tag = local[j].tag;
                                } else {
-                                       strncpy(result->master_key, remote[j].master_key, 41);
-                                       result->tag = remote[j].tag;
+                                       strncpy(result->master_key, remote[i].master_key, 41);
+                                       result->tag = remote[i].tag;
                                }
                                result->master_key[40] = '\0';
                                return TRUE;
diff --git a/oRTP b/oRTP
index 070d30dd75940b8c2e5898246437e213a47e834c..758150c3cd0f5a3a7a087247d6ff2dd198435fe7 160000 (submodule)
--- a/oRTP
+++ b/oRTP
@@ -1 +1 @@
-Subproject commit 070d30dd75940b8c2e5898246437e213a47e834c
+Subproject commit 758150c3cd0f5a3a7a087247d6ff2dd198435fe7