/* open fire host and slora report data database */
int open_report_db(void)
{
int rv = -;
char sql[SQL_COMMAND_LEN];
char *errmsg = NULL;
const char *db_file = REPORT_DB_FILE;
/* If report database already exist, then we will just open it */
if( ==access(db_file, F_OK) )
{
if( SQLITE_OK != sqlite3_open(db_file, &s_report_db) )
{
log_err("open report database file '%s' failure\n", db_file);
return -;
}
log_nrml("open report database file '%s' ok\n", db_file);
return ;
}
pthread_mutex_lock(&s_reportdb_lock);
/* If report database file not exist, then we create it now */
if( SQLITE_OK != sqlite3_open(db_file, &s_report_db) )
{
log_err("create report database file '%s' failure\n", db_file);
pthread_mutex_unlock(&s_reportdb_lock);
return -;
}
log_nrml("open report database file '%s' ok\n", db_file);
/* Auto increase/decrease */
snprintf(sql, sizeof(sql), "pragma auto_vacuum=2;");
if( SQLITE_OK != sqlite3_exec(s_report_db, sql, NULL, NULL, &errmsg) )
{
log_err("set pragma auto_vacuum=2 failure: %s\n", db_file, errmsg);
rv = -;
goto FAILED;
}
/* Create firehost table in the database */
strncpy(sql, "CREATE TABLE firehost(id INTEGER PRIMARY KEY autoincrement, sent BOOL DEFAULT 0, packet BLOB);", sizeof(sql));
if( SQLITE_OK != sqlite3_exec(s_report_db, sql, NULL, NULL, &errmsg) )
{
log_err("create firehost table in report database file '%s' failure: %s\n", db_file, errmsg);
rv = -;
goto FAILED;
}
/* Create elora table in the database */
strncpy(sql, "CREATE TABLE elora(id