|
|
@@ -11,11 +11,24 @@
|
|
|
%common
|
|
|
uvscan_update () {
|
|
|
# determine information
|
|
|
- uvscan_datadir="@l_prefix@/var/uvscan/data"
|
|
|
- uvscan_datfile=`@l_prefix@/bin/curl -s "$uvscan_dat" 2>/dev/null |\
|
|
|
- grep 'dat-[0-9][0-9]*\.tar' | sort | tail -1 |\
|
|
|
- sed -e 's;^.*\(dat-[0-9][0-9]*\.tar\).*$;\1;'`
|
|
|
+ i=0
|
|
|
+ while [ $i -lt 3 ]; do
|
|
|
+ uvscan_datfile=`@l_prefix@/bin/curl -s "${uvscan_dat}" 2>/dev/null |\
|
|
|
+ grep 'dat-[0-9][0-9]*\.tar' | sort | tail -1 |\
|
|
|
+ sed -e 's;^.*\(dat-[0-9][0-9]*\.tar\).*$;\1;'`
|
|
|
+ if [ ".${uvscan_datfile}" != . ]; then
|
|
|
+ break
|
|
|
+ else
|
|
|
+ sleep 10
|
|
|
+ fi
|
|
|
+ i=$(($i + 1))
|
|
|
+ done
|
|
|
+ if [ ".${uvscan_datfile}" = . ]; then
|
|
|
+ echo "rc:uvscan:ERROR: unable to determine latest DAT file version" 1>&2
|
|
|
+ return 1
|
|
|
+ fi
|
|
|
uvscan_tmpdir=`echo "${uvscan_datfile}" | sed -e 's;\.tar$;;'`
|
|
|
+ uvscan_datadir="@l_prefix@/var/uvscan/data"
|
|
|
|
|
|
# determine old (installed) and new (available) versions
|
|
|
uvscan_version_new=`echo "${uvscan_datfile}" | sed -e 's;^dat-;;' -e 's;\.tar$;;'`
|
|
|
@@ -29,8 +42,22 @@
|
|
|
umask 077
|
|
|
cd ${uvscan_datadir} || return 1
|
|
|
rm -f ${uvscan_datfile} >/dev/null 2>&1 || true
|
|
|
- @l_prefix@/bin/curl -s -o ${uvscan_datfile} \
|
|
|
- ${uvscan_dat}/${uvscan_datfile} || return 1
|
|
|
+ i=0
|
|
|
+ while [ $i -lt 3 ]; do
|
|
|
+ @l_prefix@/bin/curl -s -o ${uvscan_datfile} \
|
|
|
+ ${uvscan_dat}/${uvscan_datfile} || return 1
|
|
|
+ if [ $? -eq 0 ]; then
|
|
|
+ break
|
|
|
+ else
|
|
|
+ rm -f ${uvscan_datfile} >/dev/null 2>&1 || true
|
|
|
+ sleep 10
|
|
|
+ fi
|
|
|
+ i=$(($i + 1))
|
|
|
+ done
|
|
|
+ if [ ! -f ${uvscan_datfile} ]; then
|
|
|
+ echo "rc:uvscan:ERROR: unable to download latest DAT file" 1>&2
|
|
|
+ return 1
|
|
|
+ fi
|
|
|
rm -rf ${uvscan_tmpdir} >/dev/null 2>&1 || true
|
|
|
mkdir ${uvscan_tmpdir}
|
|
|
( cd ${uvscan_tmpdir} && \
|