Exemplo n.º 1
0
        return $module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel');
    }
}
// check if we are acting as proxy
$clusterProxyRequestTarget = ezSysinfoClusterManager::clusterProxyRequestTarget($Params);
if ($clusterProxyRequestTarget != '') {
    // this view is a mere proxy - it retrieves data from the real backend node and gives it back
    // generate (and store) auth token for the view we are going to query
    $token = ezSysinfoClusterManager::generateAuthToken($view);
    $nodeUrls = ezSysinfoClusterManager::clusterDataRetrievalUrls('slave', $module->currentRedirectionURI(), array('authtoken' => $token), $_GET);
    if (!isset($nodeUrls[$clusterProxyRequestTarget])) {
        eZDebug::writeWarning("Node {$clusterProxyRequestTarget} not in cluster");
        return $module->handleError(eZError::KERNEL_NOT_FOUND, 'kernel');
    }
    $url = $nodeUrls[$clusterProxyRequestTarget];
    if ($fp = ezSysinfoClusterManager::clusterDataFopen($url)) {
        ob_start();
        fpassthru($fp);
        $buffer = ob_get_contents();
        //$size = ob_get_length();
        ob_end_clean();
        $info = stream_get_meta_data($fp);
        // use the stream metadata ['wrapper_data'] to re-inject content-type
        $contentType = '';
        $meta = stream_get_meta_data($fp);
        foreach ($meta['wrapper_data'] as $header) {
            if (strpos($header, 'Content-Type: ') === 0) {
                $contentType = trim(substr($header, 14));
                header($header);
            }
        }