diff options
-rw-r--r-- | pjsip/src/pjsip/sip_transport.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c index 1bff8a6e..1dc62879 100644 --- a/pjsip/src/pjsip/sip_transport.c +++ b/pjsip/src/pjsip/sip_transport.c @@ -475,12 +475,15 @@ static char *get_msg_info(pj_pool_t *pool, const char *obj_name, PJ_DEF(char*) pjsip_tx_data_get_info( pjsip_tx_data *tdata ) { - if (tdata==NULL || tdata->msg==NULL) - return "NULL"; - + /* tdata->info may be assigned by application so if it exists + * just return it. + */ if (tdata->info) return tdata->info; + if (tdata==NULL || tdata->msg==NULL) + return "NULL"; + pj_lock_acquire(tdata->lock); tdata->info = get_msg_info(tdata->pool, tdata->obj_name, tdata->msg); pj_lock_release(tdata->lock); |