about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/database.c37
1 files changed, 13 insertions, 24 deletions
diff --git a/src/database.c b/src/database.c
index 4e28813b..511a4921 100644
--- a/src/database.c
+++ b/src/database.c
@@ -102,43 +102,32 @@ log_database_init(ProfAccount *account)
     char *err_msg;
 	char *query = "CREATE TABLE IF NOT EXISTS `ChatLogs` ( `cl_id` INTEGER PRIMARY KEY, `jid` TEXT NOT NULL, `resource` TEXT, `message` TEXT, `timestamp` TEXT, `is_muc` INTEGER, `stanza_id` TEXT)";
     if( SQLITE_OK != sqlite3_exec(g_chatlog_database, query, NULL, 0, &err_msg)) {
-        if (err_msg) {
-            log_error("SQLite error: %s", err_msg);
-            sqlite3_free(err_msg);
-        } else {
-            log_error("Unknown SQLite error");
-        }
-        free(filename);
-        return FALSE;
+        goto out;
     }
 
 	query = "CREATE TABLE IF NOT EXISTS `DbVersion` ( `dv_id` INTEGER PRIMARY KEY, `version` INTEGER UNIQUE)";
     if( SQLITE_OK != sqlite3_exec(g_chatlog_database, query, NULL, 0, &err_msg)) {
-        if (err_msg) {
-            log_error("SQLite error: %s", err_msg);
-            sqlite3_free(err_msg);
-        } else {
-            log_error("Unknown SQLite error");
-        }
-        free(filename);
-        return FALSE;
+        goto out;
     }
 
 	query = "INSERT OR IGNORE INTO `DbVersion` (`version`) VALUES('1')";
     if( SQLITE_OK != sqlite3_exec(g_chatlog_database, query, NULL, 0, &err_msg)) {
-        if (err_msg) {
-            log_error("SQLite error: %s", err_msg);
-            sqlite3_free(err_msg);
-        } else {
-            log_error("Unknown SQLite error");
-        }
-        free(filename);
-        return FALSE;
+        goto out;
     }
 
     log_debug("Initialized SQLite database: %s", filename);
     free(filename);
     return TRUE;
+
+out:
+    if (err_msg) {
+        log_error("SQLite error: %s", err_msg);
+        sqlite3_free(err_msg);
+    } else {
+        log_error("Unknown SQLite error");
+    }
+    free(filename);
+    return FALSE;
 }
 
 void