From: Andrew Dolgov Date: Sun, 20 Aug 2006 10:27:25 +0000 (+0100) Subject: new option: USE_CURL_FOR_ICONS (closes #101), add some CRs to error messages X-Git-Tag: schema_freeze_for_1.2.2_(take_2)~10 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=c798704b2901048e886966c6db4caed8d1b6130d;p=tt-rss.git new option: USE_CURL_FOR_ICONS (closes #101), add some CRs to error messages --- diff --git a/config.php-dist b/config.php-dist index 97e0e93f..cf6b6afa 100644 --- a/config.php-dist +++ b/config.php-dist @@ -131,6 +131,9 @@ define('CHECK_FOR_NEW_VERSION', true); // Check for new versions of tt-rss when entering preferences. + define('USE_CURL_FOR_ICONS', true); + // Fetch favicons using CURL, useful if your PHP has disabled remote fopen() + define('CONFIG_VERSION', 4); // Expected config version. Please update this option in config.php // if necessary (after migrating all new options from this file). diff --git a/functions.php b/functions.php index 99cea3e6..6ed06898 100644 --- a/functions.php +++ b/functions.php @@ -213,32 +213,51 @@ $icon_file = ICONS_DIR . "/$feed.ico"; if (!file_exists($icon_file)) { - - error_reporting(0); - $r = fopen($icon_url, "r"); - error_reporting (DEFAULT_ERROR_LEVEL); - if ($r) { - $tmpfname = tempnam(TMP_DIRECTORY, "ttrssicon"); - - $t = fopen($tmpfname, "w"); - - while (!feof($r)) { - $buf = fread($r, 16384); - fwrite($t, $buf); - } - - fclose($r); - fclose($t); + if (USE_CURL_FOR_ICONS) { + //error_reporting(0); + $ch = curl_init($icon_url); + $fp = fopen($icon_file, "w"); - error_reporting(0); - if (!rename($tmpfname, $icon_file)) { - unlink($tmpfname); + if ($fp) { + curl_setopt($ch, CURLOPT_FILE, $fp); + curl_setopt($ch, CURLOPT_FILE, $fp); + + curl_exec($ch); + curl_close($ch); + fclose($fp); } - chmod($icon_file, 0644); - + //error_reporting (DEFAULT_ERROR_LEVEL); + + } else { + + error_reporting(0); + $r = fopen($icon_url, "r"); error_reporting (DEFAULT_ERROR_LEVEL); + + if ($r) { + $tmpfname = tempnam(TMP_DIRECTORY, "ttrssicon"); + + $t = fopen($tmpfname, "w"); + + while (!feof($r)) { + $buf = fread($r, 16384); + fwrite($t, $buf); + } + + fclose($r); + fclose($t); + + error_reporting(0); + if (!rename($tmpfname, $icon_file)) { + unlink($tmpfname); + } + + chmod($icon_file, 0644); + + error_reporting (DEFAULT_ERROR_LEVEL); + } } } diff --git a/sanity_check.php b/sanity_check.php index ba738b9d..6f1a82ec 100644 --- a/sanity_check.php +++ b/sanity_check.php @@ -3,7 +3,7 @@ if (!file_exists("config.php")) { print "Fatal Error: You forgot to copy - config.php-dist to config.php and edit it."; + config.php-dist to config.php and edit it.\n"; exit; } @@ -12,14 +12,14 @@ if (CONFIG_VERSION != EXPECTED_CONFIG_VERSION) { print "Fatal Error: Your configuration file has wrong version. Please copy new options from config.php-dist and - update CONFIG_VERSION directive."; + update CONFIG_VERSION directive.\n"; exit; } if (!defined('RSS_BACKEND_TYPE')) { print "Fatal error: RSS backend type is not defined (config variable RSS_BACKEND_TYPE) - please check your - configuration file."; + configuration file.\n"; exit; } @@ -27,7 +27,7 @@ print "Fatal Error: You forgot to place MagpieRSS distribution in magpierss/ - subdirectory of TT-RSS tree."; + subdirectory of TT-RSS tree.\n"; exit; } @@ -35,35 +35,41 @@ print "Fatal Error: You forgot to place SimplePie distribution in simplepie/ - subdirectory of TT-RSS tree."; + subdirectory of TT-RSS tree.\n"; exit; } if (RSS_BACKEND_TYPE != "simplepie" && RSS_BACKEND_TYPE != "magpie") { - print "Fatal Error: Invalid RSS_BACKEND_TYPE"; + print "Fatal Error: Invalid RSS_BACKEND_TYPE\n"; exit; } if (CONFIG_VERSION != EXPECTED_CONFIG_VERSION) { - return "config: your config file version is incorrect. See config.php-dist."; + return "config: your config file version is incorrect. See config.php-dist.\n"; } if (file_exists("xml-export.php") || file_exists("xml-import.php")) { print "Fatal Error: XML Import/Export tools (xml-export.php and xml-import.php) could be used maliciously. Please remove them - from your TT-RSS instance."; + from your TT-RSS instance.\n"; exit; } if (RSS_BACKEND_TYPE != "magpie") { print "Fatal Error: RSS backends other than magpie are not - supported now."; + supported now.\n"; exit; } if (SINGLE_USER_MODE && DAEMON_UPDATE_LOGIN_LIMIT > 0) { print "Fatal Error: Please set DAEMON_UPDATE_LOGIN_LIMIT - to 0 in single user mode."; + to 0 in single user mode.\n"; exit; } + + if (USE_CURL_FOR_ICONS && ! function_exists("curl_init")) { + print "Fatal Error: You have enabled USE_CURL_FOR_ICONS, but your PHP + doesn't seem to support CURL functions."; + exit; + } ?>