summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2011-10-19 13:08:14 +0000
committerBenny Prijono <bennylp@teluu.com>2011-10-19 13:08:14 +0000
commit383aba12a88e5df34ded72dfd7272291be7518d4 (patch)
tree6cc714a17901cd83abf43fc7cf3f5089f1eabb65
parent4b65d7d166b1318f34e35b0db62b7533a36c6c80 (diff)
Renamed enum names to comply with the spec in ticket (re #1216)
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3830 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjsip-apps/src/pjsua/pjsua_app.c2
-rw-r--r--pjsip/include/pjsua-lib/pjsua.h21
-rw-r--r--pjsip/src/pjsua-lib/pjsua_core.c14
-rw-r--r--pjsip/src/pjsua-lib/pjsua_pres.c6
4 files changed, 30 insertions, 13 deletions
diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c
index 23bef37d..81e6d57f 100644
--- a/pjsip-apps/src/pjsua/pjsua_app.c
+++ b/pjsip-apps/src/pjsua/pjsua_app.c
@@ -5118,7 +5118,7 @@ pj_status_t app_destroy(void)
app_config.pool = NULL;
}
- status = pjsua_destroy2(1);
+ status = pjsua_destroy();
pj_bzero(&app_config, sizeof(app_config));
diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h
index 433f23a6..4f5ce09d 100644
--- a/pjsip/include/pjsua-lib/pjsua.h
+++ b/pjsip/include/pjsua-lib/pjsua.h
@@ -1299,9 +1299,26 @@ typedef struct pjsua_config
typedef enum pjsua_destroy_flag
{
/**
- * Do not invoke any networking functions.
+ * Allow sending outgoing messages (such as unregistration, event
+ * unpublication, BYEs, unsubscription, etc.), but do not wait for
+ * responses. This is useful to perform "best effort" clean up
+ * without delaying the shutdown process waiting for responses.
*/
- PJSUA_DESTROY_NO_NETWORK = 1
+ PJSUA_DESTROY_NO_RX_MSG = 1,
+
+ /**
+ * If this flag is set, do not send any outgoing messages at all.
+ * This flag is useful if application knows that the network which
+ * the messages are to be sent on is currently down.
+ */
+ PJSUA_DESTROY_NO_TX_MSG = 2,
+
+ /**
+ * Do not send or receive messages during destroy. This flag is
+ * shorthand for PJSUA_DESTROY_NO_RX_MSG + PJSUA_DESTROY_NO_TX_MSG.
+ */
+ PJSUA_DESTROY_NO_NETWORK = PJSUA_DESTROY_NO_RX_MSG |
+ PJSUA_DESTROY_NO_TX_MSG
} pjsua_destroy_flag;
diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c
index 6274f4d4..9b7c4a16 100644
--- a/pjsip/src/pjsua-lib/pjsua_core.c
+++ b/pjsip/src/pjsua-lib/pjsua_core.c
@@ -1305,7 +1305,7 @@ PJ_DEF(pj_status_t) pjsua_destroy2(unsigned flags)
PJ_LOG(4,(THIS_FILE, "Shutting down, flags=%d...", flags));
/* Terminate all calls. */
- if ((flags & PJSUA_DESTROY_NO_NETWORK) == 0) {
+ if ((flags & PJSUA_DESTROY_NO_TX_MSG) == 0) {
pjsua_call_hangup_all();
}
@@ -1335,8 +1335,8 @@ PJ_DEF(pj_status_t) pjsua_destroy2(unsigned flags)
max_wait = pjsua_var.acc[i].cfg.unpublish_max_wait_time_msec;
}
- /* No need to wait if we didn't send anything */
- if (flags & PJSUA_DESTROY_NO_NETWORK) {
+ /* No waiting if RX is disabled */
+ if (flags & PJSUA_DESTROY_NO_RX_MSG) {
max_wait = 0;
}
@@ -1369,7 +1369,7 @@ PJ_DEF(pj_status_t) pjsua_destroy2(unsigned flags)
if (!pjsua_var.acc[i].valid)
continue;
- if (pjsua_var.acc[i].regc && (flags & PJSUA_DESTROY_NO_NETWORK)==0)
+ if (pjsua_var.acc[i].regc && (flags & PJSUA_DESTROY_NO_TX_MSG)==0)
{
pjsua_acc_set_registration(i, PJ_FALSE);
}
@@ -1395,8 +1395,8 @@ PJ_DEF(pj_status_t) pjsua_destroy2(unsigned flags)
max_wait = pjsua_var.acc[i].cfg.unreg_timeout;
}
- /* No need to wait if we didn't send anything */
- if (flags & PJSUA_DESTROY_NO_NETWORK) {
+ /* No waiting if RX is disabled */
+ if (flags & PJSUA_DESTROY_NO_RX_MSG) {
max_wait = 0;
}
@@ -1420,7 +1420,7 @@ PJ_DEF(pj_status_t) pjsua_destroy2(unsigned flags)
/* Wait for some time to allow unregistration and ICE/TURN
* transports shutdown to complete:
*/
- if (i < 20 && (flags & PJSUA_DESTROY_NO_NETWORK) == 0) {
+ if (i < 20 && (flags & PJSUA_DESTROY_NO_RX_MSG) == 0) {
busy_sleep(1000 - i*50);
}
diff --git a/pjsip/src/pjsua-lib/pjsua_pres.c b/pjsip/src/pjsua-lib/pjsua_pres.c
index 699d749f..cd04b2b2 100644
--- a/pjsip/src/pjsua-lib/pjsua_pres.c
+++ b/pjsip/src/pjsua-lib/pjsua_pres.c
@@ -1284,7 +1284,7 @@ void pjsua_pres_unpublish(pjsua_acc *acc, unsigned flags)
acc->online_status = PJ_FALSE;
- if ((flags & PJSUA_DESTROY_NO_NETWORK) == 0) {
+ if ((flags & PJSUA_DESTROY_NO_TX_MSG) == 0) {
send_publish(acc->index, PJ_FALSE);
}
@@ -1322,7 +1322,7 @@ void pjsua_pres_delete_acc(int acc_id, unsigned flags)
pres_status.info[0].basic_open = pjsua_var.acc[acc_id].online_status;
pjsip_pres_set_status(uapres->sub, &pres_status);
- if ((flags & PJSUA_DESTROY_NO_NETWORK) == 0) {
+ if ((flags & PJSUA_DESTROY_NO_TX_MSG) == 0) {
if (pjsip_pres_notify(uapres->sub,
PJSIP_EVSUB_STATE_TERMINATED, NULL,
&reason, &tdata)==PJ_SUCCESS)
@@ -2281,7 +2281,7 @@ void pjsua_pres_shutdown(unsigned flags)
pjsua_var.buddy[i].monitor = 0;
}
- if ((flags & PJSUA_DESTROY_NO_NETWORK) == 0) {
+ if ((flags & PJSUA_DESTROY_NO_TX_MSG) == 0) {
refresh_client_subscriptions();
for (i=0; i<PJ_ARRAY_SIZE(pjsua_var.acc); ++i) {