int argc;
char *command = NULL, *as = NULL;
switch_core_flag_t cflags = switch_core_flags();
+ switch_status_t status = SWITCH_STATUS_SUCCESS;
if (session) {
return SWITCH_STATUS_FALSE;
if (!(cflags & SCF_USE_SQL) && command && !strcasecmp(command, "channels")) {
stream->write_function(stream, "-ERR SQL DISABLED NO CHANNEL DATA AVAILABLE!\n");
- return SWITCH_STATUS_SUCCESS;
+ goto end;
}
/* statmements, you must also change show_callback and friends to match! */
if (!command) {
stream->write_function(stream, "-USAGE: %s\n", SHOW_SYNTAX);
- return SWITCH_STATUS_SUCCESS;
+ goto end;
} else if (!strncasecmp(command, "codec", 5) ||
!strncasecmp(command, "dialplan", 8) ||
!strncasecmp(command, "file", 4) ||
}
} else {
stream->write_function(stream, "-USAGE: %s\n", SHOW_SYNTAX);
- return SWITCH_STATUS_SUCCESS;
+ goto end;
}
holder.stream = stream;
holder.stream->write_function(holder.stream, "-ERR Cannot find format %s\n", as);
}
+ end:
+
switch_safe_free(mydata);
- switch_core_db_close(db);
- return SWITCH_STATUS_SUCCESS;
+
+ if (db) {
+ switch_core_db_close(db);
+ }
+
+ return status;
}
SWITCH_STANDARD_API(version_function)
SWITCH_DECLARE(switch_status_t) switch_event_shutdown(void)
{
int x = 0, last = 0;
+ switch_hash_index_t *hi;
+ const void *var;
+ void *val;
switch_mutex_lock(EVENT_QUEUE_MUTEX);
SYSTEM_RUNNING = 0;
last = THREAD_COUNT;
}
+ for (hi = switch_hash_first(NULL, CUSTOM_HASH); hi; hi = switch_hash_next(hi)) {
+ switch_event_subclass_t *subclass;
+ switch_hash_this(hi, &var, NULL, &val);;
+ if ((subclass = (switch_event_subclass_t *) val)) {
+ FREE(subclass->name);
+ FREE(subclass->owner);
+ FREE(subclass);
+ }
+ }
switch_core_hash_destroy(&CUSTOM_HASH);
switch_core_memory_reclaim_events();