]> granicus.if.org Git - vnstat/commitdiff
skip data input for specific log features when disabled in configuration
authorTeemu Toivola <git@humdi.net>
Tue, 17 Jan 2017 19:58:47 +0000 (21:58 +0200)
committerTeemu Toivola <git@humdi.net>
Tue, 17 Jan 2017 19:58:47 +0000 (21:58 +0200)
README.md
src/dbsql.c

index a04610eeaa18c4da9ae7d66a57bf2d52a0386374..c40bbe51684e3c1a9e5d74a66173202fe4cfcf7c 100644 (file)
--- a/README.md
+++ b/README.md
@@ -27,7 +27,8 @@ configurable durations. Yearly and 5 minute resolution statistics are also plann
   * full data import from vnStat 1.x database format including reconstructed yearly data
   * legacy database is not kept in memory for each interface during daemon runtime
   * new configuration options for data retention durations
-    * the daemon doesn't however yet use these new options
+    * features can be disabled
+    * database cleanup isn't being called
 
 ##### TODO
 
index a86889516c06f1ab23aad1e2936553d181c73ede..f906015799c8a7ba697de2ca408de5fce5761790 100644 (file)
@@ -455,6 +455,7 @@ int db_addtraffic_dated(const char *iface, const uint64_t rx, const uint64_t tx,
        sqlite3_int64 ifaceid = 0;
 
        char *datatables[] = {"fiveminute", "hour", "day", "month", "year"};
+       int32_t *featurecfg[] = {&cfg.fiveminutehours, &cfg.hourlydays, &cfg.dailydays, &cfg.monthlymonths, &cfg.yearlyyears};
        char *datadates[] = {"datetime(%1$s, ('-' || (strftime('%%M', %1$s)) || ' minutes'), ('-' || (strftime('%%S', %1$s)) || ' seconds'), ('+' || (round(strftime('%%M', %1$s)/5,0)*5) || ' minutes'), 'localtime')", \
                        "strftime('%%Y-%%m-%%d %%H:00:00', %s, 'localtime')", \
                        "date(%s, 'localtime')", \
@@ -502,8 +503,10 @@ int db_addtraffic_dated(const char *iface, const uint64_t rx, const uint64_t tx,
        }
 
        /* time specific */
-       /* TODO: skip if feature disabled in configuration */
        for (i=0; i<5; i++) {
+               if (featurecfg[i] == 0) {
+                       continue;
+               }
                snprintf(datebuffer, 512, datadates[i], nowdate);
                sqlite3_snprintf(1024, sql, "insert or ignore into %s (interface, date, rx, tx) values (%"PRId64", %s, 0, 0);", datatables[i], (int64_t)ifaceid, datebuffer);
                if (!db_exec(sql)) {