summaryrefslogtreecommitdiff
path: root/pjsip/src
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-06-15 12:25:46 +0000
committerBenny Prijono <bennylp@teluu.com>2006-06-15 12:25:46 +0000
commit5e067048948f7b9da5e0ae58212507239db54258 (patch)
tree470ddeeddb8215fa6c8a4eb5d9bcd730779690ee /pjsip/src
parentdf07573d1de2f9639d5cdbfc2206cd70062263f7 (diff)
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
Diffstat (limited to 'pjsip/src')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_acc.c2
-rw-r--r--pjsip/src/pjsua-lib/pjsua_pres.c12
2 files changed, 10 insertions, 4 deletions
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;