fix FSCORE-187
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9569 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
fb0aae6db2
commit
c1194489ef
|
@ -1538,6 +1538,9 @@ update_mwi(vm_profile_t *profile, const char *id, const char *domain_name,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define FREE_DOMAIN_ROOT() if (x_domain_root) switch_xml_free(x_domain_root); x_user = x_domain = x_domain_root = NULL
|
||||||
|
|
||||||
|
|
||||||
static void voicemail_check_main(switch_core_session_t *session, const char *profile_name, const char *domain_name, const char *id, int auth)
|
static void voicemail_check_main(switch_core_session_t *session, const char *profile_name, const char *domain_name, const char *id, int auth)
|
||||||
{
|
{
|
||||||
vm_check_state_t vm_check_state = VM_CHECK_START;
|
vm_check_state_t vm_check_state = VM_CHECK_START;
|
||||||
|
@ -1601,10 +1604,7 @@ static void voicemail_check_main(switch_core_session_t *session, const char *pro
|
||||||
mypass = NULL;
|
mypass = NULL;
|
||||||
myfolder = "inbox";
|
myfolder = "inbox";
|
||||||
vm_check_state = VM_CHECK_AUTH;
|
vm_check_state = VM_CHECK_AUTH;
|
||||||
if (x_domain_root) {
|
FREE_DOMAIN_ROOT();
|
||||||
switch_xml_free(x_domain_root);
|
|
||||||
}
|
|
||||||
x_user = x_domain = x_domain_root = NULL;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case VM_CHECK_FOLDER_SUMMARY:
|
case VM_CHECK_FOLDER_SUMMARY:
|
||||||
|
@ -1893,8 +1893,8 @@ static void voicemail_check_main(switch_core_session_t *session, const char *pro
|
||||||
switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "mailbox", myid);
|
switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "mailbox", myid);
|
||||||
switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "destination_number", caller_profile->destination_number);
|
switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "destination_number", caller_profile->destination_number);
|
||||||
switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "caller_id_number", caller_id_number);
|
switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "caller_id_number", caller_id_number);
|
||||||
|
|
||||||
|
|
||||||
if (switch_xml_locate_user("id", myid, domain_name, switch_channel_get_variable(channel, "network_addr"),
|
if (switch_xml_locate_user("id", myid, domain_name, switch_channel_get_variable(channel, "network_addr"),
|
||||||
&x_domain_root, &x_domain, &x_user, params) != SWITCH_STATUS_SUCCESS) {
|
&x_domain_root, &x_domain, &x_user, params) != SWITCH_STATUS_SUCCESS) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "can't find user [%s@%s]\n", myid, domain_name);
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "can't find user [%s@%s]\n", myid, domain_name);
|
||||||
|
@ -1946,8 +1946,6 @@ static void voicemail_check_main(switch_core_session_t *session, const char *pro
|
||||||
thepass = cbt.password;
|
thepass = cbt.password;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch_xml_free(x_domain_root);
|
|
||||||
x_domain_root = NULL;
|
|
||||||
|
|
||||||
if (!auth) {
|
if (!auth) {
|
||||||
if (switch_strlen_zero(cbt.password) && !strcmp(cbt.password, mypass)) {
|
if (switch_strlen_zero(cbt.password) && !strcmp(cbt.password, mypass)) {
|
||||||
|
@ -1961,6 +1959,7 @@ static void voicemail_check_main(switch_core_session_t *session, const char *pro
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FREE_DOMAIN_ROOT();
|
||||||
|
|
||||||
if (auth) {
|
if (auth) {
|
||||||
if (!dir_path) {
|
if (!dir_path) {
|
||||||
|
@ -1977,7 +1976,7 @@ static void voicemail_check_main(switch_core_session_t *session, const char *pro
|
||||||
|
|
||||||
if (switch_dir_make_recursive(dir_path, SWITCH_DEFAULT_DIR_PERMS, switch_core_session_get_pool(session)) != SWITCH_STATUS_SUCCESS) {
|
if (switch_dir_make_recursive(dir_path, SWITCH_DEFAULT_DIR_PERMS, switch_core_session_get_pool(session)) != SWITCH_STATUS_SUCCESS) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error creating %s\n", dir_path);
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error creating %s\n", dir_path);
|
||||||
return;
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1985,10 +1984,13 @@ static void voicemail_check_main(switch_core_session_t *session, const char *pro
|
||||||
} else {
|
} else {
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
failed:
|
failed:
|
||||||
|
|
||||||
|
FREE_DOMAIN_ROOT();
|
||||||
|
|
||||||
status = switch_ivr_phrase_macro(session, VM_FAIL_AUTH_MACRO, NULL, NULL, NULL);
|
status = switch_ivr_phrase_macro(session, VM_FAIL_AUTH_MACRO, NULL, NULL, NULL);
|
||||||
myid = id;
|
myid = id;
|
||||||
mypass = NULL;
|
mypass = NULL;
|
||||||
|
@ -2011,6 +2013,7 @@ static void voicemail_check_main(switch_core_session_t *session, const char *pro
|
||||||
|
|
||||||
if (x_domain_root) {
|
if (x_domain_root) {
|
||||||
switch_xml_free(x_domain_root);
|
switch_xml_free(x_domain_root);
|
||||||
|
x_domain_root = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2711,6 +2714,7 @@ static switch_status_t voicemail_leave_main(switch_core_session_t *session, cons
|
||||||
|
|
||||||
if (x_domain_root) {
|
if (x_domain_root) {
|
||||||
switch_xml_free(x_domain_root);
|
switch_xml_free(x_domain_root);
|
||||||
|
x_domain_root = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch_safe_free(file_path);
|
switch_safe_free(file_path);
|
||||||
|
|
Loading…
Reference in New Issue