static PrefParam param[] = {
{"clamav_enable", "FALSE", &config.clamav_enable, P_BOOL,
NULL, NULL, NULL},
- {"clamav_enable_archive", "FALSE", &config.clamav_archive_enable, P_BOOL,
+ {"clamav_enable_arc", "FALSE", &config.clamav_enable_arc, P_BOOL,
NULL, NULL, NULL},
{"clamav_max_size", "1", &config.clamav_max_size, P_USHORT,
NULL, NULL, NULL},
- {"clamav_receive_infected", "TRUE", &config.clamav_receive_infected, P_BOOL,
+ {"clamav_recv_infected", "TRUE", &config.clamav_recv_infected, P_BOOL,
NULL, NULL, NULL},
{"clamav_save_folder", NULL, &config.clamav_save_folder, P_STRING,
NULL, NULL, NULL},
if (!config.clamav_enable)
return FALSE;
- debug_print("Scanning message %d for viruses\n", msginfo->msgnum);
-
fp = procmsg_open_message(msginfo);
if (fp == NULL) {
debug_print("failed to open message file");
return FALSE;
}
+ debug_print("Scanning message %d for viruses\n", msginfo->msgnum);
+
if (IS_FIRST_PART_TEXT(child))
child = child->next;
cl_buildtrie(root);
limits.maxfiles = 1000; /* max files */
- limits.maxfilesize = config.clamav_max_size * 1048576; /* maximal archived file size == 10 Mb */
- limits.maxreclevel = 8; /* maximal recursion level */
+ limits.maxfilesize = config.clamav_max_size * 1048576; /* maximum archived file size */
+ limits.maxreclevel = 8; /* maximum recursion level */
- if (config.clamav_archive_enable)
+ if (config.clamav_enable_arc)
scan_archive = TRUE;
while (child != NULL) {
if (is_infected) {
debug_print("message part(s) infected with %s\n", virname);
- if (config.clamav_receive_infected) {
+ if (config.clamav_recv_infected) {
FolderItem *clamav_save_folder;
if ((!config.clamav_save_folder) ||
const gchar *plugin_desc()
{
- return "This plugin checks all message attachments that are received "
- "from a POP account for viruses using Clam AntiVirus. You will "
- "need to have ClamAv installed.\n"
+ return "This plugin uses Clam AntiVirus to scan all message attachments "
+ "that are received from a POP account.\n"
"\n"
"When a message attachment is found to contain a virus it can be "
- "deleted or saved in a special folder.\n"
+ "deleted or saved in a specially designated folder.\n"
"\n"
- "This plugin only contains the actual function for filtering "
+ "This plugin only contains the actual function for scanning "
"and deleting or moving the message. You probably want to load "
- "a User Interface plugin too, otherwise you will have to "
+ "the Gtk+ User Interface plugin too, otherwise you will have to "
"manually write the plugin configuration.\n";
}
GtkWidget *label3;
GtkWidget *enable_arc;
GtkWidget *arc_scanning;
- GtkWidget *label24;
+ GtkWidget *label4;
GtkObject *max_size_adj;
GtkWidget *max_size;
- GtkWidget *mb;
- GtkWidget *label26;
+ GtkWidget *hbox1;
+ GtkWidget *label5;
+ GtkWidget *label6;
GtkWidget *recv_infected;
- GtkWidget *label27;
+ GtkWidget *label7;
GtkWidget *save_folder;
GtkWidget *save_folder_select;
+ GtkWidget *label8;
table = gtk_table_new (6, 3, FALSE);
gtk_widget_show(table);
gtk_table_set_row_spacings(GTK_TABLE(table), 4);
gtk_table_set_col_spacings(GTK_TABLE(table), 8);
+ label1 = gtk_label_new ("Enable virus scanning");
+ gtk_widget_show (label1);
+ gtk_table_attach (GTK_TABLE (table), label1, 0, 1, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (0), 2, 4);
+ gtk_label_set_justify(GTK_LABEL(label1), GTK_JUSTIFY_LEFT);
+ gtk_misc_set_alignment (GTK_MISC (label1), 0, 0.5);
+
enable_clamav = gtk_check_button_new_with_label ("");
gtk_widget_show (enable_clamav);
gtk_table_attach (GTK_TABLE (table), enable_clamav, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
- label1 = gtk_label_new ("Enable ClamAV filtering");
- gtk_widget_show (label1);
- gtk_table_attach (GTK_TABLE (table), label1, 0, 1, 0, 1,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ arc_scanning = gtk_label_new ("Enable archive content scanning");
+ gtk_widget_show (arc_scanning);
+ gtk_table_attach (GTK_TABLE (table), arc_scanning, 0, 1, 1, 2,
+ (GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 2, 4);
- gtk_label_set_justify(GTK_LABEL(label1), GTK_JUSTIFY_LEFT);
- gtk_misc_set_alignment (GTK_MISC (label1), 0, 0.5);
+ gtk_misc_set_alignment (GTK_MISC (arc_scanning), 0, 0.5);
enable_arc = gtk_check_button_new_with_label ("");
gtk_widget_show (enable_arc);
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
- arc_scanning = gtk_label_new ("Enable archive scanning");
- gtk_widget_show (arc_scanning);
- gtk_table_attach (GTK_TABLE (table), arc_scanning, 0, 1, 1, 2,
+ label4 = gtk_label_new ("Maximum attachment size");
+ gtk_widget_show (label4);
+ gtk_table_attach (GTK_TABLE (table), label4, 0, 1, 4, 5,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 2, 4);
- gtk_misc_set_alignment (GTK_MISC (arc_scanning), 0, 0.5);
+ gtk_misc_set_alignment (GTK_MISC (label4), 0, 0.5);
- label24 = gtk_label_new ("Maximum message size");
- gtk_widget_show (label24);
- gtk_table_attach (GTK_TABLE (table), label24, 0, 1, 4, 5,
+ hbox1 = gtk_hbox_new (FALSE, 0);
+ gtk_widget_show (hbox1);
+ gtk_table_attach (GTK_TABLE (table), hbox1, 1, 2, 4, 5,
(GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (0), 2, 4);
- gtk_misc_set_alignment (GTK_MISC (label24), 0, 0.5);
+ (GtkAttachOptions) (GTK_FILL), 0, 0);
- max_size_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10);
+ max_size_adj = gtk_adjustment_new (1, 1, 1024, 1, 10, 10);
max_size = gtk_spin_button_new (GTK_ADJUSTMENT (max_size_adj), 1, 0);
gtk_widget_show (max_size);
- gtk_table_attach (GTK_TABLE (table), max_size, 1, 2, 4, 5,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
+ gtk_box_pack_start (GTK_BOX (hbox1), max_size, FALSE, FALSE, 0);
- mb = gtk_label_new ("MB");
- gtk_widget_show (mb);
- gtk_table_attach (GTK_TABLE (table), mb, 2, 3, 4, 5,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (mb), 0, 0.5);
+ label5 = gtk_label_new ("MB");
+ gtk_widget_show (label5);
+ gtk_box_pack_start (GTK_BOX (hbox1), label5, FALSE, FALSE, 0);
- label26 = gtk_label_new ("Receive infected email");
- gtk_widget_show (label26);
- gtk_table_attach (GTK_TABLE (table), label26, 0, 1, 5, 6,
+ label6 = gtk_label_new ("Receive infected messages");
+ gtk_widget_show (label6);
+ gtk_table_attach (GTK_TABLE (table), label6, 0, 1, 5, 6,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 2, 4);
- gtk_misc_set_alignment (GTK_MISC (label26), 0, 0.5);
+ gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5);
recv_infected = gtk_check_button_new_with_label ("");
gtk_widget_show (recv_infected);
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
- label27 = gtk_label_new ("Save folder");
- gtk_widget_show (label27);
- gtk_table_attach (GTK_TABLE (table), label27, 0, 1, 6, 7,
+ label7 = gtk_label_new ("Save folder");
+ gtk_widget_show (label7);
+ gtk_table_attach (GTK_TABLE (table), label7, 0, 1, 6, 7,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 2, 4);
- gtk_misc_set_alignment (GTK_MISC (label27), 0, 0.5);
+ gtk_misc_set_alignment (GTK_MISC (label7), 0, 0.5);
save_folder = gtk_entry_new ();
gtk_widget_show (save_folder);
(GtkAttachOptions) (0),
(GtkAttachOptions) (0), 0, 0);
+ label8 =
+ gtk_label_new(_
+ ("Leave empty to use the default trash folder"));
+ gtk_widget_show(label8);
+ gtk_table_attach(GTK_TABLE(table), label8, 1, 2, 7, 8,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (0), 0, 0);
+ gtk_label_set_justify(GTK_LABEL(label8), GTK_JUSTIFY_RIGHT);
+ gtk_misc_set_alignment(GTK_MISC(label8), 1, 0.5);
+
config = clamav_get_config();
gtk_signal_connect(GTK_OBJECT(save_folder_select), "released", GTK_SIGNAL_FUNC(foldersel_cb), page);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enable_clamav), config->clamav_enable);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enable_arc), config->clamav_archive_enable);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enable_arc), config->clamav_enable_arc);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(max_size), (float) config->clamav_max_size);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(recv_infected), config->clamav_receive_infected);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(recv_infected), config->clamav_recv_infected);
if (config->clamav_save_folder != NULL)
gtk_entry_set_text(GTK_ENTRY(save_folder), config->clamav_save_folder);
config = clamav_get_config();
config->clamav_enable = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->enable_clamav));
- config->clamav_archive_enable = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->enable_arc));
+ config->clamav_enable_arc = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->enable_arc));
config->clamav_max_size = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(page->max_size));
- config->clamav_receive_infected = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->recv_infected));
+ config->clamav_recv_infected = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->recv_infected));
g_free(config->clamav_save_folder);
config->clamav_save_folder = gtk_editable_get_chars(GTK_EDITABLE(page->save_folder), 0, -1);
"You will find the options in the Other Preferences window "
"under Filtering/Clam AntiVirus.\n"
"\n"
- "With this plugin you can enable the filtering, enable archive "
- "scanning, set the maximum size of messages to be checked, (if "
- "the message is larger it will not be checked), configure "
- "whether infected mail should be received (default: Yes) "
+ "With this plugin you can enable the scanning, enable archive "
+ "content scanning, set the maximum size of an attachment to be "
+ "checked, (if the attachment is larger it will not be checked), "
+ "configure whether infected mail should be received (default: Yes) "
"and select the folder where infected mail will be saved.\n";
}