Remove existing stats gathering framework from clamd

Conflicts:
	clamd/clamd.c
0.98.2
Shawn Webb 12 years ago
parent c4cd560b75
commit e07b295d95
  1. 1
      clamd/clamd.c
  2. 4
      clamd/fan.c
  3. 67
      clamd/others.c
  4. 4
      clamd/others.h
  5. 6
      clamd/scanner.c
  6. 4
      clamd/session.c

@ -464,7 +464,6 @@ int main(int argc, char **argv)
}
cl_engine_set_clcb_hash(engine, hash_callback);
detstats_clear();
if(optget(opts, "LeaveTemporaryFiles")->enabled)
cl_engine_set_num(engine, CL_ENGINE_KEEPTMP, 1);

@ -68,8 +68,6 @@ static int fan_scanfile(int fan_fd, const char *fname, struct fanotify_event_met
context.filename = fname;
context.virsize = 0;
if(scan && cl_scandesc_callback(fmd->fd, &virname, NULL, tharg->engine, tharg->options, &context) == CL_VIRUS) {
if(context.virsize)
detstats_add(virname, fname, context.virsize, context.virhash);
if(extinfo && context.virsize)
logg("ScanOnAccess: %s: %s(%s:%llu) FOUND\n", fname, virname, context.virhash, context.virsize);
else
@ -277,8 +275,6 @@ static int cauth_scanfile(const char *fname, int extinfo, struct thrarg *tharg)
return -1;
if(cl_scandesc_callback(fd, &virname, NULL, tharg->engine, tharg->options, &context) == CL_VIRUS) {
if(context.virsize)
detstats_add(virname, fname, context.virsize, context.virhash);
if(extinfo && context.virsize)
logg("ScanOnAccess: %s: %s(%s:%llu) FOUND\n", fname, virname, context.virhash, context.virsize);
else

@ -75,7 +75,6 @@
#include "others.h"
static pthread_mutex_t virusaction_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t detstats_lock = PTHREAD_MUTEX_INITIALIZER;
static void xfree(void *p)
{
@ -798,72 +797,6 @@ fds_free (struct fd_data *data)
fds_unlock (data);
}
struct detstats_s
{
char virname[128];
char fname[128];
char md5[33];
unsigned int fsize;
unsigned int time;
};
#define DETSTATS_MAX 50
static struct detstats_s detstats_data[DETSTATS_MAX];
static unsigned int detstats_idx = 0, detstats_total = 0;
void
detstats_clear (void)
{
pthread_mutex_lock (&detstats_lock);
detstats_idx = detstats_total = 0;
pthread_mutex_unlock (&detstats_lock);
}
void
detstats_add (const char *virname, const char *fname, unsigned int fsize,
const char *md5)
{
pthread_mutex_lock (&detstats_lock);
strncpy (detstats_data[detstats_idx].virname, virname,
sizeof (detstats_data[detstats_idx].virname));
detstats_data[detstats_idx].
virname[sizeof (detstats_data[detstats_idx].virname) - 1] = 0;
if ((fname = strrchr (fname, *PATHSEP)))
fname++;
strncpy (detstats_data[detstats_idx].fname,
(!fname
|| !strlen (fname)) ? "NOFNAME" : fname,
sizeof (detstats_data[detstats_idx].fname));
detstats_data[detstats_idx].
fname[sizeof (detstats_data[detstats_idx].fname) - 1] = 0;
strncpy (detstats_data[detstats_idx].md5, md5,
sizeof (detstats_data[detstats_idx].md5));
detstats_data[detstats_idx].md5[sizeof (detstats_data[detstats_idx].md5) -
1] = 0;
detstats_data[detstats_idx].fsize = fsize;
detstats_data[detstats_idx++].time = time (NULL);
if (detstats_idx == DETSTATS_MAX)
detstats_idx = 0;
detstats_total++;
pthread_mutex_unlock (&detstats_lock);
}
void
detstats_print (int desc, char term)
{
unsigned int i;
pthread_mutex_lock (&detstats_lock);
for (i = 0; i < DETSTATS_MAX && i < detstats_total; i++)
mdprintf (desc, "%u:%s:%u:%s:%s%c", detstats_data[i].time,
detstats_data[i].md5, detstats_data[i].fsize,
detstats_data[i].virname, detstats_data[i].fname, term);
pthread_mutex_unlock (&detstats_lock);
}
#ifdef FANOTIFY
int
fan_checkowner (int pid, const struct optstruct *opts)

@ -82,10 +82,6 @@ void fds_cleanup(struct fd_data *data);
int fds_poll_recv(struct fd_data *data, int timeout, int check_signals, void *event);
void fds_free(struct fd_data *data);
void detstats_clear(void);
void detstats_add(const char *virname, const char *fname, unsigned int fsize, const char *md5);
void detstats_print(int desc, char term);
#ifdef FANOTIFY
int fan_checkowner(int pid, const struct optstruct *opts);
#endif

@ -267,8 +267,6 @@ int scan_callback(STATBUF *sb, char *filename, const char *msg, enum cli_ftw_rea
return CL_ETIMEOUT;
}
}
if(context.virsize)
detstats_add(virname, filename, context.virsize, context.virhash);
if(context.virsize && optget(scandata->opts, "ExtendedDetectionInfo")->enabled)
logg("~%s: %s(%s:%llu) FOUND\n", filename, virname, context.virhash, context.virsize);
else
@ -381,8 +379,6 @@ int scanfd(const client_conn_t *conn, unsigned long int *scanned,
if(ret == CL_VIRUS) {
if (conn_reply_virus(conn, reply_fdstr, virname) == -1)
ret = CL_ETIMEOUT;
if(context.virsize)
detstats_add(virname, "NOFNAME", context.virsize, context.virhash);
if(context.virsize && optget(opts, "ExtendedDetectionInfo")->enabled)
logg("%s: %s(%s:%llu) FOUND\n", fdstr, virname, context.virhash, context.virsize);
else
@ -553,8 +549,6 @@ int scanstream(int odesc, unsigned long int *scanned, const struct cl_engine *en
closesocket(sockfd);
if(ret == CL_VIRUS) {
if(context.virsize)
detstats_add(virname, "NOFNAME", context.virsize, context.virhash);
if(context.virsize && optget(opts, "ExtendedDetectionInfo")->enabled) {
mdprintf(odesc, "stream: %s(%s:%llu) FOUND%c", virname, context.virhash, context.virsize, term);
logg("stream(%s@%u): %s(%s:%llu) FOUND\n", peer_addr, port, virname, context.virhash, context.virsize);

@ -596,12 +596,12 @@ int execute_or_dispatch_command(client_conn_t *conn, enum commands cmd, const ch
}
case COMMAND_DETSTATSCLEAR:
{
detstats_clear();
/* TODO: tell client this command has been removed */
return 1;
}
case COMMAND_DETSTATS:
{
detstats_print(desc, conn->term);
/* TODO: tell client this command has been removed */
return 1;
}
case COMMAND_INSTREAM:

Loading…
Cancel
Save