--- src/Commands.pm.orig 2008-05-02 10:31:47.000000000 +0200 +++ src/Commands.pm 2008-10-08 21:45:39.270266973 +0200 @@ -2027,11 +2027,12 @@ my $modqueue = &Conf::get_robot_conf($robot,'queuemod') ; my $name = $list->{'name'}; - my $file; + my $file, $dir; ## For compatibility concerns foreach my $list_id ($list->get_list_id(),$list->{'name'}) { $file = $modqueue.'/'.$list_id.'_'.$key; + $dir = $modqueue.'/.'.$list_id.'_'.$key; last if (-f $file); } @@ -2040,6 +2041,7 @@ ## For compatibility concerns foreach my $list_id ($list->get_list_id(),$list->{'name'}) { $file = $modqueue.'/'.$list_id.'_'.$key.'.distribute'; + $dir = $modqueue.'/.'.$list_id.'_'.$key; last if (-f $file); } } @@ -2102,6 +2104,7 @@ &do_log('info', 'Message for %s from %s moved in spool %s for distribution message-id=%s', $name, $sender, $Conf{'queuedistribute'},$hdr->get('Message-Id')); } unlink($file); + &tools::remove_dir($dir); return 1; } @@ -2318,11 +2321,12 @@ &Language::SetLang($list->{'admin'}{'lang'}); my $name = "$list->{'name'}"; - my $file; + my $file, $dir; ## For compatibility concerns foreach my $list_id ($list->get_list_id(),$list->{'name'}) { $file = $modqueue.'/'.$list_id.'_'.$key; + $dir = $modqueue.'/.'.$list_id.'_'.$key; last if (-f $file); } @@ -2386,6 +2390,7 @@ close(IN); &do_log('info', 'REJECT %s %s from %s accepted (%d seconds)', $name, $sender, $key, time-$time_command); unlink($file); + &tools::remove_dir($dir); return 1; } --- wwsympa/wwsympa.fcgi.orig 2008-04-11 11:42:53.000000000 +0200 +++ wwsympa/wwsympa.fcgi 2008-10-08 23:11:45.242256683 +0200 @@ -6144,7 +6144,7 @@ $in{'id'} =~ s/\0/,/g; &wwslog('info', 'do_reject(%s)', $in{'id'}); - my ($msg, $file); + my ($msg, $file, $dir); unless ($param->{'list'}) { &report::reject_report_web('user','missing_arg',{'argument' => 'list'},$param->{'action'}); @@ -6188,6 +6188,7 @@ ## For compatibility concerns foreach my $list_id ($list->get_list_id(),$list->{'name'}) { $file = $Conf{'queuemod'}.'/'.$list_id.'_'.$id; + $dir = $Conf{'queuemod'}.'/.'.$list_id.'_'.$id; last if (-f $file); } @@ -6234,7 +6235,7 @@ } close(IN); - unless (unlink($file)) { + unless (unlink($file) && &tools::remove_dir($dir)) { &report::reject_report_web('intern','erase_file',{'file' => $file},$param->{'action'},$list,$param->{'user'}{'email'},$robot); &wwslog('err','do_reject: failed to erase %s', $file); &web_db_log({'parameters' => $in{'id'},