summaryrefslogtreecommitdiff
path: root/pjsip-apps/src/samples/pjsip-perf.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip-apps/src/samples/pjsip-perf.c')
-rw-r--r--pjsip-apps/src/samples/pjsip-perf.c8
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);