diff options
author | Andrew Dolgov <[email protected]> | 2006-08-20 11:27:25 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2006-08-20 11:27:25 +0100 |
commit | c798704b2901048e886966c6db4caed8d1b6130d (patch) | |
tree | b5d5cdef13ce7ed5d4487f156cd999803e1c8ecf | |
parent | 69ff793a6dc120732e1540fd20c504bd3e2a8113 (diff) |
new option: USE_CURL_FOR_ICONS (closes #101), add some CRs to error messages
-rw-r--r-- | config.php-dist | 3 | ||||
-rw-r--r-- | functions.php | 61 | ||||
-rw-r--r-- | sanity_check.php | 26 |
3 files changed, 59 insertions, 31 deletions
diff --git a/config.php-dist b/config.php-dist index 97e0e93ff..cf6b6afab 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 99cea3e6f..6ed06898b 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 ba738b9da..6f1a82ec9 100644 --- a/sanity_check.php +++ b/sanity_check.php @@ -3,7 +3,7 @@ if (!file_exists("config.php")) { print "<b>Fatal Error</b>: You forgot to copy - <b>config.php-dist</b> to <b>config.php</b> and edit it."; + <b>config.php-dist</b> to <b>config.php</b> and edit it.\n"; exit; } @@ -12,14 +12,14 @@ if (CONFIG_VERSION != EXPECTED_CONFIG_VERSION) { print "<b>Fatal Error</b>: Your configuration file has wrong version. Please copy new options from <b>config.php-dist</b> and - update CONFIG_VERSION directive."; + update CONFIG_VERSION directive.\n"; exit; } if (!defined('RSS_BACKEND_TYPE')) { print "<b>Fatal error</b>: RSS backend type is not defined (config variable <b>RSS_BACKEND_TYPE</b>) - please check your - configuration file."; + configuration file.\n"; exit; } @@ -27,7 +27,7 @@ print "<b>Fatal Error</b>: You forgot to place <a href=\"http://magpierss.sourceforge.net\">MagpieRSS</a> distribution in <b>magpierss/</b> - subdirectory of TT-RSS tree."; + subdirectory of TT-RSS tree.\n"; exit; } @@ -35,35 +35,41 @@ print "<b>Fatal Error</b>: You forgot to place <a href=\"http://simplepie.org\">SimplePie</a> distribution in <b>simplepie/</b> - subdirectory of TT-RSS tree."; + subdirectory of TT-RSS tree.\n"; exit; } if (RSS_BACKEND_TYPE != "simplepie" && RSS_BACKEND_TYPE != "magpie") { - print "<b>Fatal Error</b>: Invalid RSS_BACKEND_TYPE"; + print "<b>Fatal Error</b>: 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 "<b>Fatal Error</b>: XML Import/Export tools (<b>xml-export.php</b> and <b>xml-import.php</b>) 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 "<b>Fatal Error</b>: RSS backends other than magpie are not - supported now."; + supported now.\n"; exit; } if (SINGLE_USER_MODE && DAEMON_UPDATE_LOGIN_LIMIT > 0) { print "<b>Fatal Error</b>: 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 "<b>Fatal Error</b>: You have enabled USE_CURL_FOR_ICONS, but your PHP + doesn't seem to support CURL functions."; + exit; + } ?> |