not possible to set archiver that works only on files and not on pipes
DaLiV
daliv.tyw at gmail.com
Thu Dec 22 21:35:26 CET 2016
amavisd archivers works only on piped in command line content
as amavisd have such construction:
sub run_command($$@) {
.....
my $msg = join(' ', $cmd, @args, "<$stdin_from", "2>$stderr_to");
.....
so not possible to configure behaviour for decompressors thar works only with real files and not with pipes
as example replacement for proprietary rar may be LGPL-ed unar archiver look at : unarchiver.c3.cx/formats
so would be nice in amavisd.conf write
@decoders = (
['rar', \&do_uncompress, ['unar -D'] ],
['cab', \&do_uncompress, ['unar -D'] ],
['zipx', \&do_uncompress, ['unar -D'] ],
['iso', \&do_uncompress, ['unar -D'] ],
['msi', \&do_uncompress, ['unar -D'] ],
.......
);
but that will not works
A:
possible implement /dirty hack/
sub run_command($$@) {
my($stdin_from, $stderr_to, $cmd, $piped, @args) = @_;
.....
my $msg = join(' ', $cmd, @args, "$piped$stdin_from", "2>$stderr_to");
.....
and replace all calls to "run_command" with new syntaxis ...
B:
or implement another way for that...
More information about the amavis-users
mailing list