diff options
author | Chris Buechler <cmb@pfsense.org> | 2015-07-29 23:02:29 -0500 |
---|---|---|
committer | Chris Buechler <cmb@pfsense.org> | 2015-07-29 23:02:29 -0500 |
commit | edd4c038a262e029e631a391e90b64597f5b723e (patch) | |
tree | 4329ae46b161581976561f69a93f2d9ff90c4b6a /etc | |
parent | 33697d18572e8f3f320b0627101e663710fa3dba (diff) | |
download | pfsense-edd4c038a262e029e631a391e90b64597f5b723e.zip pfsense-edd4c038a262e029e631a391e90b64597f5b723e.tar.gz |
sync rc.firmware_auto with master
Diffstat (limited to 'etc')
-rwxr-xr-x | etc/rc.firmware_auto | 93 |
1 files changed, 40 insertions, 53 deletions
diff --git a/etc/rc.firmware_auto b/etc/rc.firmware_auto index be5da91..1e604a3 100755 --- a/etc/rc.firmware_auto +++ b/etc/rc.firmware_auto @@ -1,5 +1,9 @@ #!/bin/sh +# /etc/rc.firmware_auto +# Copyright (C) 2005-2015 Electric Sheep Fencing LLC +# Part of pfSense + # $Id$ FMBASEURL=$1 @@ -20,69 +24,52 @@ if [ $# -gt 3 ]; then HTTP_AUTH="basic:*:$3:$4" fi -#echo "Downloading $FMFILENAME from $FMBASEURL ..." | logger -p daemon.info -i -t AutoUpgrade -#/usr/bin/fetch -o /tmp/latest.tgz $FETCHFILENAME | logger -p daemon.info -i -t AutoUpgrade -#echo "Downloading $FMFILENAME.md5 from $FMBASEURL ..." | logger -p daemon.info -i -t AutoUpgrade -#/usr/bin/fetch -o /tmp/latest.tgz.md5 $FETCHFILENAME.md5 | logger -p daemon.info -i -t AutoUpgrade +if [ $# -gt 1 ]; then + echo "Downloading $FMFILENAME from $FMBASEURL ..." | logger -p daemon.info -i -t AutoUpgrade + /usr/bin/fetch -o /tmp/latest.tgz $FETCHFILENAME | logger -p daemon.info -i -t AutoUpgrade + echo "Downloading $FMFILENAME.sha256 from $FMBASEURL ..." | logger -p daemon.info -i -t AutoUpgrade + /usr/bin/fetch -o /tmp/latest.tgz.sha256 $FETCHFILENAME.sha256 | logger -p daemon.info -i -t AutoUpgrade +fi -PMD=`/bin/cat /tmp/latest.tgz.md5 | cut -d" " -f4 ` -MD=`/sbin/md5 /tmp/latest.tgz | cut -d" " -f4` +DLHASH=`/bin/cat /tmp/latest.tgz.sha256 | cut -d" " -f4 ` +FILEHASH=`/sbin/sha256 /tmp/latest.tgz | cut -d" " -f4` PLATFORM=`cat /etc/platform` -echo " Package MD5: ${PMD}" | logger -p daemon.info -i -t AutoUpgrade -echo "Downloaded MD5: ${MD}" | logger -p daemon.info -i -t AutoUpgrade +echo " Package sha256: ${DLHASH}" | logger -p daemon.info -i -t AutoUpgrade +echo "Downloaded sha256: ${FILEHASH}" | logger -p daemon.info -i -t AutoUpgrade -if [ "$PMD" = "" ]; then - echo "Package MD5 is null md5. Require proxy auth?" | logger -p daemon.info -i -t AutoUpgrade - exit 1 +if [ "$DLHASH" = "" ]; then + echo "Downloaded sha256 is null. Require proxy auth?" | logger -p daemon.info -i -t AutoUpgrade + exit 1 fi -if [ "$MD" = "" ]; then - echo "Downloaded MD5 is null md5. Require proxy auth?" | logger -p daemon.info -i -t AutoUpgrade - exit 1 +if [ "$FILEHASH" = "" ]; then + echo "Downloaded file's sha256 is null." | logger -p daemon.info -i -t AutoUpgrade + exit 1 fi -if [ "$PMD" = "$MD" ]; then - echo "MD5's match." | logger -p daemon.info -i -t AutoUpgrade - echo "Beginning ${product} upgrade." | wall - if [ "$PLATFORM" = "net45xx" ]; then - /usr/local/bin/php /etc/rc.conf_mount_rw - fi - if [ "$PLATFORM" = "wrap" ]; then - /usr/local/bin/php /etc/rc.conf_mount_rw - fi - if [ "$PLATFORM" = "nanobsd" ]; then - /usr/local/bin/php /etc/rc.conf_mount_rw - fi - if [ -r "/tmp/custom.tgz" ]; then - sh /etc/rc.firmware pfSenseupgrade /tmp/latest.tgz /tmp/custom.tgz - else - if [ "$PLATFORM" = "nanobsd" ]; then - sh /etc/rc.firmware pfSenseNanoBSDupgrade /tmp/latest.tgz - else - sh /etc/rc.firmware pfSenseupgrade /tmp/latest.tgz - fi - fi - if [ "$PLATFORM" = "wrap" ]; then - /bin/sync - sleep 5 - /usr/local/bin/php /etc/rc.conf_mount_ro - if [ -e /etc/init_bootloader.sh ]; then - sh /etc/init_bootloader.sh - fi - fi - if [ "$PLATFORM" = "net45xx" ]; then - /bin/sync - sleep 5 - /usr/local/bin/php /etc/rc.conf_mount_ro - if [ -e /etc/init_bootloader.sh ]; then - sh /etc/init_bootloader.sh - fi - fi - exit 0 +if [ "$DLHASH" = "$FILEHASH" ]; then + echo "sha256 hashes match." | logger -p daemon.info -i -t AutoUpgrade + echo "Beginning ${product} upgrade." | wall + if [ "$PLATFORM" = "net45xx" ]; then + /usr/local/bin/php /etc/rc.conf_mount_rw + fi + if [ "$PLATFORM" = "nanobsd" ]; then + /usr/local/bin/php /etc/rc.conf_mount_rw + fi + if [ -r "/tmp/custom.tgz" ]; then + sh /etc/rc.firmware pfSenseupgrade /tmp/latest.tgz /tmp/custom.tgz + else + if [ "$PLATFORM" = "nanobsd" ]; then + sh /etc/rc.firmware pfSenseNanoBSDupgrade /tmp/latest.tgz + else + sh /etc/rc.firmware pfSenseupgrade /tmp/latest.tgz + fi + fi + exit 0 fi -echo "MD5's do not match. Upgrade aborted." | logger -p daemon.info -i -t AutoUpgrade +echo "sha256 hashes do not match. Upgrade aborted." | logger -p daemon.info -i -t AutoUpgrade rm /tmp/latest* exit 1 |