]> sjero.net Git - linphone/commitdiff
fix bug with sdp_answer not reset as it should.
authorSimon Morlat <simon.morlat@linphone.org>
Fri, 28 May 2010 12:44:21 +0000 (14:44 +0200)
committerSimon Morlat <simon.morlat@linphone.org>
Fri, 28 May 2010 12:44:21 +0000 (14:44 +0200)
coreapi/sal_eXosip2.c

index 32bd677a62e90c372984a91b84bd10997aa9f13c..869d1934dc9f22be047ad61a250e2532521680c4 100644 (file)
@@ -523,8 +523,11 @@ int sal_call_accept(SalOp * h){
                if (h->sdp_offering) {
                        set_sdp_from_desc(msg,h->base.local_media);
                }else{
-                       if (h->sdp_answer)
+                       if (h->sdp_answer){
                                set_sdp(msg,h->sdp_answer);
+                               sdp_message_free(h->sdp_answer);
+                               h->sdp_answer=NULL;
+                       }
                }
        }else{
                ms_error("You are accepting a call but not defined any media capabilities !");
@@ -773,7 +776,11 @@ static void handle_reinvite(Sal *sal,  eXosip_event_t *ev){
                sdp_to_media_description(sdp,op->base.remote_media);
                sdp_message_free(sdp);
                sdp_process(op);
-               set_sdp(msg,op->sdp_answer);
+               if (op->sdp_answer!=NULL){
+                       set_sdp(msg,op->sdp_answer);
+                       sdp_message_free(op->sdp_answer);
+                       op->sdp_answer=NULL;
+               }
        }else {
                op->sdp_offering=TRUE;
                set_sdp_from_desc(msg,op->base.local_media);
@@ -885,8 +892,11 @@ static void call_accepted(Sal *sal, eXosip_event_t *ev){
                _osip_list_set_empty(&msg->contacts,(void (*)(void*))osip_contact_free);
                osip_message_set_contact(msg,contact);
        }
-       if (op->sdp_answer)
-                       set_sdp(msg,op->sdp_answer);
+       if (op->sdp_answer){
+               set_sdp(msg,op->sdp_answer);
+               sdp_message_free(op->sdp_answer);
+               op->sdp_answer=NULL;
+       }
        eXosip_call_send_ack(ev->did,msg);
        sal->callbacks.call_accepted(op);
 }