diff -urN exim-4.14.orig/src/exiscan.c exim-4.14/src/exiscan.c --- exim-4.14.orig/src/exiscan.c Wed Mar 26 12:03:06 2003 +++ exim-4.14/src/exiscan.c Wed Mar 26 12:02:02 2003 @@ -2205,11 +2205,15 @@ if (entry == NULL) break; snprintf(CS filepath,PATH_SIZE,"%s/%s",directory,entry->d_name); if ( (Ustrcmp(entry->d_name,"..") != 0) && (Ustrcmp(entry->d_name,".") != 0) ) { + if (exiscan_debug_keepfiles != 1) { exiscan_debug_printf(US"unlinking %s",filepath); n = unlink(filepath); if (n == -1) { exiscan_debug_printf(US"unable to clean up: could not unlink file %s",filepath); }; + } else { + exiscan_debug_printf(US"saving file %s due to exiscan_debug_keepfiles",filepath); + }; }; } while (n > -1); diff -urN exim-4.14.orig/src/exiscan.h exim-4.14/src/exiscan.h --- exim-4.14.orig/src/exiscan.h Wed Mar 26 12:03:06 2003 +++ exim-4.14/src/exiscan.h Wed Mar 26 12:25:25 2003 @@ -246,6 +246,7 @@ extern uschar *exiscan_extension_rejectmsg; extern uschar *exiscan_regex_rejectmsg; extern uschar *exiscan_spamd_rejectmsg; +extern int exiscan_debug_keepfiles; extern int exiscan_loglevel; extern uschar *exiscan_demime_pickyness; diff -urN exim-4.14.orig/src/globals.c exim-4.14/src/globals.c --- exim-4.14.orig/src/globals.c Wed Mar 26 12:03:06 2003 +++ exim-4.14/src/globals.c Wed Mar 26 12:05:52 2003 @@ -436,6 +436,7 @@ uschar *exiscan_condition = NULL; uschar *exiscan_crypt_salt = NULL; uschar *exiscan_data = NULL; +int exiscan_debug_keepfiles = 0; uschar *exiscan_av_kavdaemon_socket = NULL; uschar *exiscan_av_scanner = NULL; uschar *exiscan_av_scanner_options = NULL; diff -urN exim-4.14.orig/src/globals.h exim-4.14/src/globals.h --- exim-4.14.orig/src/globals.h Wed Mar 26 12:03:06 2003 +++ exim-4.14/src/globals.h Wed Mar 26 12:11:19 2003 @@ -248,6 +248,7 @@ extern uschar *exiscan_condition; /* exim style condition if exiscan should run */ extern uschar *exiscan_crypt_salt; /* exiscan: the crypt() salt for message IDs */ extern uschar *exiscan_data; +extern int exiscan_debug_keepfiles; /* exiscan: keep extracted files for debugging */ extern uschar *exiscan_av_kavdaemon_socket; /* exiscan: path to the UNIX socket for KAV daemon */ extern uschar *exiscan_av_scanner; /* exiscan: scanner keyword */ extern uschar *exiscan_av_scanner_options; /* exiscan: scanner cmdline options */ diff -urN exim-4.14.orig/src/readconf.c exim-4.14/src/readconf.c --- exim-4.14.orig/src/readconf.c Wed Mar 26 12:03:06 2003 +++ exim-4.14/src/readconf.c Wed Mar 26 12:04:44 2003 @@ -170,6 +170,7 @@ { "exiscan_av_sophie_socket", opt_stringptr, &exiscan_av_sophie_socket }, { "exiscan_condition", opt_stringptr, &exiscan_condition }, { "exiscan_crypt_salt", opt_stringptr, &exiscan_crypt_salt }, + { "exiscan_debug_keepfiles", opt_int, &exiscan_debug_keepfiles }, { "exiscan_demime_action", opt_stringptr, &exiscan_demime_action }, { "exiscan_demime_condition", opt_stringptr, &exiscan_demime_condition }, { "exiscan_demime_pickyness", opt_stringptr, &exiscan_demime_pickyness },