Pakiety mks, mksd i amavis-new
Radoslaw Zielinski
radek w karnet.pl
Wto, 17 Cze 2003, 21:15:05 CEST
Jacek Rzęsista <jasio w myslenice.pl.eu.org> [17-06-2003 18:19]:
> Dnia wto 17. czerwca 2003 17:13, Radoslaw Zielinski napisał:
[...]
>> A co oznaczają [0] i [1,2] i gdzie są wpisane?
> Niestety nie doszedłem ani nie wynalazłem tego. Będę jeszcze kombinował z tym
> ...
OK, /etc/amavisd.conf, opis też jest.
[...]
>> PS Do czego służy pakiet amavisd-exim? Zawiera /usr/sbin/amavisd.exim,
>> identyczny z /usr/sbin/amavisd z pakietu amavisd.
> To jest _STARY_ amavisd. Ten o którym ja piszę to amavisd-new - w zasadzie sam
> robi prawie za MTA :) postfix przekazuje mu maila on rozpakowuje, sprawdza na
> okoliczność virusa ewentualnie spamu i zwraca z powrotem do postfixa.
Blah... Stary, nowy, nowej generacji...
$ ls SPECS | grep amavis
amavis-ng.spec
amavis.spec
amavisd-new.spec
amavisd.spec
Dużo tego trochę. Triggery są zwalone -- zainstalowałem -ng i -new,
wyinstalowałem -ng i user/grupa amavis została usunięta.
Anyway, błąd znalazłem. Leży w amavisd, nie konofiguracji. Chłopaki
biorą listę @args, zastępują ciąg '{}/*' nazwami plików (nie robi tego
shell i nie zastępują samego '{}'), po czym wykonują exec("program",
"opcja", "plik1 plik2"). Bezmóżdże i brak konsekwencji.
Rozwiązania są dwa: wykonać system("program opcje argumenty"), lub
podzielić listę plików. Załączam patch, który robi to drugie (w dość
obskurny sposób; nie chciało mi się głębiej wnikać). Zamieniłem też []
i {} na # w wywołaniach s/// i m// -- te pierwsze ogłupiają kolorowanie
vima.
Nie chce mi się słać do nich patcha i tłumaczyć, o co chodzi. Zostawiam
to Tobie; miłej zabawy. ;-)
--
Radosław Zieliński <radek w karnet.pl>
[ GPG key: http://radek.karnet.pl/ ]
-------------- następna część ---------
--- /usr/sbin/amavisd Tue Jun 17 18:50:14 2003
+++ amavisd Tue Jun 17 21:13:43 2003
@@ -7224,7 +7224,7 @@
($scan_status,$output,$virusnames) = &$command(@_);
} else {
my(@args) = split(' ',$args);
- if (grep { m[^({}/)?\*$] } @args) { # must list each file individually
+ if (grep { m#^({}/)?\*$# } @args) { # must list each file individually
local(*DIR); my($f); my(@bare_fnames);
opendir(DIR, "$tempdir/parts")
or die "Can't open directory $tempdir/parts: $!";
@@ -7241,10 +7241,15 @@
}
closedir(DIR) or die "$av_name: Can't close directory: $!";
# replace * with bare file name
- for my $a (@args)
- { $a =~ s[^({}/)?\*$][ join(' ', map {$1.$_} @bare_fnames) ]e }
+# don't use $a: perldoc -f sort
+# for my $a (@args)
+# { $a =~ s#^({}/)?\*$# join(' ', map {$1.$_} @bare_fnames) #e }
+ @args = map {
+ s#^({}/)?\*$# join(' ', map {$1.$_} @bare_fnames) #e;
+ split / +/;
+ } @args;
}
- for (@args) { s[{}][$tempdir/parts]g } # replace {} with directory name
+ for (@args) { s#{}#$tempdir/parts#g } # replace {} with directory name
# NOTE: RAV does not like '</dev/null' in its command!
do_log(2, "Using $av_name: " . join(' ',$command, w args));
my($proc_fh) = run_command(undef, "&1", $command, @args);
-------------- następna część ---------
Załącznik, który nie był tekstem został usunięty...
Name: nie znany
Type: application/pgp-signature
Size: 189 bytes
Desc: nie znany
Url : /mailman/pipermail/pld-devel-pl/attachments/20040626/e55d2ff0/attachment.bin
Więcej informacji o liście dyskusyjnej pld-devel-pl