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