diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-03-01 20:46:13 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-03-01 20:46:13 +0000 |
commit | 066a3287c184cbfdc5d7edb973c480c3a81d6e45 (patch) | |
tree | d5bae090ebed868494602516da2f139835819a0d /pjsip/src/pjsua-lib/pjsua_pres.c | |
parent | 2c5a0a8b70a04c11b85498562d3e1361a4b7ad7d (diff) |
Added option to perform detailed or summary only dump
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@255 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_pres.c')
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_pres.c | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_pres.c b/pjsip/src/pjsua-lib/pjsua_pres.c index 9f307c6c..174a106d 100644 --- a/pjsip/src/pjsua-lib/pjsua_pres.c +++ b/pjsip/src/pjsua-lib/pjsua_pres.c @@ -454,12 +454,55 @@ void pjsua_pres_shutdown(void) /* * Dump presence status. */ -void pjsua_pres_dump(void) +void pjsua_pres_dump(pj_bool_t detail) { int acc_index; int i; + + /* + * When no detail is required, just dump number of server and client + * subscriptions. + */ + if (detail == PJ_FALSE) { + + int count = 0; + + for (acc_index=0; acc_index < pjsua.acc_cnt; ++acc_index) { + + if (!pj_list_empty(&pjsua.acc[acc_index].pres_srv_list)) { + struct pjsua_srv_pres *uapres; + + uapres = pjsua.acc[acc_index].pres_srv_list.next; + while (uapres != &pjsua.acc[acc_index].pres_srv_list) { + ++count; + uapres = uapres->next; + } + } + } + + PJ_LOG(3,(THIS_FILE, "Number of server/UAS subscriptions: %d", + count)); + + count = 0; + + for (i=0; i<pjsua.buddy_cnt; ++i) { + if (pjsua.buddies[i].sub) { + ++count; + } + } + + PJ_LOG(3,(THIS_FILE, "Number of client/UAC subscriptions: %d", + count)); + return; + } + + + /* + * Dumping all server (UAS) subscriptions + */ PJ_LOG(3,(THIS_FILE, "Dumping pjsua server subscriptions:")); + for (acc_index=0; acc_index < pjsua.acc_cnt; ++acc_index) { PJ_LOG(3,(THIS_FILE, " %.*s", @@ -467,7 +510,9 @@ void pjsua_pres_dump(void) pjsua.acc[acc_index].local_uri.ptr)); if (pj_list_empty(&pjsua.acc[acc_index].pres_srv_list)) { + PJ_LOG(3,(THIS_FILE, " - none - ")); + } else { struct pjsua_srv_pres *uapres; @@ -483,9 +528,15 @@ void pjsua_pres_dump(void) } } + /* + * Dumping all client (UAC) subscriptions + */ PJ_LOG(3,(THIS_FILE, "Dumping pjsua client subscriptions:")); + if (pjsua.buddy_cnt == 0) { + PJ_LOG(3,(THIS_FILE, " - no buddy list - ")); + } else { for (i=0; i<pjsua.buddy_cnt; ++i) { |