From 32e616a14deb6da49bb4557a0163b353415df1ce Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Tue, 6 Aug 2013 08:02:24 +0000 Subject: Fixed #1693: Pay attention to reg_hdr_list and sub_hdr_list in pjsua_acc_modify(), and also fixed pjsua_acc_get_config() git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4580 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip-apps/src/pjsua/pjsua_app.c | 24 ++++++++++++++++-------- pjsip-apps/src/pjsua/pjsua_app_cli.c | 8 ++++++-- pjsip-apps/src/pjsua/pjsua_app_legacy.c | 5 ++++- 3 files changed, 26 insertions(+), 11 deletions(-) (limited to 'pjsip-apps') diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c index eb04c717..25211935 100644 --- a/pjsip-apps/src/pjsua/pjsua_app.c +++ b/pjsip-apps/src/pjsua/pjsua_app.c @@ -1279,6 +1279,7 @@ static pj_status_t app_init() pjsua_transport_id transport_id = -1; pjsua_transport_config tcp_cfg; unsigned i; + pj_pool_t *tmp_pool; pj_status_t status; /** Create pjsua **/ @@ -1288,6 +1289,7 @@ static pj_status_t app_init() /* Create pool for application */ app_config.pool = pjsua_pool_create("pjsua-app", 1000, 1000); + tmp_pool = pjsua_pool_create("tmp-pjsua", 1000, 1000);; /* Init CLI & its FE settings */ if (!app_running) { @@ -1299,8 +1301,10 @@ static pj_status_t app_init() /** Parse args **/ status = load_config(app_cfg.argc, app_cfg.argv, &uri_arg); - if (status != PJ_SUCCESS) + if (status != PJ_SUCCESS) { + pj_pool_release(tmp_pool); return status; + } /* Initialize application callbacks */ app_config.cfg.cb.on_call_state = &on_call_state; @@ -1339,8 +1343,10 @@ static pj_status_t app_init() /* Initialize pjsua */ status = pjsua_init(&app_config.cfg, &app_config.log_cfg, &app_config.media_cfg); - if (status != PJ_SUCCESS) + if (status != PJ_SUCCESS) { + pj_pool_release(tmp_pool); return status; + } /* Initialize our module to handle otherwise unhandled request */ status = pjsip_endpt_register_module(pjsua_get_pjsip_endpt(), @@ -1587,7 +1593,7 @@ static pj_status_t app_init() pjsua_acc_add_local(transport_id, PJ_TRUE, &aid); if (PJMEDIA_HAS_VIDEO) { pjsua_acc_config acc_cfg; - pjsua_acc_get_config(aid, &acc_cfg); + pjsua_acc_get_config(aid, tmp_pool, &acc_cfg); app_config_init_video(&acc_cfg); pjsua_acc_modify(aid, &acc_cfg); } @@ -1626,7 +1632,7 @@ static pj_status_t app_init() pjsua_acc_add_local(transport_id, PJ_TRUE, &aid); if (PJMEDIA_HAS_VIDEO) { pjsua_acc_config acc_cfg; - pjsua_acc_get_config(aid, &acc_cfg); + pjsua_acc_get_config(aid, tmp_pool, &acc_cfg); app_config_init_video(&acc_cfg); if (app_config.ipv6) acc_cfg.ipv6_media_use = PJSUA_IPV6_ENABLED; @@ -1660,7 +1666,7 @@ static pj_status_t app_init() pjsua_acc_add_local(transport_id, PJ_TRUE, &aid); if (PJMEDIA_HAS_VIDEO) { pjsua_acc_config acc_cfg; - pjsua_acc_get_config(aid, &acc_cfg); + pjsua_acc_get_config(aid, tmp_pool, &acc_cfg); app_config_init_video(&acc_cfg); pjsua_acc_modify(aid, &acc_cfg); } @@ -1685,7 +1691,7 @@ static pj_status_t app_init() pjsua_acc_add_local(transport_id, PJ_TRUE, &aid); if (PJMEDIA_HAS_VIDEO) { pjsua_acc_config acc_cfg; - pjsua_acc_get_config(aid, &acc_cfg); + pjsua_acc_get_config(aid, tmp_pool, &acc_cfg); app_config_init_video(&acc_cfg); if (app_config.ipv6) acc_cfg.ipv6_media_use = PJSUA_IPV6_ENABLED; @@ -1720,7 +1726,7 @@ static pj_status_t app_init() pjsua_acc_add_local(transport_id, PJ_FALSE, &acc_id); if (PJMEDIA_HAS_VIDEO) { pjsua_acc_config acc_cfg; - pjsua_acc_get_config(acc_id, &acc_cfg); + pjsua_acc_get_config(acc_id, tmp_pool, &acc_cfg); app_config_init_video(&acc_cfg); pjsua_acc_modify(acc_id, &acc_cfg); } @@ -1744,7 +1750,7 @@ static pj_status_t app_init() pjsua_acc_add_local(transport_id, PJ_TRUE, &aid); if (PJMEDIA_HAS_VIDEO) { pjsua_acc_config acc_cfg; - pjsua_acc_get_config(aid, &acc_cfg); + pjsua_acc_get_config(aid, tmp_pool, &acc_cfg); app_config_init_video(&acc_cfg); if (app_config.ipv6) acc_cfg.ipv6_media_use = PJSUA_IPV6_ENABLED; @@ -1829,9 +1835,11 @@ static pj_status_t app_init() call_opt.aud_cnt = app_config.aud_cnt; call_opt.vid_cnt = app_config.vid.vid_cnt; + pj_pool_release(tmp_pool); return PJ_SUCCESS; on_error: + pj_pool_release(tmp_pool); app_destroy(); return status; } diff --git a/pjsip-apps/src/pjsua/pjsua_app_cli.c b/pjsip-apps/src/pjsua/pjsua_app_cli.c index 771539a8..4247de08 100644 --- a/pjsip-apps/src/pjsua/pjsua_app_cli.c +++ b/pjsip-apps/src/pjsua/pjsua_app_cli.c @@ -2108,9 +2108,11 @@ static pj_status_t modify_video_account(pjsua_acc_config *acc_cfg) static pj_status_t cmd_show_account_video() { pjsua_acc_config acc_cfg; + pj_pool_t *pool = pjsua_pool_create("tmp-pjsua", 1000, 1000); - pjsua_acc_get_config(current_acc, &acc_cfg); + pjsua_acc_get_config(current_acc, pool, &acc_cfg); app_config_show_video(current_acc, &acc_cfg); + pj_pool_release(pool); return PJ_SUCCESS; } @@ -2118,10 +2120,11 @@ static pj_status_t cmd_video_acc_handler(pj_cli_cmd_val *cval) { pjsua_acc_config acc_cfg; pj_cli_cmd_id cmd_id = pj_cli_get_cmd_id(cval->cmd); + pj_pool_t *pool = pjsua_pool_create("tmp-pjsua", 1000, 1000); CHECK_PJSUA_RUNNING(); - pjsua_acc_get_config(current_acc, &acc_cfg); + pjsua_acc_get_config(current_acc, pool, &acc_cfg); switch(cmd_id) { case CMD_VIDEO_ACC_AUTORX: @@ -2148,6 +2151,7 @@ static pj_status_t cmd_video_acc_handler(pj_cli_cmd_val *cval) break; } modify_video_account(&acc_cfg); + pj_pool_release(pool); return PJ_SUCCESS; } diff --git a/pjsip-apps/src/pjsua/pjsua_app_legacy.c b/pjsip-apps/src/pjsua/pjsua_app_legacy.c index e49490b0..30725b51 100644 --- a/pjsip-apps/src/pjsua/pjsua_app_legacy.c +++ b/pjsip-apps/src/pjsua/pjsua_app_legacy.c @@ -312,8 +312,9 @@ static void vid_handle_menu(char *menuin) } else if (strcmp(argv[1], "acc")==0) { pjsua_acc_config acc_cfg; pj_bool_t changed = PJ_FALSE; + pj_pool_t *tmp_pool = pjsua_pool_create("tmp-pjsua", 1000, 1000); - pjsua_acc_get_config(current_acc, &acc_cfg); + pjsua_acc_get_config(current_acc, tmp_pool, &acc_cfg); if (argc == 3 && strcmp(argv[2], "show")==0) { app_config_show_video(current_acc, &acc_cfg); @@ -334,6 +335,7 @@ static void vid_handle_menu(char *menuin) acc_cfg.vid_rend_dev = dev; changed = PJ_TRUE; } else { + pj_pool_release(tmp_pool); goto on_error; } @@ -343,6 +345,7 @@ static void vid_handle_menu(char *menuin) PJ_PERROR(1,(THIS_FILE, status, "Error modifying account %d", current_acc)); } + pj_pool_release(tmp_pool); } else if (strcmp(argv[1], "call")==0) { pjsua_call_vid_strm_op_param param; -- cgit v1.2.3