Hello Tomasz!
Ok, I'll check for database updates in every hour
(or shall I do that more often?)
But I would like to know what code is preferred doing so.
I tried the following:
void init_cl(){
int ret, no=0;
if((ret = cl_loaddbdir(cl_retdbdir(), &root, &no))){
syslog(LOG_PRIORITY, "cl_loaddbdir: %s", cl_perror(ret));
fatal(ERR_LOAD_DB);
}
syslog(LOG_PRIORITY, "Loaded %d signatures.\n", no);
if((ret = cl_build(root))) {
syslog(LOG_PRIORITY, "%s: %s", ERR_DB_INIT, cl_strerror(ret));
fatal(ERR_BUILD_TRIE);
}
memset(&limits, 0, sizeof(struct cl_limits));
limits.maxfiles = MAXFILES;
limits.maxfilesize = MAX_ARCHIVED_FILE_SIZE;
limits.maxreclevel = MAX_RECURSION_LEVEL;
limits.maxratio = MAX_COMPRESS_RATIO;
limits.archivememlim = ARCHIVE_MEM_LIMIT;
}
void reload_cl(){
if(cl_statchkdir(&dbstat) == 1){
syslog(LOG_PRIORITY, "av database update has detected");
if(root){
cl_free(root);
root = NULL;
}
init_cl();
cl_statfree(&dbstat);
cl_statinidir(cl_retdbdir(), &dbstat);
syslog(LOG_PRIORITY, "av database reloaded");
}
alarm(REFRESH_INTERVAL);
}
SJ
_______________________________________________
http://lists.clamav.net/cgi-bin/mailman/listinfo/clamav-users