vnstat2: update to version 2.11
This release breaks the noexit patch, because the code for removing old now returns an error when no interfaces are configured. As it is run on startup, the daemon exits in this case. To avoid this, add an additional check so an error is only returned in an actual error case. Signed-off-by: Jan Hoffmann <jan@3e8.eu>
This commit is contained in:
parent
a9373d6dd1
commit
9871979707
2 changed files with 31 additions and 7 deletions
|
@ -6,12 +6,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=vnstat2
|
PKG_NAME:=vnstat2
|
||||||
PKG_VERSION:=2.10
|
PKG_VERSION:=2.11
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=vnstat-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=vnstat-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://humdi.net/vnstat
|
PKG_SOURCE_URL:=https://humdi.net/vnstat
|
||||||
PKG_HASH:=a9c61744e5cd8c366e2db4d282badc74021ddb614bd65b41240937997e457d25
|
PKG_HASH:=babc3f1583cc40e4e8ffb2f53296d93d308cb5a5043e85054f6eaf7b4ae57856
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-2.0-only
|
PKG_LICENSE:=GPL-2.0-only
|
||||||
PKG_LICENSE_FILES:=COPYING
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/src/daemon.c
|
--- a/src/daemon.c
|
||||||
+++ b/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->sync = 0;
|
||||||
s->forcesave = 0;
|
s->forcesave = 0;
|
||||||
s->noadd = 0;
|
s->noadd = 0;
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
s->initdb = 0;
|
s->initdb = 0;
|
||||||
s->iflisthash = 0;
|
s->iflisthash = 0;
|
||||||
s->cfgfile[0] = '\0';
|
s->cfgfile[0] = '\0';
|
||||||
@@ -285,6 +286,9 @@ void preparedatabase(DSTATE *s)
|
@@ -310,6 +311,9 @@ void preparedatabase(DSTATE *s)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s->noadd) {
|
if (s->noadd) {
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
printf("No interfaces found in database, exiting.\n");
|
printf("No interfaces found in database, exiting.\n");
|
||||||
exit(EXIT_FAILURE);
|
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) {
|
if (!addinterfaces(s) && s->dbifcount == 0) {
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
uint64_t dbifcount;
|
uint64_t dbifcount;
|
||||||
--- a/src/vnstatd.c
|
--- a/src/vnstatd.c
|
||||||
+++ b/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(" --config <config file> select used config file\n");
|
||||||
printf(" --noadd prevent startup if database has no interfaces\n");
|
printf(" --noadd prevent startup if database has no interfaces\n");
|
||||||
printf(" --alwaysadd [mode] automatically start monitoring all new interfaces\n");
|
printf(" --alwaysadd [mode] automatically start monitoring all new interfaces\n");
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
printf(" --initdb create empty database and exit\n\n");
|
printf(" --initdb create empty database and exit\n\n");
|
||||||
|
|
||||||
printf("See also \"man vnstatd\".\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 {
|
} else {
|
||||||
cfg.alwaysadd = 1;
|
cfg.alwaysadd = 1;
|
||||||
}
|
}
|
||||||
|
@ -58,3 +58,27 @@
|
||||||
} else if (strcmp(argv[currentarg], "--initdb") == 0) {
|
} else if (strcmp(argv[currentarg], "--initdb") == 0) {
|
||||||
s->initdb = 1;
|
s->initdb = 1;
|
||||||
s->showhelp = 0;
|
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;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue