1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
diff --git a/FTL.h b/FTL.h
index d751f93..42549dc 100644
--- a/FTL.h
+++ b/FTL.h
@@ -66,10 +66,6 @@
// Default -60 (one minute before a full hour)
#define GCdelay (-60)
-// How often do we dump into FTL's database?
-// Default: 60 (once per minute)
-#define DBinterval 60
-
// Static structs
typedef struct {
const char* conf;
@@ -125,6 +121,7 @@ typedef struct {
int maxDBdays;
bool resolveIPv6;
bool resolveIPv4;
+ int DBinterval;
} ConfigStruct;
// Dynamic structs
diff --git a/config.c b/config.c
index c854ec0..6a2f126 100644
--- a/config.c
+++ b/config.c
@@ -130,6 +130,26 @@ void read_FTLconf(void)
else
logg(" RESOLVE_IPV4: Don\'t resolve IPv4 addresses");
+ // DBINTERVAL
+ // How often do we store queries in FTL's database [minutes]?
+ // this value can be a floating point number, e.g. "DBINTERVAL=0.5"
+ // defaults to: 1 (once per minute)
+ config.DBinterval = 1;
+ buffer = parse_FTLconf(fp, "DBINTERVAL");
+
+ float fvalue = 0;
+ if(buffer != NULL && sscanf(buffer, "%f", &fvalue))
+ // check if the read value is
+ // - larger than 0.1min (6sec), and
+ // - smaller than 43200 (once a month)
+ if(fvalue >= 0.1 && fvalue <= 43200.0)
+ config.DBinterval = (int)(60.*fvalue);
+
+ if(config.DBinterval == 60)
+ logg(" DBINTERVAL: saving to DB file every minute");
+ else
+ logg(" DBINTERVAL: saving to DB file every %i seconds", config.DBinterval);
+
logg("Finished config file parsing");
if(conflinebuffer != NULL)
diff --git a/main.c b/main.c
index f748bc2..28b18e6 100644
--- a/main.c
+++ b/main.c
@@ -86,7 +86,7 @@ int main (int argc, char* argv[]) {
if(((time(NULL) - GCdelay)%GCinterval) == 0)
runGCthread = true;
- if(database && ((time(NULL)%DBinterval) == 0))
+ if(database && ((time(NULL)%config.DBinterval) == 0))
runDBthread = true;
// Garbadge collect in regular interval, but don't do it if the threadlocks is set
@@ -134,7 +134,7 @@ int main (int argc, char* argv[]) {
}
// Avoid immediate re-run of DB thread
- while(((time(NULL)%DBinterval) == 0))
+ while(((time(NULL)%config.DBinterval) == 0))
sleepms(100);
}
diff --git a/config.c b/config.c
index 56cbbe8..a2697e8 100644
--- a/config.c
+++ b/config.c
@@ -141,8 +141,8 @@ void read_FTLconf(void)
if(buffer != NULL && sscanf(buffer, "%f", &fvalue))
// check if the read value is
// - larger than 0.1min (6sec), and
- // - smaller than 43200 (once a month)
- if(fvalue >= 0.1 && fvalue <= 43200.0)
+ // - smaller than 1440.0min (once a day)
+ if(fvalue >= 0.1 && fvalue <= 1440.0)
config.DBinterval = (int)(60.*fvalue);
if(config.DBinterval == 60)
diff --git a/config.c b/config.c
index a2697e8..b8880d9 100644
--- a/config.c
+++ b/config.c
@@ -133,8 +133,8 @@ void read_FTLconf(void)
// DBINTERVAL
// How often do we store queries in FTL's database [minutes]?
// this value can be a floating point number, e.g. "DBINTERVAL=0.5"
- // defaults to: 1 (once per minute)
- config.DBinterval = 1;
+ // defaults to: once per minute
+ config.DBinterval = 60;
buffer = parse_FTLconf(fp, "DBINTERVAL");
float fvalue = 0;
|