mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 17:38:59 +00:00
spring cleaning
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4795 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
@@ -31,8 +31,22 @@
|
||||
*/
|
||||
|
||||
#include <switch.h>
|
||||
#include "private/switch_core.h"
|
||||
|
||||
#include <sqlite3.h>
|
||||
|
||||
static void db_pick_path(char *dbname, char *buf, switch_size_t size)
|
||||
{
|
||||
|
||||
memset(buf, 0, size);
|
||||
if (strchr(dbname, '/')) {
|
||||
strncpy(buf, dbname, size);
|
||||
} else {
|
||||
snprintf(buf, size, "%s%s%s.db", SWITCH_GLOBAL_dirs.db_dir, SWITCH_PATH_SEPARATOR, dbname);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
SWITCH_DECLARE(int) switch_core_db_open(const char *filename, switch_core_db_t **ppDb)
|
||||
{
|
||||
return sqlite3_open(filename, ppDb);
|
||||
@@ -43,12 +57,12 @@ SWITCH_DECLARE(int) switch_core_db_close(switch_core_db_t *db)
|
||||
return sqlite3_close(db);
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(const unsigned char *)switch_core_db_column_text(switch_core_db_stmt_t *stmt, int iCol)
|
||||
SWITCH_DECLARE(const unsigned char *) switch_core_db_column_text(switch_core_db_stmt_t *stmt, int iCol)
|
||||
{
|
||||
return sqlite3_column_text(stmt, iCol);
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(const char *)switch_core_db_column_name(switch_core_db_stmt_t *stmt, int N)
|
||||
SWITCH_DECLARE(const char *) switch_core_db_column_name(switch_core_db_stmt_t *stmt, int N)
|
||||
{
|
||||
return sqlite3_column_name(stmt, N);
|
||||
}
|
||||
@@ -58,16 +72,14 @@ SWITCH_DECLARE(int) switch_core_db_column_count(switch_core_db_stmt_t *pStmt)
|
||||
return sqlite3_column_count(pStmt);
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(const char *)switch_core_db_errmsg(switch_core_db_t *db)
|
||||
SWITCH_DECLARE(const char *) switch_core_db_errmsg(switch_core_db_t *db)
|
||||
{
|
||||
return sqlite3_errmsg(db);
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(int) switch_core_db_exec(switch_core_db_t *db,
|
||||
const char *sql,
|
||||
switch_core_db_callback_func_t callback,
|
||||
void *data,
|
||||
char **errmsg)
|
||||
switch_core_db_callback_func_t callback, void *data, char **errmsg)
|
||||
{
|
||||
return sqlite3_exec(db, sql, callback, data, errmsg);
|
||||
}
|
||||
@@ -79,9 +91,7 @@ SWITCH_DECLARE(int) switch_core_db_finalize(switch_core_db_stmt_t *pStmt)
|
||||
|
||||
SWITCH_DECLARE(int) switch_core_db_prepare(switch_core_db_t *db,
|
||||
const char *zSql,
|
||||
int nBytes,
|
||||
switch_core_db_stmt_t **ppStmt,
|
||||
const char **pzTail)
|
||||
int nBytes, switch_core_db_stmt_t **ppStmt, const char **pzTail)
|
||||
{
|
||||
return sqlite3_prepare(db, zSql, nBytes, ppStmt, pzTail);
|
||||
}
|
||||
@@ -106,7 +116,8 @@ SWITCH_DECLARE(int) switch_core_db_bind_int64(switch_core_db_stmt_t *pStmt, int
|
||||
return sqlite3_bind_int64(pStmt, i, iValue);
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(int) switch_core_db_bind_text(switch_core_db_stmt_t *pStmt, int i, const char *zData, int nData, switch_core_db_destructor_type_t xDel)
|
||||
SWITCH_DECLARE(int) switch_core_db_bind_text(switch_core_db_stmt_t *pStmt, int i, const char *zData, int nData,
|
||||
switch_core_db_destructor_type_t xDel)
|
||||
{
|
||||
return sqlite3_bind_text(pStmt, i, zData, nData, xDel);
|
||||
}
|
||||
@@ -121,7 +132,8 @@ SWITCH_DECLARE(int64_t) switch_core_db_last_insert_rowid(switch_core_db_t *db)
|
||||
return sqlite3_last_insert_rowid(db);
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(int) switch_core_db_get_table(switch_core_db_t *db, const char *sql, char ***resultp, int *nrow, int *ncolumn, char **errmsg)
|
||||
SWITCH_DECLARE(int) switch_core_db_get_table(switch_core_db_t *db, const char *sql, char ***resultp, int *nrow,
|
||||
int *ncolumn, char **errmsg)
|
||||
{
|
||||
return sqlite3_get_table(db, sql, resultp, nrow, ncolumn, errmsg);
|
||||
}
|
||||
@@ -136,16 +148,58 @@ SWITCH_DECLARE(void) switch_core_db_free(char *z)
|
||||
sqlite3_free(z);
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(char *)switch_mprintf(const char *zFormat,...)
|
||||
SWITCH_DECLARE(char *) switch_mprintf(const char *zFormat, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char *z;
|
||||
va_start(ap, zFormat);
|
||||
z = sqlite3_vmprintf(zFormat, ap);
|
||||
va_end(ap);
|
||||
return z;
|
||||
va_list ap;
|
||||
char *z;
|
||||
va_start(ap, zFormat);
|
||||
z = sqlite3_vmprintf(zFormat, ap);
|
||||
va_end(ap);
|
||||
return z;
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_core_db_t *) switch_core_db_open_file(char *filename)
|
||||
{
|
||||
switch_core_db_t *db;
|
||||
char path[1024];
|
||||
|
||||
db_pick_path(filename, path, sizeof(path));
|
||||
if (switch_core_db_open(path, &db)) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "SQL ERR [%s]\n", switch_core_db_errmsg(db));
|
||||
switch_core_db_close(db);
|
||||
db = NULL;
|
||||
}
|
||||
return db;
|
||||
}
|
||||
|
||||
|
||||
SWITCH_DECLARE(void) switch_core_db_test_reactive(switch_core_db_t *db, char *test_sql, char *reactive_sql)
|
||||
{
|
||||
char *errmsg;
|
||||
|
||||
if (db) {
|
||||
if (test_sql) {
|
||||
switch_core_db_exec(db, test_sql, NULL, NULL, &errmsg);
|
||||
|
||||
if (errmsg) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "SQL ERR [%s]\n[%s]\nAuto Generating Table!\n",
|
||||
errmsg, test_sql);
|
||||
switch_core_db_free(errmsg);
|
||||
errmsg = NULL;
|
||||
switch_core_db_exec(db, reactive_sql, NULL, NULL, &errmsg);
|
||||
if (errmsg) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "SQL ERR [%s]\n[%s]\n", errmsg,
|
||||
reactive_sql);
|
||||
switch_core_db_free(errmsg);
|
||||
errmsg = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* For Emacs:
|
||||
* Local Variables:
|
||||
* mode:c
|
||||
|
Reference in New Issue
Block a user