From 5e067048948f7b9da5e0ae58212507239db54258 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Thu, 15 Jun 2006 12:25:46 +0000 Subject: Fixed couple of bugs in pjsua API: (1) server presence subscription not setting credentials, and (2) incorrect account status is reported when registration failed git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@512 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/src/pjsua-lib/pjsua_acc.c | 2 +- pjsip/src/pjsua-lib/pjsua_pres.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'pjsip/src') diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c index b16f5fdf..57c6d33f 100644 --- a/pjsip/src/pjsua-lib/pjsua_acc.c +++ b/pjsip/src/pjsua-lib/pjsua_acc.c @@ -568,7 +568,7 @@ PJ_DEF(pj_status_t) pjsua_acc_get_info( pjsua_acc_id acc_id, pj_strerror(acc->reg_last_err, info->buf_, sizeof(info->buf_)); info->status_text = pj_str(info->buf_); } else if (acc->reg_last_code) { - if (acc->regc) { + if (info->has_registration) { info->status = acc->reg_last_code; info->status_text = *pjsip_get_status_text(acc->reg_last_code); } else { diff --git a/pjsip/src/pjsua-lib/pjsua_pres.c b/pjsip/src/pjsua-lib/pjsua_pres.c index b1764662..7948a3ec 100644 --- a/pjsip/src/pjsua-lib/pjsua_pres.c +++ b/pjsip/src/pjsua-lib/pjsua_pres.c @@ -439,7 +439,7 @@ static void pres_evsub_on_srv_state( pjsip_evsub *sub, pjsip_event *event) static pj_bool_t pres_on_rx_request(pjsip_rx_data *rdata) { int acc_id; - pjsua_acc_config *acc_config; + pjsua_acc *acc; pjsip_method *req_method = &rdata->msg_info.msg->line.req.method; pjsua_srv_pres *uapres; pjsip_evsub *sub; @@ -458,11 +458,14 @@ static pj_bool_t pres_on_rx_request(pjsip_rx_data *rdata) /* Find which account for the incoming request. */ acc_id = pjsua_acc_find_for_incoming(rdata); - acc_config = &pjsua_var.acc[acc_id].cfg; + acc = &pjsua_var.acc[acc_id]; + PJ_LOG(4,(THIS_FILE, "Creating server subscription, using account %d", + acc_id)); + /* Create UAS dialog: */ status = pjsip_dlg_create_uas(pjsip_ua_instance(), rdata, - &acc_config->contact, + &acc->cfg.contact, &dlg); if (status != PJ_SUCCESS) { pjsua_perror(THIS_FILE, @@ -472,6 +475,9 @@ static pj_bool_t pres_on_rx_request(pjsip_rx_data *rdata) return PJ_TRUE; } + /* Set credentials. */ + pjsip_auth_clt_set_credentials(&dlg->auth_sess, acc->cred_cnt, acc->cred); + /* Init callback: */ pj_memset(&pres_cb, 0, sizeof(pres_cb)); pres_cb.on_evsub_state = &pres_evsub_on_srv_state; -- cgit v1.2.3