diff options
Diffstat (limited to 'pjsip-apps/src/samples/pjsip-perf.c')
-rw-r--r-- | pjsip-apps/src/samples/pjsip-perf.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/pjsip-apps/src/samples/pjsip-perf.c b/pjsip-apps/src/samples/pjsip-perf.c index 10bde943..bc963330 100644 --- a/pjsip-apps/src/samples/pjsip-perf.c +++ b/pjsip-apps/src/samples/pjsip-perf.c @@ -475,8 +475,8 @@ static pj_bool_t mod_call_on_rx_request(pjsip_rx_data *rdata) } /* Create UAS dialog */ - status = pjsip_dlg_create_uas( pjsip_ua_instance(), rdata, - &app.local_contact, &dlg); + status = pjsip_dlg_create_uas_and_inc_lock( pjsip_ua_instance(), rdata, + &app.local_contact, &dlg); if (status != PJ_SUCCESS) { const pj_str_t reason = pj_str("Unable to create dialog"); pjsip_endpt_respond_stateless( app.sip_endpt, rdata, @@ -502,9 +502,13 @@ static pj_bool_t mod_call_on_rx_request(pjsip_rx_data *rdata) if (status != PJ_SUCCESS) { pjsip_dlg_create_response(dlg, rdata, 500, NULL, &tdata); pjsip_dlg_send_response(dlg, pjsip_rdata_get_tsx(rdata), tdata); + pjsip_dlg_dec_lock(dlg); return PJ_TRUE; } + /* Invite session has been created, decrement & release dialog lock. */ + pjsip_dlg_dec_lock(dlg); + /* Send 100/Trying if needed */ if (app.server.send_trying) { status = send_response(call->inv, rdata, 100, &has_initial); |