Conflicts:
clamd/clamd.c
... | ... |
@@ -68,8 +68,6 @@ static int fan_scanfile(int fan_fd, const char *fname, struct fanotify_event_met |
68 | 68 |
context.filename = fname; |
69 | 69 |
context.virsize = 0; |
70 | 70 |
if(scan && cl_scandesc_callback(fmd->fd, &virname, NULL, tharg->engine, tharg->options, &context) == CL_VIRUS) { |
71 |
- if(context.virsize) |
|
72 |
- detstats_add(virname, fname, context.virsize, context.virhash); |
|
73 | 71 |
if(extinfo && context.virsize) |
74 | 72 |
logg("ScanOnAccess: %s: %s(%s:%llu) FOUND\n", fname, virname, context.virhash, context.virsize); |
75 | 73 |
else |
... | ... |
@@ -277,8 +275,6 @@ static int cauth_scanfile(const char *fname, int extinfo, struct thrarg *tharg) |
277 | 277 |
return -1; |
278 | 278 |
|
279 | 279 |
if(cl_scandesc_callback(fd, &virname, NULL, tharg->engine, tharg->options, &context) == CL_VIRUS) { |
280 |
- if(context.virsize) |
|
281 |
- detstats_add(virname, fname, context.virsize, context.virhash); |
|
282 | 280 |
if(extinfo && context.virsize) |
283 | 281 |
logg("ScanOnAccess: %s: %s(%s:%llu) FOUND\n", fname, virname, context.virhash, context.virsize); |
284 | 282 |
else |
... | ... |
@@ -75,7 +75,6 @@ |
75 | 75 |
#include "others.h" |
76 | 76 |
|
77 | 77 |
static pthread_mutex_t virusaction_lock = PTHREAD_MUTEX_INITIALIZER; |
78 |
-static pthread_mutex_t detstats_lock = PTHREAD_MUTEX_INITIALIZER; |
|
79 | 78 |
|
80 | 79 |
static void xfree(void *p) |
81 | 80 |
{ |
... | ... |
@@ -798,72 +797,6 @@ fds_free (struct fd_data *data) |
798 | 798 |
fds_unlock (data); |
799 | 799 |
} |
800 | 800 |
|
801 |
-struct detstats_s |
|
802 |
-{ |
|
803 |
- char virname[128]; |
|
804 |
- char fname[128]; |
|
805 |
- char md5[33]; |
|
806 |
- unsigned int fsize; |
|
807 |
- unsigned int time; |
|
808 |
-}; |
|
809 |
-#define DETSTATS_MAX 50 |
|
810 |
-static struct detstats_s detstats_data[DETSTATS_MAX]; |
|
811 |
-static unsigned int detstats_idx = 0, detstats_total = 0; |
|
812 |
- |
|
813 |
-void |
|
814 |
-detstats_clear (void) |
|
815 |
-{ |
|
816 |
- pthread_mutex_lock (&detstats_lock); |
|
817 |
- detstats_idx = detstats_total = 0; |
|
818 |
- pthread_mutex_unlock (&detstats_lock); |
|
819 |
-} |
|
820 |
- |
|
821 |
-void |
|
822 |
-detstats_add (const char *virname, const char *fname, unsigned int fsize, |
|
823 |
- const char *md5) |
|
824 |
-{ |
|
825 |
- pthread_mutex_lock (&detstats_lock); |
|
826 |
- |
|
827 |
- strncpy (detstats_data[detstats_idx].virname, virname, |
|
828 |
- sizeof (detstats_data[detstats_idx].virname)); |
|
829 |
- detstats_data[detstats_idx]. |
|
830 |
- virname[sizeof (detstats_data[detstats_idx].virname) - 1] = 0; |
|
831 |
- |
|
832 |
- if ((fname = strrchr (fname, *PATHSEP))) |
|
833 |
- fname++; |
|
834 |
- strncpy (detstats_data[detstats_idx].fname, |
|
835 |
- (!fname |
|
836 |
- || !strlen (fname)) ? "NOFNAME" : fname, |
|
837 |
- sizeof (detstats_data[detstats_idx].fname)); |
|
838 |
- detstats_data[detstats_idx]. |
|
839 |
- fname[sizeof (detstats_data[detstats_idx].fname) - 1] = 0; |
|
840 |
- |
|
841 |
- strncpy (detstats_data[detstats_idx].md5, md5, |
|
842 |
- sizeof (detstats_data[detstats_idx].md5)); |
|
843 |
- detstats_data[detstats_idx].md5[sizeof (detstats_data[detstats_idx].md5) - |
|
844 |
- 1] = 0; |
|
845 |
- |
|
846 |
- detstats_data[detstats_idx].fsize = fsize; |
|
847 |
- detstats_data[detstats_idx++].time = time (NULL); |
|
848 |
- if (detstats_idx == DETSTATS_MAX) |
|
849 |
- detstats_idx = 0; |
|
850 |
- detstats_total++; |
|
851 |
- pthread_mutex_unlock (&detstats_lock); |
|
852 |
-} |
|
853 |
- |
|
854 |
-void |
|
855 |
-detstats_print (int desc, char term) |
|
856 |
-{ |
|
857 |
- unsigned int i; |
|
858 |
- |
|
859 |
- pthread_mutex_lock (&detstats_lock); |
|
860 |
- for (i = 0; i < DETSTATS_MAX && i < detstats_total; i++) |
|
861 |
- mdprintf (desc, "%u:%s:%u:%s:%s%c", detstats_data[i].time, |
|
862 |
- detstats_data[i].md5, detstats_data[i].fsize, |
|
863 |
- detstats_data[i].virname, detstats_data[i].fname, term); |
|
864 |
- pthread_mutex_unlock (&detstats_lock); |
|
865 |
-} |
|
866 |
- |
|
867 | 801 |
#ifdef FANOTIFY |
868 | 802 |
int |
869 | 803 |
fan_checkowner (int pid, const struct optstruct *opts) |
... | ... |
@@ -82,10 +82,6 @@ void fds_cleanup(struct fd_data *data); |
82 | 82 |
int fds_poll_recv(struct fd_data *data, int timeout, int check_signals, void *event); |
83 | 83 |
void fds_free(struct fd_data *data); |
84 | 84 |
|
85 |
-void detstats_clear(void); |
|
86 |
-void detstats_add(const char *virname, const char *fname, unsigned int fsize, const char *md5); |
|
87 |
-void detstats_print(int desc, char term); |
|
88 |
- |
|
89 | 85 |
#ifdef FANOTIFY |
90 | 86 |
int fan_checkowner(int pid, const struct optstruct *opts); |
91 | 87 |
#endif |
... | ... |
@@ -267,8 +267,6 @@ int scan_callback(STATBUF *sb, char *filename, const char *msg, enum cli_ftw_rea |
267 | 267 |
return CL_ETIMEOUT; |
268 | 268 |
} |
269 | 269 |
} |
270 |
- if(context.virsize) |
|
271 |
- detstats_add(virname, filename, context.virsize, context.virhash); |
|
272 | 270 |
if(context.virsize && optget(scandata->opts, "ExtendedDetectionInfo")->enabled) |
273 | 271 |
logg("~%s: %s(%s:%llu) FOUND\n", filename, virname, context.virhash, context.virsize); |
274 | 272 |
else |
... | ... |
@@ -381,8 +379,6 @@ int scanfd(const client_conn_t *conn, unsigned long int *scanned, |
381 | 381 |
if(ret == CL_VIRUS) { |
382 | 382 |
if (conn_reply_virus(conn, reply_fdstr, virname) == -1) |
383 | 383 |
ret = CL_ETIMEOUT; |
384 |
- if(context.virsize) |
|
385 |
- detstats_add(virname, "NOFNAME", context.virsize, context.virhash); |
|
386 | 384 |
if(context.virsize && optget(opts, "ExtendedDetectionInfo")->enabled) |
387 | 385 |
logg("%s: %s(%s:%llu) FOUND\n", fdstr, virname, context.virhash, context.virsize); |
388 | 386 |
else |
... | ... |
@@ -553,8 +549,6 @@ int scanstream(int odesc, unsigned long int *scanned, const struct cl_engine *en |
553 | 553 |
closesocket(sockfd); |
554 | 554 |
|
555 | 555 |
if(ret == CL_VIRUS) { |
556 |
- if(context.virsize) |
|
557 |
- detstats_add(virname, "NOFNAME", context.virsize, context.virhash); |
|
558 | 556 |
if(context.virsize && optget(opts, "ExtendedDetectionInfo")->enabled) { |
559 | 557 |
mdprintf(odesc, "stream: %s(%s:%llu) FOUND%c", virname, context.virhash, context.virsize, term); |
560 | 558 |
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 |
596 | 596 |
} |
597 | 597 |
case COMMAND_DETSTATSCLEAR: |
598 | 598 |
{ |
599 |
- detstats_clear(); |
|
599 |
+ /* TODO: tell client this command has been removed */ |
|
600 | 600 |
return 1; |
601 | 601 |
} |
602 | 602 |
case COMMAND_DETSTATS: |
603 | 603 |
{ |
604 |
- detstats_print(desc, conn->term); |
|
604 |
+ /* TODO: tell client this command has been removed */ |
|
605 | 605 |
return 1; |
606 | 606 |
} |
607 | 607 |
case COMMAND_INSTREAM: |