Manual:$wgAntivirusSetup

Details
Configuration for different virus scanners. This is an associative array of associative arrays: it contains one setup array per known scanner type. The entry is selected by $wgAntivirus, i.e. valid values for $wgAntivirus are the keys defined in this array.

The configuration array for each scanner contains the following keys: " ",,  ;
 * : the full command to call the virus scanner - %f will be replaced with the name of the file to scan. If not present, the filename will be appended to the command. Note that this must be overwritten if the scanner is not in the system path; in that case, please set  to the desired command with full path.
 * : a mapping of exit code to return codes of the  function in SpecialUpload.php.
 * An exit code mapped to  causes the function to consider the scan to be failed. This will pass the file if $wgAntivirusRequired is not set.
 * An exit code mapped to  causes the function to consider the file to have an usupported format, which is probably immune to viruses. This causes the file to pass.
 * An exit code mapped to  will cause the file to pass, meaning no virus was found.
 * All other codes (like ) will cause the function to report a virus.
 * You may use  as a key in the array to catch all exit codes not mapped otherwise.


 * : a perl regular expression to extract the meaningful part of the scanners output. The relevant part should be matched as group one.
 * If not defined or the pattern does not match, the full message is shown to the user.

Default value
$wgAntivirusSetup = array(    #setup for clamav     'clamav' => array ( 'command' => "clamscan --no-summary ", 'codemap'=> array (         "0"=>  AV_NO_VIRUS, #no virus          "1"=>  AV_VIRUS_FOUND, #virus found          "52"=> AV_SCAN_ABORTED, #unsupported file format (probably immune)          "*"=>  AV_SCAN_FAILED, #else scan failed        ), 'messagepattern'=> '/.*?:(.*)/sim', ),    #setup for f-prot     'f-prot' => array ( 'command' => "f-prot ", 'codemap'=> array (         "0"=> AV_NO_VIRUS, #no virus          "3"=> AV_VIRUS_FOUND, #virus found          "6"=> AV_VIRUS_FOUND, #virus found          "*"=> AV_SCAN_FAILED, #else scan failed        ), 'messagepattern'=> '/.*?Infection:(.*)$/m', ), );