예제 #1
0
function upgradefmFirewallSchema($module_name)
{
    global $fmdb;
    /** Include module variables */
    @(include dirname(__FILE__) . '/variables.inc.php');
    /** Get current version */
    $running_version = getOption('version', 0, $module_name);
    /** Checks to support older versions (ie n-3 upgrade scenarios */
    $success = version_compare($running_version, '1.0-rc1', '<') ? upgradefmFirewall_01006($__FM_CONFIG, $running_version) : true;
    if (!$success) {
        return $fmdb->last_error;
    }
    setOption('client_version', $__FM_CONFIG['fmFirewall']['client_version'], 'auto', false, 0, 'fmFirewall');
    return true;
}
예제 #2
0
/** 1.1.1 */
function upgradefmFirewall_0111($__FM_CONFIG, $running_version)
{
    global $fmdb, $module_name;
    $success = version_compare($running_version, '1.0-rc1', '<') ? upgradefmFirewall_01006($__FM_CONFIG, $running_version) : true;
    if (!$success) {
        return false;
    }
    $table[] = "ALTER TABLE `fm_{$__FM_CONFIG['fmFirewall']['prefix']}servers` DROP INDEX server_serial_no, ADD UNIQUE `idx_server_serial_no` (`server_serial_no`)";
    $table[] = "ALTER TABLE `fm_{$__FM_CONFIG['fmFirewall']['prefix']}policies` ADD INDEX `idx_policy_account_id` (`account_id`)";
    $table[] = "ALTER TABLE `fm_{$__FM_CONFIG['fmFirewall']['prefix']}policies` ADD INDEX `idx_policy_status` (`policy_status`)";
    $inserts = $updates = null;
    /** Create table schema */
    if (count($table) && $table[0]) {
        foreach ($table as $schema) {
            $fmdb->query($schema);
            if (!$fmdb->result || $fmdb->sql_errors) {
                return false;
            }
        }
    }
    if (count($inserts) && $inserts[0]) {
        foreach ($inserts as $schema) {
            $fmdb->query($schema);
            if (!$fmdb->result || $fmdb->sql_errors) {
                return false;
            }
        }
    }
    if (count($updates) && $updates[0]) {
        foreach ($updates as $schema) {
            $fmdb->query($schema);
            if (!$fmdb->result || $fmdb->sql_errors) {
                return false;
            }
        }
    }
    if (!setOption('fmFirewall_client_version', $__FM_CONFIG['fmFirewall']['client_version'], 'auto', false)) {
        return false;
    }
    setOption('version', '1.1.1', 'auto', false, 0, $module_name);
    return true;
}