Exceptions when using ICE functionalities

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!

With the help from PJSIP list useres, I think I am close to having my 
program to use PJSIP's ICE functionalities 100% correctly.
However, I still have some exceptions, which I enumerate in this mail:

*1)-------------------------------------------------*
//FILE = ice_session.c
//METHOD = on_stun_request_complete
//EXCEPTION = pj_assert(tdata == check->tdata) fails
stack trace:
    PCCommunicator.exe!on_stun_request_complete(pj_stun_session * 
stun_sess=0x057a2c9c, int status=0, void * token=0x057a76d8, 
pj_stun_tx_data * tdata=0x057a75fc, const pj_stun_msg * 
response=0x057a34fc, const void * src_addr=0x0579b9d8, unsigned int 
src_addr_len=16)  Line 1766 + 0x24 bytes    C
     PCCommunicator.exe!stun_tsx_on_complete(pj_stun_client_tsx * 
tsx=0x057a7704, int status=0, const pj_stun_msg * response=0x057a34fc, 
const void * src_addr=0x0579b9d8, unsigned int src_addr_len=16)  Line 
413 + 0x29 bytes    C
     PCCommunicator.exe!pj_stun_client_tsx_on_rx_msg(pj_stun_client_tsx 
* tsx=0x057a7704, const pj_stun_msg * msg=0x057a34fc, const void * 
src_addr=0x0579b9d8, unsigned int src_addr_len=16)  Line 395 + 0x1e 
bytes    C
     PCCommunicator.exe!on_incoming_response(pj_stun_session * 
sess=0x057a2c9c, unsigned int options=1, const unsigned char * 
pkt=0x0579bf6c, unsigned int pkt_len=88, pj_stun_msg * msg=0x057a34fc, 
const void * src_addr=0x0579b9d8, unsigned int src_addr_len=16)  Line 
1165 + 0x18 bytes    C
     PCCommunicator.exe!pj_stun_session_on_rx_pkt(pj_stun_session * 
sess=0x057a2c9c, const void * packet=0x0579bf6c, unsigned int 
pkt_size=88, unsigned int options=1, void * token=0x057a1cec, unsigned 
int * parsed_len=0x00000000, const void * src_addr=0x0579b9d8, unsigned 
int src_addr_len=16)  Line 1366 + 0x21 bytes    C
     PCCommunicator.exe!pj_ice_sess_on_rx_pkt(pj_ice_sess * 
ice=0x057a0e1c, unsigned int comp_id=1, unsigned int transport_id=1, 
void * pkt=0x0579bf6c, unsigned int pkt_size=88, const void * 
src_addr=0x0579b9d8, int src_addr_len=16)  Line 2470 + 0x24 bytes    C
     PCCommunicator.exe!stun_on_rx_data(pj_stun_sock * 
stun_sock=0x0579b704, void * pkt=0x0579bf6c, unsigned int pkt_len=88, 
const void * src_addr=0x0579b9d8, unsigned int addr_len=16)  Line 1195 + 
0x2a bytes    C
     PCCommunicator.exe!on_data_recvfrom(pj_activesock_t * 
asock=0x0579b614, void * data=0x0579bf6c, unsigned int size=88, const 
void * src_addr=0x0579b9d8, int addr_len=16, int status=0)  Line 790 + 
0x1e bytes    C
     PCCommunicator.exe!ioqueue_on_read_complete(pj_ioqueue_key_t * 
key=0x0562b494, pj_ioqueue_op_key_t * op_key=0x0579b944, long 
bytes_read=88)  Line 360 + 0x38 bytes    C
     PCCommunicator.exe!ioqueue_dispatch_read_event(pj_ioqueue_t * 
ioqueue=0x0562ade8, pj_ioqueue_key_t * h=0x0562b494)  Line 550 + 0x16 
bytes    C
     PCCommunicator.exe!pj_ioqueue_poll(pj_ioqueue_t * 
ioqueue=0x0562ade8, const pj_time_val * timeout=0x05c4fcac)  Line 763 + 
0x17 bytes    C
     PCCommunicator.exe!pjsip_endpt_handle_events2(pjsip_endpoint * 
endpt=0x05622eec, const pj_time_val * max_timeout=0x05c4fe7c, unsigned 
int * p_count=0x00000000)  Line 718 + 0x10 bytes    C
     PCCommunicator.exe!pjsip_endpt_handle_events(pjsip_endpoint * 
endpt=0x05622eec, const pj_time_val * max_timeout=0x05c4fe7c)  Line 745 
+ 0xf bytes    C
     PCCommunicator.exe!EventHandler(void * __formal=0x00000000)  Line 
547 + 0x16 bytes    C++
     PCCommunicator.exe!thread_main(void * param=0x05621bbc)  Line 413 + 
0x11 bytes    C

I can trace back as far as pj_stun_session_on_rx_pkt, and still see that 
the things involved in failing assert already have different values at 
that time.

*2)-------------------------------------------------*
//FILE = ice_strans.c
//METHOD = sess_init_update
//EXCEPTION = comp is NULL (0x00000000)
    PCCommunicator.exe!sess_init_update(pj_ice_strans * 
ice_st=0x18a21c5c)  Line 547 + 0x18 bytes    C
     PCCommunicator.exe!stun_on_status(pj_stun_sock * 
stun_sock=0x1c3fbe0c, pj_stun_sock_op op=PJ_STUN_SOCK_BINDING_OP, int 
status=0)  Line 1276 + 0x9 bytes    C
     PCCommunicator.exe!sess_on_request_complete(pj_stun_session * 
sess=0x1c41583c, int status=0, void * token=0x00000001, pj_stun_tx_data 
* tdata=0x1c419c5c, const pj_stun_msg * response=0x1c417c5c, const void 
* src_addr=0x1c40de9c, unsigned int src_addr_len=16)  Line 706 + 0x14 
bytes    C
     PCCommunicator.exe!stun_tsx_on_complete(pj_stun_client_tsx * 
tsx=0x18bc8f44, int status=0, const pj_stun_msg * response=0x1c417c5c, 
const void * src_addr=0x1c40de9c, unsigned int src_addr_len=16)  Line 
420 + 0x29 bytes    C
     PCCommunicator.exe!pj_stun_client_tsx_on_rx_msg(pj_stun_client_tsx 
* tsx=0x18bc8f44, const pj_stun_msg * msg=0x1c417c5c, const void * 
src_addr=0x1c40de9c, unsigned int src_addr_len=16)  Line 395 + 0x1e 
bytes    C
     PCCommunicator.exe!on_incoming_response(pj_stun_session * 
sess=0x1c41583c, unsigned int options=5, const unsigned char * 
pkt=0x1c41180c, unsigned int pkt_len=88, pj_stun_msg * msg=0x1c417c5c, 
const void * src_addr=0x1c40de9c, unsigned int src_addr_len=16)  Line 
1185 + 0x18 bytes    C
     PCCommunicator.exe!pj_stun_session_on_rx_pkt(pj_stun_session * 
sess=0x1c41583c, const void * packet=0x1c41180c, unsigned int 
pkt_size=88, unsigned int options=1, void * token=0x00000000, unsigned 
int * parsed_len=0x00000000, const void * src_addr=0x1c40de9c, unsigned 
int src_addr_len=16)  Line 1398 + 0x21 bytes    C
     PCCommunicator.exe!on_data_recvfrom(pj_activesock_t * 
asock=0x1c3fbfb8, void * data=0x1c41180c, unsigned int size=88, const 
void * src_addr=0x1c40de9c, int addr_len=16, int status=0)  Line 817 + 
0x25 bytes    C
     PCCommunicator.exe!ioqueue_on_read_complete(pj_ioqueue_key_t * 
key=0x0f26b8d4, pj_ioqueue_op_key_t * op_key=0x1c40de0c, long 
bytes_read=88)  Line 341 + 0x38 bytes    C
     PCCommunicator.exe!ioqueue_dispatch_read_event(pj_ioqueue_t * 
ioqueue=0x0e880928, pj_ioqueue_key_t * h=0x0f26b8d4)  Line 549 + 0x16 
bytes    C
     PCCommunicator.exe!pj_ioqueue_poll(pj_ioqueue_t * 
ioqueue=0x0e880928, const pj_time_val * timeout=0x0ddefcac)  Line 763 + 
0x17 bytes    C
     PCCommunicator.exe!pjsip_endpt_handle_events2(pjsip_endpoint * 
endpt=0x0e3c705c, const pj_time_val * max_timeout=0x0ddefe7c, unsigned 
int * p_count=0x00000000)  Line 694 + 0x10 bytes    C
     PCCommunicator.exe!pjsip_endpt_handle_events(pjsip_endpoint * 
endpt=0x0e3c705c, const pj_time_val * max_timeout=0x0ddefe7c)  Line 721 
+ 0xf bytes    C
     PCCommunicator.exe!EventHandler(void * __formal=0x00000000)  Line 
630 + 0x16 bytes    C++
     PCCommunicator.exe!thread_main(void * param=0x0c12bf08)  Line 413 + 
0x11 bytes    C

I can trace the call back to *stun_on_status()* and see that there, if I 
enumerate ice_st's comp, I can see that some of them are already NULL 
(0x00000000).
If required, I can try trace back in the stack even more and provide any 
required details

Any help on understanding theses issues will be greatly appreciated.

Cheers
Pedro Gon?alves



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux