1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- #-
- # Copyright (c) 2011-2015 Joe Clarke <jclarke@cisco.com>
- # All rights reserved.
- #
- # Redistribution and use in source and binary forms, with or without
- # modification, are permitted provided that the following conditions
- # are met:
- # 1. Redistributions of source code must retain the above copyright
- # notice, this list of conditions and the following disclaimer.
- # 2. Redistributions in binary form must reproduce the above copyright
- # notice, this list of conditions and the following disclaimer in the
- # documentation and/or other materials provided with the distribution.
- #
- # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- # SUCH DAMAGE.
- #
- #
- include_once 'db.inc.php';
- include_once 'swreg.inc.php';
- require_once 'MDB2.php';
- require_once 'Log.php';
- $dsn = "mysql://$db_user:$db_pass@$db_host/$db_name";
- $options = array('result_buffering', false);
- $dbh = MDB2::factory($dsn, $options);
- if (PEAR::isError($dbh)) {
- die($dbh->getMessage());
- }
- $dbh->setFetchMode(MDB2_FETCHMODE_ASSOC);
- $logger = Log::singleton('file', LOGFILE, TOOL_NAME . ' : Verify Config');
- if ($logger === FALSE) {
- die("Failed to open logfile.\n");
- }
- $mask = Log::UPTO(LOG_LEVEL);
- $logger->setMask($mask);
- $config = $_GET['config'];
- $sn = $_GET['sn'];
- header('Content-type: text/plain');
- if (!isset($config) || !isset($sn)) {
- echo "Invalid request!\r\n";
- $logger->emerg("Invalid request from " . $_SERVER['REMOTE_ADDR'] . " config = $config, sn = $sn");
- exit(1);
- }
- $logger->debug("Received request from {$_SERVER['REMOTE_ADDR']} with config = $config and sn = $sn");
- $cmd = escapeshellcmd("/usr/bin/diff " . DEVICE_CONFIG_DIR . '/' . $config . " " . DEVICE_TMP_DIR . '/' . $config);
- exec($cmd, $output, $return_var);
- $status = 0;
- if (count($output) > 0 || $return_var != 0) {
- echo "ERROR\r\n";
- $logger->emerg("Failed to verify config $config for $sn ({$_SERVER['REMOTE_ADDR']})");
- } else {
- echo "SUCCESS\r\n";
- $status = 1;
- $logger->debug("Verified config $config for $sn ({$_SERVER['REMOTE_ADDR']})");
- @unlink(DEVICE_TMP_DIR . '/' . $config);
- }
- $sql = 'UPDATE DEVICE_MAP SET provisioned_status = ? WHERE serial_number = ?';
- $sth = $dbh->prepare($sql);
- if (PEAR::isError($sth)) {
- echo "ERROR: Failed to prepare query '$sql': " . $sth->getUserInfo() . "\r\n";
- $logger->crit("Failed to prepare query '$sql': " . $sth->getUserInfo());
- exit(1);
- }
- $res = $sth->execute(array($status, $sn));
- $sth->free();
- if (PEAR::isError($res)) {
- echo "ERROR: Failed to execute query '$sql' with parameters '$status, $sn': " . $res->getUserInfo() . "\r\n";
- $logger->crit("Failed to execute query '$sql' with parameters '$status, $sn': " . $res->getUserInfo());
- exit(1);
- }
- $dbh->disconnect();
- $logger->close();
- ?>
|