Author: bhofmann
Date: Mon Aug 23 09:04:25 2010
New Revision: 988036
URL: http://svn.apache.org/viewvc?rev=988036&view=rev
Log:
SHINDIG-1295: Patch from Michiel Eghuizen | CURLOPT_FOLLOWLOCATION doesn't work
with PHP safemode and openbasedir
Modified:
shindig/trunk/php/src/common/sample/BasicRemoteContentFetcher.php
Modified: shindig/trunk/php/src/common/sample/BasicRemoteContentFetcher.php
URL:
http://svn.apache.org/viewvc/shindig/trunk/php/src/common/sample/BasicRemoteContentFetcher.php?rev=988036&r1=988035&r2=988036&view=diff
==============================================================================
--- shindig/trunk/php/src/common/sample/BasicRemoteContentFetcher.php (original)
+++ shindig/trunk/php/src/common/sample/BasicRemoteContentFetcher.php Mon Aug
23 09:04:25 2010
@@ -250,7 +250,23 @@ class BasicRemoteContentFetcher extends
private function initCurlHandle($url) {
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
- curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 1);
+ // CURLOPT_FOLLOWLOCATION doesn't work with PHP safemode and openbasedir
turned on
+ $isOpenBasedir = false;
+ $isSafeMode = false;
+ try {
+ $isOpenBasedir = @ini_get('open_basedir');
+ $isSafeMode = @ini_get('safe_mode');
+ $isOpenBasedir = !empty($isOpenBasedir);
+ $isSafeMode = !empty($isSafeMode);
+ } catch (Exception $e) {
+ $isOpenBasedir = false;
+ $isSafeMode = false;
+ }
+ if(!$isOpenBasedir && !$isSafeMode) {
+ curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 1);
+ } else {
+ curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 0);
+ }
curl_setopt($handle, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($handle, CURLOPT_AUTOREFERER, 1);