]> granicus.if.org Git - vnstat/commitdiff
sqlite3_open :memory: instead of NULL for tests, improve prints, disable broken top10...
authorTeemu Toivola <git@humdi.net>
Wed, 11 Jan 2017 18:56:01 +0000 (20:56 +0200)
committerTeemu Toivola <git@humdi.net>
Wed, 11 Jan 2017 18:56:01 +0000 (20:56 +0200)
src/daemon.c
src/dbsql.c

index 869a60abccbabdea267b2d972eed8affae0d2cb6..ec80e2c9a46cab89a5761c9b32c251d85f51d489 100644 (file)
@@ -529,6 +529,7 @@ void flushcachetodisk(DSTATE *s)
 
                logiterator = iterator->log;
                while (logiterator != NULL) {
+                       /* TODO: log order may cause older timestamp to be set as interface updated time */
                        db_addtraffic_dated(iterator->interface, logiterator->rx, logiterator->tx, (uint64_t)logiterator->timestamp);
                        logiterator = logiterator->next;
                }
index 7f00ed2b31ec5c6c38ba1399b7179321e4d10172..5a431306706fe5f85fbecb35aedae10933db792f 100644 (file)
@@ -32,7 +32,7 @@ int db_open(const int createifnotfound)
 
 #ifdef TESTDIR
        /* use ram based database when testing for shorter test execution times */
-       rc = sqlite3_open(NULL, &db);
+       rc = sqlite3_open(":memory:", &db);
 #else
        rc = sqlite3_open(dbfilename, &db);
 #endif
@@ -96,14 +96,14 @@ int db_exec(const char *sql)
        rc = sqlite3_prepare_v2(db, sql, -1, &sqlstmt, NULL);
        if (rc) {
                if (debug)
-                       printf("Error: Insert \"%s\" prepare failed (%d): %s\n", sql, rc, sqlite3_errmsg(db));
+                       printf("Error: Exec prepare \"%s\" failed (%d): %s\n", sql, rc, sqlite3_errmsg(db));
                return 0;
        }
 
        rc = sqlite3_step(sqlstmt);
        if (rc != SQLITE_DONE) {
                if (debug)
-                       printf("Error: Insert \"%s\" step failed (%d): %s\n", sql, rc, sqlite3_errmsg(db));
+                       printf("Error: Exec step \"%s\" failed (%d): %s\n", sql, rc, sqlite3_errmsg(db));
                sqlite3_finalize(sqlstmt);
                return 0;
        }
@@ -111,7 +111,7 @@ int db_exec(const char *sql)
        rc = sqlite3_finalize(sqlstmt);
        if (rc) {
                if (debug)
-                       printf("Error: Finalize \"%s\" failed (%d): %s\n", sql, rc, sqlite3_errmsg(db));
+                       printf("Error: Exec finalize \"%s\" failed (%d): %s\n", sql, rc, sqlite3_errmsg(db));
                return 0;
        }
 
@@ -603,11 +603,14 @@ int db_removeoldentries(void)
                return 0;
        }
 
-       sqlite3_snprintf(512, sql, "delete from top order by rx+tx desc limit -1 offset 10;");
+       /* TODO: rewrite to handle entries per interface and use select for getting entry list */
+       /* as the syntax below works only when sqlite is compiled with SQLITE_ENABLE_UPDATE_DELETE_LIMIT */
+       /* causing failure in at least in Ubuntu <= 12.04, RHEL, Fedora and CentOS */
+       /*sqlite3_snprintf(512, sql, "delete from top order by rx+tx desc limit -1 offset 10;");
        if (!db_exec(sql)) {
                db_rollbacktransaction();
                return 0;
-       }
+       }*/
 
        return db_committransaction();
 }