--- a/src/daemon.c
+++ b/src/daemon.c
-@@ -252,6 +252,7 @@ void initdstate(DSTATE *s)
+@@ -277,6 +277,7 @@ void initdstate(DSTATE *s)
s->sync = 0;
s->forcesave = 0;
s->noadd = 0;
s->initdb = 0;
s->iflisthash = 0;
s->cfgfile[0] = '\0';
-@@ -285,6 +286,9 @@ void preparedatabase(DSTATE *s)
+@@ -310,6 +311,9 @@ void preparedatabase(DSTATE *s)
}
if (s->noadd) {
printf("No interfaces found in database, exiting.\n");
exit(EXIT_FAILURE);
}
-@@ -303,6 +307,9 @@ void preparedatabase(DSTATE *s)
+@@ -328,6 +332,9 @@ void preparedatabase(DSTATE *s)
}
if (!addinterfaces(s) && s->dbifcount == 0) {
uint64_t dbifcount;
--- a/src/vnstatd.c
+++ b/src/vnstatd.c
-@@ -249,6 +249,7 @@ void showhelp(void)
+@@ -259,6 +259,7 @@ void showhelp(void)
printf(" --config <config file> select used config file\n");
printf(" --noadd prevent startup if database has no interfaces\n");
printf(" --alwaysadd [mode] automatically start monitoring all new interfaces\n");
printf(" --initdb create empty database and exit\n\n");
printf("See also \"man vnstatd\".\n");
-@@ -322,6 +323,8 @@ void parseargs(DSTATE *s, int argc, char
+@@ -332,6 +333,8 @@ void parseargs(DSTATE *s, int argc, char
} else {
cfg.alwaysadd = 1;
}
} else if (strcmp(argv[currentarg], "--initdb") == 0) {
s->initdb = 1;
s->showhelp = 0;
+--- a/src/dbsql.c
++++ b/src/dbsql.c
+@@ -976,7 +976,7 @@ int db_insertdata(const char *table, con
+
+ int db_removeoldentries(void)
+ {
+- int rc, i;
++ int rc, i, dbifcount;
+ char sql[256];
+ const char *datatables[] = {"fiveminute", "hour", "day", "month", "year"};
+ const int32_t entrylimits[] = {cfg.fiveminutehours * 12, cfg.hourlydays * 24, cfg.dailydays, cfg.monthlymonths, cfg.yearlyyears};
+@@ -987,8 +987,11 @@ int db_removeoldentries(void)
+ printf("db: removing old entries\n");
+ }
+
+- if (db_getiflist(&dbifl) <= 0) {
++ dbifcount = db_getiflist(&dbifl);
++ if (dbifcount < 0) {
+ return 0;
++ } else if (dbifcount == 0) {
++ return 1;
+ } else {
+ dbifl_i = dbifl;
+ }