summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2006-08-20 11:27:25 +0100
committerAndrew Dolgov <[email protected]>2006-08-20 11:27:25 +0100
commitc798704b2901048e886966c6db4caed8d1b6130d (patch)
treeb5d5cdef13ce7ed5d4487f156cd999803e1c8ecf
parent69ff793a6dc120732e1540fd20c504bd3e2a8113 (diff)
new option: USE_CURL_FOR_ICONS (closes #101), add some CRs to error messages
-rw-r--r--config.php-dist3
-rw-r--r--functions.php61
-rw-r--r--sanity_check.php26
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;
+ }
?>