trustgroup *tglist;
+void th_dbupdatecounts(trusthost *);
+void tg_dbupdatecounts(trustgroup *);
+
void trusts_freeall(void) {
trustgroup *tg, *ntg;
trusthost *th, *nth;
free(th);
}
-int th_add(trustgroup *tg, char *host, unsigned int maxseen, time_t lastseen) {
+int th_add(trustgroup *tg, char *host, unsigned int maxusage, time_t lastseen) {
u_int32_t ip, mask;
trusthost *th;
if(!th)
return 0;
- th->maxseen = maxseen;
+ th->maxusage = maxusage;
th->lastseen = lastseen;
th->ip = ip;
th->mask = mask;
free(tg);
}
-int tg_add(unsigned int id, char *name, unsigned int trustedfor, int mode, unsigned int maxperident, unsigned int maxseen, time_t expires, time_t lastseen, time_t lastmaxuserreset, char *createdby, char *contact, char *comment) {
+int tg_add(unsigned int id, char *name, unsigned int trustedfor, int mode, unsigned int maxperident, unsigned int maxusage, time_t expires, time_t lastseen, time_t lastmaxuserreset, char *createdby, char *contact, char *comment) {
trustgroup *tg = malloc(sizeof(trustgroup));
if(!tg)
return 0;
tg->trustedfor = trustedfor;
tg->mode = mode;
tg->maxperident = maxperident;
- tg->maxseen = maxseen;
+ tg->maxusage = maxusage;
tg->expires = expires;
tg->lastseen = lastseen;
tg->lastmaxuserreset = lastmaxuserreset;
return NULL;
}
+
+void trusts_flush(void) {
+ trustgroup *tg;
+ trusthost *th;
+ time_t t = time(NULL);
+
+ for(tg=tglist;tg;tg=tg->next) {
+ if(tg->count > 0)
+ tg->lastseen = t;
+
+ tg_dbupdatecounts(tg);
+
+ for(th=tg->hosts;th;th=th->next) {
+ if(th->count > 0)
+ th->lastseen = t;
+
+ th_dbupdatecounts(th);
+ }
+ }
+}