]> sjero.net Git - linphone/commitdiff
fix unauthicated notifies
authorSimon Morlat <simon.morlat@linphone.org>
Wed, 2 Feb 2011 15:14:16 +0000 (16:14 +0100)
committerSimon Morlat <simon.morlat@linphone.org>
Wed, 2 Feb 2011 15:14:16 +0000 (16:14 +0100)
coreapi/sal_eXosip2.c
coreapi/sal_eXosip2.h
coreapi/sal_eXosip2_presence.c
linphone-deps.filelist

index 6c10d4c8937167cbc2c54a5bdf6f735089715310..e2d5282778b5865e7ee1ad9c3dca550bef340cea 100644 (file)
@@ -841,6 +841,9 @@ static SalOp *find_op(Sal *sal, eXosip_event_t *ev){
        if (ev->sid>0){
                return sal_find_out_subscribe(sal,ev->sid);
        }
+       if (ev->nid>0){
+               return sal_find_in_subscribe(sal,ev->nid);
+       }
        if (ev->response) return sal_find_other(sal,ev->response);
        return NULL;
 }
@@ -1791,6 +1794,7 @@ static bool_t process_event(Sal *sal, eXosip_event_t *ev){
                        other_request_reply(sal,ev);
                        break;
                case EXOSIP_MESSAGE_REQUESTFAILURE:
+               case EXOSIP_NOTIFICATION_REQUESTFAILURE:
                        if (ev->response) {
                                switch (ev->response->status_code) {
                                        case 407:
index c60a8128100ccfd7d93af0d375b3dae23fea16c1..4db203362f589ee021ad3da7f76add64e0a8702d 100644 (file)
@@ -79,6 +79,7 @@ void sal_exosip_subscription_closed(Sal *sal,eXosip_event_t *ev);
 
 void sal_exosip_in_subscription_closed(Sal *sal, eXosip_event_t *ev);
 SalOp * sal_find_out_subscribe(Sal *sal, int sid);
+SalOp * sal_find_in_subscribe(Sal *sal, int nid);
 void sal_exosip_fix_route(SalOp *op);
 
 void _osip_list_set_empty(osip_list_t *l, void (*freefunc)(void*));
index 154c8d07eae3b3e4b0a8ab9369f760eeb5477f51..52b1485a9268e9942978a8eb5e56e80d0d87a1eb 100644 (file)
@@ -50,7 +50,7 @@ void sal_remove_out_subscribe(Sal *sal, SalOp *op){
        sal->out_subscribes=ms_list_remove(sal->out_subscribes,op);
 }
 
-static SalOp * sal_find_in_subscribe(Sal *sal, int nid){
+SalOp * sal_find_in_subscribe(Sal *sal, int nid){
        const MSList *elem;
        SalOp *op;
        for(elem=sal->in_subscribes;elem!=NULL;elem=elem->next){
@@ -569,6 +569,7 @@ int sal_notify_presence(SalOp *op, SalPresenceStatus status, const char *status_
        if (msg!=NULL){
                const char *identity=sal_op_get_contact(op);
                if (identity==NULL) identity=sal_op_get_to(op);
+               _osip_list_set_empty(&msg->contacts,(void (*)(void*))osip_contact_free);
                osip_message_set_contact(msg,identity);
                add_presence_body(msg,status);
                eXosip_insubscription_send_request(op->did,msg);
index 1cfc61b073c152de8c3f6bc3ff75d0bf245bc9a7..19ea6ecdee377bdb44bd3e2899819bd20eb3e856 100755 (executable)
@@ -1,10 +1,10 @@
 ./bin/avcodec-52.dll
 ./bin/avutil-50.dll
-./bin/libeXosip2-4.dll
+./bin/libeXosip2-6.dll
 ./bin/libogg.dll
 ./bin/libtheora.dll
 ./bin/libxml2-2.dll
-./bin/libosip2-4.dll
-./bin/libosipparser2-4.dll
+./bin/libosip2-6.dll
+./bin/libosipparser2-6.dll
 ./bin/swscale-0.dll