Example #1
0
function outputStringAndCloseConnection($stringToOutput)
{
    @set_time_limit(3600);
    @ignore_user_abort(true);
    ini_set('zlib.output_compression', 'Off');
    if (ini_get('zlib.output_compression') == 1 || ini_get('zlib.output_compression') == 'On' || ini_get('zlib.output_compression') === true) {
        $isGzipped = false;
    } else {
        $isGzipped = true;
        $stringToOutput = gzencode($stringToOutput, 9, FORCE_GZIP);
    }
    @ob_start();
    echo $stringToOutput;
    $size = ob_get_length();
    if ($isGzipped) {
        header("Content-Encoding: gzip");
    }
    header("Content-Length: {$size}");
    header('Connection: close');
    @ob_end_flush();
    @ob_flush();
    @flush();
    if (function_exists('fastcgi_finish_request')) {
        fastcgi_finish_request();
    }
    if (Reg::get('currentRequest.runOffBrowserLoad') === 'true') {
        //this will be first ajax call after Panel loaded in browser
        runOffBrowserLoad();
    }
    $noNewTaskAfterNSecs = 25;
    if ($GLOBALS['ajaxPageTimeStart'] + $noNewTaskAfterNSecs > time()) {
        do {
            autoPrintToKeepAlive("keepAliveExecuteJobs");
            $status = executeJobs();
        } while ($status['requestInitiated'] > 0 && $status['requestPending'] > 0 && $GLOBALS['ajaxPageTimeStart'] + $noNewTaskAfterNSecs > time());
    }
    exit;
}
Example #2
0
    runOffBrowserLoad();
    exit;
} elseif (!empty($_POST['historyID']) && !empty($_POST['actionID'])) {
    $historyID = $_POST['historyID'];
    $actionID = $_POST['actionID'];
    //if(empty($historyID) || empty($actionID)){ echo 'invalidRequest'; exit; }
    //fix: add some security
    $isValid = DB::getExists("?:history", "historyID", "historyID = '" . $historyID . "' AND actionID = '" . $actionID . "'");
    if ($isValid) {
        if (empty($GLOBALS['userID'])) {
            //setting userID of the task to session, because when this file running by fsock, it will not have the same session IWP Admin Panel
            $userID = DB::getField("?:history", "userID", "historyID = '" . $historyID . "' AND actionID = '" . $actionID . "'");
            $GLOBALS['userID'] = $userID;
            $GLOBALS['offline'] = true;
        }
        echo 'executingRequest';
        executeRequest($historyID);
        $isExecuteJobs = true;
    }
}
if ($isExecuteJobs || $_REQUEST['executeJobs'] == 'true') {
    $noNewTaskAfterNSecs = 25;
    //do additional jobs
    if ($GLOBALS['executeFileTimeStart'] + $noNewTaskAfterNSecs > time()) {
        do {
            autoPrintToKeepAlive("keepAliveExecuteJobs");
            $status = executeJobs();
        } while ($status['requestInitiated'] > 0 && $status['requestPending'] > 0 && $GLOBALS['executeFileTimeStart'] + $noNewTaskAfterNSecs > time());
    }
    exit;
}