#define TRY_CODE(code) do { status = code; if (status != SWITCH_STATUS_SUCCESS && status != SWITCH_STATUS_BREAK) { goto end; } break;} while(status)
#endif
+
+#define xml_safe_free(_x) if (_x) switch_xml_free(_x); _x = NULL
+
SWITCH_MODULE_LOAD_FUNCTION(mod_voicemail_load);
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_voicemail_shutdown);
SWITCH_MODULE_DEFINITION(mod_voicemail, mod_voicemail_load, mod_voicemail_shutdown, NULL);
while (!ok) {
- if (x_user) {
- switch_xml_free(x_user);
- }
+ xml_safe_free(x_user);
switch_snprintf(macro_buf, sizeof(macro_buf), "phrase:%s:%s", VM_FORWARD_MESSAGE_ENTER_EXTENSION_MACRO, profile->terminator_key);
vm_cc[0] = '\0';
}
}
}
-
- switch_xml_free(x_user);
+
+ xml_safe_free(x_user);
+
break;
}
switch_event_fire(&message_event);
}
-
-#define FREE_DOMAIN_ROOT() if (x_user) switch_xml_free(x_user); x_user = NULL
-
static void voicemail_check_main(switch_core_session_t *session, vm_profile_t *profile, const char *domain_name, const char *id, int auth, const char *uuid_in)
{
vm_check_state_t vm_check_state = VM_CHECK_START;
mypass = NULL;
myfolder = "inbox";
vm_check_state = VM_CHECK_AUTH;
- FREE_DOMAIN_ROOT();
+ xml_safe_free(x_user);
}
break;
case VM_CHECK_FOLDER_SUMMARY:
switch_channel_event_set_data(channel, event);
switch_event_fire(&event);
- FREE_DOMAIN_ROOT();
+ xml_safe_free(x_user);
if (auth) {
if (!dir_path) {
failed:
- FREE_DOMAIN_ROOT();
+ xml_safe_free(x_user);
status = switch_ivr_phrase_macro(session, VM_FAIL_AUTH_MACRO, NULL, NULL, NULL);
myid = id;
}
}
- if (x_user) {
- switch_xml_free(x_user);
- x_user = NULL;
- }
-
+ xml_safe_free(x_user);
}
end:
- if (x_user) {
- switch_xml_free(x_user);
- x_user = NULL;
- }
+ xml_safe_free(x_user);
switch_safe_free(file_path);
}
}
- switch_xml_free(x_user);
+ xml_safe_free(x_user);
+
profile_rwunlock(profile);
done:
switch_core_destroy_memory_pool(&pool);