From: Teemu Toivola Date: Thu, 27 Jun 2019 20:28:47 +0000 (+0300) Subject: remove redundant dirname variable X-Git-Tag: v2.3~10 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9a3cf2491f3e29f28936e2aaeedab5a5a8e4229d;p=vnstat remove redundant dirname variable --- diff --git a/src/daemon.c b/src/daemon.c index b9f1f12..6de2ce8 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -259,7 +259,6 @@ void initdstate(DSTATE *s) s->alwaysadd = 0; s->iflisthash = 0; s->cfgfile[0] = '\0'; - s->dirname[0] = '\0'; s->user[0] = '\0'; s->group[0] = '\0'; s->prevdbupdate = 0; @@ -291,7 +290,7 @@ void preparedatabases(DSTATE *s) exit(EXIT_FAILURE); } - if (!spacecheck(s->dirname)) { + if (!spacecheck(cfg.dbdir)) { printf("Error: Not enough free diskspace available, exiting.\n"); exit(EXIT_FAILURE); } @@ -322,8 +321,8 @@ unsigned int importlegacydbs(DSTATE *s) struct dirent *di; unsigned int importcount = 0; - if ((dir = opendir(s->dirname)) == NULL) { - printf("Error: Unable to open database directory \"%s\": %s\n", s->dirname, strerror(errno)); + if ((dir = opendir(cfg.dbdir)) == NULL) { + printf("Error: Unable to open database directory \"%s\": %s\n", cfg.dbdir, strerror(errno)); printf("Make sure it exists and is at least read enabled for current user.\n"); printf("Exiting...\n"); exit(EXIT_FAILURE); @@ -336,7 +335,7 @@ unsigned int importlegacydbs(DSTATE *s) if (db_getinterfacecountbyname(di->d_name)) { continue; } - if (importlegacydb(di->d_name, s->dirname)) { + if (importlegacydb(di->d_name, cfg.dbdir)) { importcount++; } } @@ -753,9 +752,7 @@ void handleintsignals(DSTATE *s) s->dbifcount = 0; ibwflush(); db_close(); - if (loadcfg(s->cfgfile)) { - strncpy_nt(s->dirname, cfg.dbdir, 512); - } + loadcfg(s->cfgfile); ibwloadcfg(s->cfgfile); if (!db_open_rw(1)) { snprintf(errorstring, 1024, "Opening database after SIGHUP failed (%s), exiting.", strerror(errno)); @@ -799,8 +796,8 @@ void handleintsignals(DSTATE *s) void preparedirs(DSTATE *s) { /* database directory */ - if (mkpath(s->dirname, 0775)) { - updatedirowner(s->dirname, s->user, s->group); + if (mkpath(cfg.dbdir, 0775)) { + updatedirowner(cfg.dbdir, s->user, s->group); } if (!cfg.createdirs || !s->rundaemon) { diff --git a/src/daemon.h b/src/daemon.h index 5a5865d..3fd3e2d 100644 --- a/src/daemon.h +++ b/src/daemon.h @@ -8,7 +8,7 @@ typedef struct { short alwaysadd, bootdetected, cleanuphour, dbretrycount; uint32_t iflisthash; uint64_t dbifcount; - char cfgfile[512], dirname[512]; + char cfgfile[512]; char user[33], group[33]; time_t current, prevdbupdate, prevdbsave, prevwaldbcheckpoint; datacache *dcache; diff --git a/src/vnstat.c b/src/vnstat.c index 6c2d6ff..a6e81d3 100644 --- a/src/vnstat.c +++ b/src/vnstat.c @@ -73,9 +73,6 @@ int main(int argc, char *argv[]) strncpy_nt(p.definterface, cfg.iface, 32); strncpy_nt(p.alias, "none", 32); - /* init dirname */ - strncpy_nt(p.dirname, cfg.dbdir, 512); - /* parse parameters, maybe not the best way but... */ for (currentarg = 1; currentarg < argc; currentarg++) { if (debug) @@ -153,9 +150,9 @@ int main(int argc, char *argv[]) } } else if ((strcmp(argv[currentarg], "--dbdir")) == 0) { if (currentarg + 1 < argc) { - strncpy_nt(p.dirname, argv[currentarg + 1], 512); + strncpy_nt(cfg.dbdir, argv[currentarg + 1], 512); if (debug) - printf("DatabaseDir: \"%s\"\n", p.dirname); + printf("DatabaseDir: \"%s\"\n", cfg.dbdir); currentarg++; continue; } else { @@ -408,13 +405,12 @@ int main(int argc, char *argv[]) /* open database and see if it contains any interfaces */ if (!p.traffic && !p.livetraffic) { - if ((dir = opendir(p.dirname)) != NULL) { + if ((dir = opendir(cfg.dbdir)) != NULL) { if (debug) printf("Dir OK\n"); closedir(dir); - strncpy_nt(cfg.dbdir, p.dirname, 512); if (!db_open_ro()) { - printf("Error: Failed to open database \"%s/%s\" in read-only mode.\n", p.dirname, DATABASEFILE); + printf("Error: Failed to open database \"%s/%s\" in read-only mode.\n", cfg.dbdir, DATABASEFILE); if (errno == ENOENT) { printf("The vnStat daemon should have created the database when started.\n"); printf("Check that it is configured and running. See also \"man vnstatd\".\n"); @@ -429,7 +425,7 @@ int main(int argc, char *argv[]) strncpy_nt(p.definterface, cfg.iface, 32); } } else { - printf("Error: Unable to open database directory \"%s\": %s\n", p.dirname, strerror(errno)); + printf("Error: Unable to open database directory \"%s\": %s\n", cfg.dbdir, strerror(errno)); if (errno == ENOENT) { printf("The vnStat daemon should have created this directory when started.\n"); printf("Check that it is configured and running. See also \"man vnstatd\".\n"); @@ -603,7 +599,7 @@ void handleremoveinterface(PARAMS *p) } if (!db_close() || !db_open_rw(0)) { - printf("Error: Handling database \"%s/%s\" failing: %s\n", p->dirname, DATABASEFILE, strerror(errno)); + printf("Error: Handling database \"%s/%s\" failing: %s\n", cfg.dbdir, DATABASEFILE, strerror(errno)); exit(EXIT_FAILURE); } @@ -646,13 +642,13 @@ void handleaddinterface(PARAMS *p) exit(EXIT_FAILURE); } - if (!p->force && !spacecheck(p->dirname)) { + if (!p->force && !spacecheck(cfg.dbdir)) { printf("Error: Not enough free diskspace available.\n"); exit(EXIT_FAILURE); } if (!db_close() || !db_open_rw(0)) { - printf("Error: Handling database \"%s/%s\" failing: %s\n", p->dirname, DATABASEFILE, strerror(errno)); + printf("Error: Handling database \"%s/%s\" failing: %s\n", cfg.dbdir, DATABASEFILE, strerror(errno)); exit(EXIT_FAILURE); } @@ -683,7 +679,7 @@ void handlesetalias(PARAMS *p) } if (!db_close() || !db_open_rw(0)) { - printf("Error: Handling database \"%s/%s\" failing: %s\n", p->dirname, DATABASEFILE, strerror(errno)); + printf("Error: Handling database \"%s/%s\" failing: %s\n", cfg.dbdir, DATABASEFILE, strerror(errno)); exit(EXIT_FAILURE); } diff --git a/src/vnstat.h b/src/vnstat.h index d72bc39..3e345a8 100644 --- a/src/vnstat.h +++ b/src/vnstat.h @@ -6,7 +6,7 @@ typedef struct { int addiface, force, traffic; int livetraffic, defaultiface, removeiface, livemode; uint64_t dbifcount; - char interface[32], dirname[512], alias[32], filename[512]; + char interface[32], alias[32], filename[512]; char definterface[32], cfgfile[512], *ifacelist, jsonmode, xmlmode; char databegin[18], dataend[18]; } PARAMS; diff --git a/src/vnstatd.c b/src/vnstatd.c index cbf65da..784ac45 100644 --- a/src/vnstatd.c +++ b/src/vnstatd.c @@ -64,8 +64,7 @@ int main(int argc, char *argv[]) return 1; } - /* init dirname and other config settings */ - strncpy_nt(s.dirname, cfg.dbdir, 512); + /* init config settings */ strncpy_nt(s.user, cfg.daemonuser, 33); strncpy_nt(s.group, cfg.daemongroup, 33); s.updateinterval = cfg.updateinterval; @@ -160,7 +159,7 @@ int main(int argc, char *argv[]) setuser(s.user); if (!db_open_rw(1)) { - printf("Error: Failed to open database \"%s/%s\" in read/write mode.\n", s.dirname, DATABASEFILE); + printf("Error: Failed to open database \"%s/%s\" in read/write mode.\n", cfg.dbdir, DATABASEFILE); printf("Exiting...\n"); exit(EXIT_FAILURE); } @@ -169,7 +168,7 @@ int main(int argc, char *argv[]) preparedatabases(&s); if (!db_removeoldentries()) { - printf("Error: Database \"%s/%s\" cleanup failed: %s\n", s.dirname, DATABASEFILE, strerror(errno)); + printf("Error: Database \"%s/%s\" cleanup failed: %s\n", cfg.dbdir, DATABASEFILE, strerror(errno)); printf("Exiting...\n"); exit(EXIT_FAILURE); } @@ -179,14 +178,14 @@ int main(int argc, char *argv[]) /* start as daemon if requested, debug can't be enabled at the same time */ if (s.rundaemon && !debug) { if (!db_close()) { - printf("Error: Failed to close database \"%s/%s\" before starting daemon: %s\n", s.dirname, DATABASEFILE, strerror(errno)); + printf("Error: Failed to close database \"%s/%s\" before starting daemon: %s\n", cfg.dbdir, DATABASEFILE, strerror(errno)); printf("Exiting...\n"); exit(EXIT_FAILURE); } noexit++; daemonize(); if (!db_open_rw(0)) { - snprintf(errorstring, 1024, "Failed to reopen database \"%s/%s\": %s", s.dirname, DATABASEFILE, strerror(errno)); + snprintf(errorstring, 1024, "Failed to reopen database \"%s/%s\": %s", cfg.dbdir, DATABASEFILE, strerror(errno)); printe(PT_Error); exit(EXIT_FAILURE); } diff --git a/tests/daemon_tests.c b/tests/daemon_tests.c index 6c01603..d7caa7c 100644 --- a/tests/daemon_tests.c +++ b/tests/daemon_tests.c @@ -210,7 +210,7 @@ START_TEST(preparedatabases_exits_with_no_databases) defaultcfg(); initdstate(&s); suppress_output(); - strncpy_nt(s.dirname, TESTDBDIR, 512); + strncpy_nt(cfg.dbdir, TESTDBDIR, 512); ck_assert_int_eq(remove_directory(TESTDIR), 1); ck_assert_int_eq(clean_testdbdir(), 1); @@ -226,7 +226,7 @@ START_TEST(preparedatabases_exits_with_no_databases_and_noadd) initdstate(&s); s.noadd = 1; suppress_output(); - strncpy_nt(s.dirname, TESTDBDIR, 512); + strncpy_nt(cfg.dbdir, TESTDBDIR, 512); ck_assert_int_eq(remove_directory(TESTDIR), 1); ck_assert_int_eq(clean_testdbdir(), 1); @@ -242,7 +242,7 @@ START_TEST(preparedatabases_with_no_databases_creates_databases) defaultcfg(); initdstate(&s); suppress_output(); - strncpy_nt(s.dirname, TESTDBDIR, 512); + strncpy_nt(cfg.dbdir, TESTDBDIR, 512); ck_assert_int_eq(remove_directory(TESTDIR), 1); ck_assert_int_eq(clean_testdbdir(), 1); fake_proc_net_dev("w", "ethone", 1, 2, 3, 4); @@ -281,7 +281,7 @@ START_TEST(filldatabaselist_exits_with_no_database_dir) defaultcfg(); initdstate(&s); disable_logprints(); - strncpy_nt(s.dirname, TESTDBDIR, 512); + strncpy_nt(cfg.dbdir, TESTDBDIR, 512); ck_assert_int_eq(remove_directory(TESTDIR), 1); filldatabaselist(&s); @@ -317,7 +317,7 @@ START_TEST(filldatabaselist_adds_databases) initdstate(&s); disable_logprints(); strncpy_nt(cfg.dbdir, TESTDBDIR, 512); - strncpy_nt(s.dirname, TESTDBDIR, 512); + strncpy_nt(cfg.dbdir, TESTDBDIR, 512); s.sync = 1; ck_assert_int_eq(remove_directory(TESTDIR), 1); ck_assert_int_eq(clean_testdbdir(), 1); @@ -600,7 +600,7 @@ START_TEST(handleintsignals_handles_sighup) s.running = 1; intsignal = SIGHUP; - strncpy_nt(s.dirname, TESTDBDIR, 512); + strncpy_nt(cfg.dbdir, TESTDBDIR, 512); handleintsignals(&s); ck_assert_int_eq(intsignal, 0); ck_assert_int_eq(s.running, 1); @@ -620,7 +620,7 @@ START_TEST(preparedirs_with_no_dir) defaultcfg(); cfg.uselogging = 1; s.rundaemon = 1; - strncpy_nt(s.dirname, TESTDBDIR, 512); + strncpy_nt(cfg.dbdir, TESTDBDIR, 512); snprintf(logdir, 500, "%s/log/vnstat", TESTDIR); snprintf(piddir, 500, "%s/pid/vnstat", TESTDIR); snprintf(cfg.logfile, 512, "%s/vnstat.log", logdir); @@ -646,7 +646,7 @@ START_TEST(preparedirs_with_dir) defaultcfg(); cfg.uselogging = 1; s.rundaemon = 1; - strncpy_nt(s.dirname, TESTDBDIR, 512); + strncpy_nt(cfg.dbdir, TESTDBDIR, 512); snprintf(logdir, 500, "%s/log/vnstat", TESTDIR); snprintf(piddir, 500, "%s/pid/vnstat", TESTDIR); snprintf(cfg.logfile, 512, "%s/vnstat.log", logdir);