diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-01-05 23:35:46 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-01-05 23:35:46 +0000 |
commit | 67d6a30732fd1e1fae2f98f646d97356b2eaa8c9 (patch) | |
tree | 599de20e4a6554656db42030cdce7c1f2ccdb655 /pjsip/src/pjsip/sip_transport_udp.c | |
parent | 944562492d0c16b9e44ec4e1cc97657846d82cd0 (diff) |
Added loop transport to test transaction
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@107 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsip/sip_transport_udp.c')
-rw-r--r-- | pjsip/src/pjsip/sip_transport_udp.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/pjsip/src/pjsip/sip_transport_udp.c b/pjsip/src/pjsip/sip_transport_udp.c index f61b58c4..f925d8cd 100644 --- a/pjsip/src/pjsip/sip_transport_udp.c +++ b/pjsip/src/pjsip/sip_transport_udp.c @@ -1,4 +1,4 @@ -/* $Id: $ */ +/* $Id$ */ /* * Copyright (C) 2003-2006 Benny Prijono <benny@prijono.org> * @@ -192,6 +192,7 @@ static pj_status_t udp_send_msg( pjsip_transport *transport, { struct udp_transport *tp = (struct udp_transport*)transport; pj_ssize_t size; + pj_status_t status; PJ_ASSERT_RETURN(transport && tdata, PJ_EINVAL); PJ_ASSERT_RETURN(tdata->op_key.tdata == NULL, PJSIP_EPENDINGTX); @@ -203,9 +204,14 @@ static pj_status_t udp_send_msg( pjsip_transport *transport, /* Send to ioqueue! */ size = tdata->buf.cur - tdata->buf.start; - return pj_ioqueue_sendto(tp->key, (pj_ioqueue_op_key_t*)&tdata->op_key, - tdata->buf.start, &size, 0, - rem_addr, addr_len); + status = pj_ioqueue_sendto(tp->key, (pj_ioqueue_op_key_t*)&tdata->op_key, + tdata->buf.start, &size, 0, + rem_addr, addr_len); + + if (status != PJ_EPENDING) + tdata->op_key.tdata = NULL; + + return status; } /* @@ -244,7 +250,7 @@ static pj_status_t udp_destroy( pjsip_transport *transport ) pj_lock_destroy(tp->base.lock); /* Destroy pool. */ - pjsip_endpt_destroy_pool(tp->base.endpt, tp->base.pool); + pjsip_endpt_release_pool(tp->base.endpt, tp->base.pool); return PJ_SUCCESS; } @@ -419,7 +425,8 @@ PJ_DEF(pj_status_t) pjsip_udp_transport_attach( pjsip_endpoint *endpt, } /* Done. */ - *p_transport = &tp->base; + if (p_transport) + *p_transport = &tp->base; return PJ_SUCCESS; on_error: |