summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib/pjsua_pres.c
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-02-24 13:29:22 +0000
committerBenny Prijono <bennylp@teluu.com>2007-02-24 13:29:22 +0000
commit5f6cdb084e8b59382b53945c4e42ab20b55fe1b2 (patch)
treed5a21f5ce205665ac76305a27a3b7f1b73383768 /pjsip/src/pjsua-lib/pjsua_pres.c
parent75d3c1c4773b7b4e35db24ccf695788d871aba2e (diff)
Fixed ticket #90: PUBLISH is rejected with 404 when REGISTER is challenged with 401/407
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@998 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_pres.c')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_pres.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_pres.c b/pjsip/src/pjsua-lib/pjsua_pres.c
index 55655c7a..da6f291d 100644
--- a/pjsip/src/pjsua-lib/pjsua_pres.c
+++ b/pjsip/src/pjsua-lib/pjsua_pres.c
@@ -671,7 +671,7 @@ on_error:
/* Create client publish session */
-static pj_status_t create_publish(int acc_id)
+pj_status_t pjsua_pres_init_publish_acc(int acc_id)
{
const pj_str_t STR_PRESENCE = { "presence", 8 };
pjsua_acc_config *acc_cfg = &pjsua_var.acc[acc_id].cfg;
@@ -722,8 +722,7 @@ pj_status_t pjsua_pres_init_acc(int acc_id)
/* Init presence subscription */
pj_list_init(&acc->pres_srv_list);
-
- return create_publish(acc_id);
+ return PJ_SUCCESS;
}
@@ -803,12 +802,13 @@ static void refresh_server_subscription(int acc_id)
uapres = uapres->next;
}
- /* Send PUBLISH if required */
- if (acc_cfg->publish_enabled) {
- if (acc->publish_sess == NULL)
- create_publish(acc_id);
-
- if (acc->publish_sess && acc->publish_state != acc->online_status) {
+ /* Send PUBLISH if required. We only do this when we have a PUBLISH
+ * session. If we don't have a PUBLISH session, then it could be
+ * that we're waiting until registration has completed before we
+ * send the first PUBLISH.
+ */
+ if (acc_cfg->publish_enabled && acc->publish_sess) {
+ if (acc->publish_state != acc->online_status) {
send_publish(acc_id, PJ_TRUE);
}
}