From 383aba12a88e5df34ded72dfd7272291be7518d4 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Wed, 19 Oct 2011 13:08:14 +0000 Subject: 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 --- pjsip/include/pjsua-lib/pjsua.h | 21 +++++++++++++++++++-- pjsip/src/pjsua-lib/pjsua_core.c | 14 +++++++------- pjsip/src/pjsua-lib/pjsua_pres.c | 6 +++--- 3 files changed, 29 insertions(+), 12 deletions(-) (limited to 'pjsip') 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