File: symscanengine-autoupdate

package info (click to toggle)
mailscanner 4.79.11-2.2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 5,820 kB
  • ctags: 1,309
  • sloc: perl: 25,655; sh: 2,666; xml: 624; makefile: 242
file content (60 lines) | stat: -rwxr-xr-x 1,634 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/perl
 
use Sys::Syslog;
 
$PackageDir = shift || "/opt/SYMCScan";
 
$LockFile = shift || "/var/spool/MailScanner/incoming/Locks/symscanengineBusy.lock";
 
$LOCK_SH = 1;
$LOCK_EX = 2;
$LOCK_NB = 4;
$LOCK_UN = 8;
 
Sys::Syslog::openlog("SymScanEngine-autoupdate", 'pid, nowait', 'mail');
 
# Symantec updates are completely handled by their own system, there is no
# longer any command-line updater.
Sys::Syslog::syslog('info', "SymScanEngine autoupdating handled by Symantec system, no action taken");
Sys::Syslog::closelog();
exit 0;

#########################################################################
# NO CODE EXECUTED BEYOND THIS POINT
#########################################################################

BailOut("Installation dir \"$PackageDir\" does not exist!")
  unless $PackageDir ne "" && -d $PackageDir;
 
&LockSymantec();
 
# Need to add code to dymanically locate the java binary
# SuSE has some info in /etc/java, is this a standard location for info?
$JavaDir="/usr/lib/j2sdk1.4.2_03/jre/bin/";
 
$ENV{'PATH'} .= ":$JavaDir";
system("$PackageDir/bin/liveupdate.sh -VIRUSDEFS -URLUPDATES");
&UnlockSymantec();
Sys::Syslog::syslog('info', "SymScanEngine updated in $PackageDir");
Sys::Syslog::closelog();
exit 0;
 
sub BailOut {
	Sys::Syslog::syslog('err', @_);
	Sys::Syslog::closelog();
	warn "@_, $!";
	exit 1;
}
 
sub LockSymantec {
	open(LOCK, ">$LockFile") or return;
	flock(LOCK, $LOCK_EX);
	print LOCK "Locked for updating SymScanEngine patterns by $$\n";
}
 
sub UnlockSymantec {
	print LOCK "Unlocked after updating SymScanEngine patterns by $$\n";
	flock(LOCK, $LOCK_UN);
	close LOCK;
}