only stop inline feed updates with open_basedir enabled if there are any plugins that require CURL enabled

add plugin->flags() returning array with additional plugin information, currently only CURL requirement (optional)
This commit is contained in:
Andrew Dolgov 2016-01-26 11:45:47 +03:00
parent 29c92d7b08
commit 41245888f1
7 changed files with 51 additions and 5 deletions

View File

@ -166,9 +166,27 @@ class Feeds extends Handler_Protected {
$method_split = explode(":", $method);
if ($method == "ForceUpdate" && $feed > 0 && is_numeric($feed) && !ini_get("open_basedir")) {
if ($method == "ForceUpdate" && $feed > 0 && is_numeric($feed)) {
// Update the feed if required with some basic flood control
$any_needs_curl = false;
if (ini_get("open_basedir")) {
$pluginhost = PluginHost::getInstance();
foreach ($pluginhost->get_plugins() as $plugin) {
$flags = $plugin->flags();
if (isset($flags["needs_curl"]) && $flags["needs_curl"]) {
$any_needs_curl = true;
break;
}
}
}
//if ($_REQUEST["debug"]) print "<!-- any_needs_curl: $any_needs_curl -->";
if (!$any_needs_curl) {
$result = $this->dbh->query(
"SELECT cache_images," . SUBSTRING_FOR_DATE . "(last_updated,1,19) AS last_updated
FROM ttrss_feeds WHERE id = '$feed'");
@ -186,6 +204,7 @@ class Feeds extends Handler_Protected {
}
}
}
}
if ($method_split[0] == "MarkAllReadGR") {
catchup_feed($method_split[1], false);

View File

@ -15,6 +15,13 @@ class Plugin {
return array(1.0, "plugin", "No description", "No author", false);
}
function flags() {
/* associative array, possible keys:
needs_curl = boolean
*/
return array();
}
function get_js() {
return "";
}

View File

@ -9,6 +9,10 @@ class Af_Readability extends Plugin {
"fox");
}
function flags() {
return array("needs_curl" => true);
}
function save() {
//
}

View File

@ -8,6 +8,10 @@ class Af_RedditImgur extends Plugin {
"fox");
}
function flags() {
return array("needs_curl" => true);
}
function init($host) {
$this->host = $host;

View File

@ -8,6 +8,10 @@ class Af_Tumblr_1280 extends Plugin {
"fox");
}
function flags() {
return array("needs_curl" => true);
}
function init($host) {
$this->host = $host;

View File

@ -8,6 +8,10 @@ class Af_Unburn extends Plugin {
"fox");
}
function flags() {
return array("needs_curl" => true);
}
function init($host) {
$this->host = $host;

View File

@ -8,6 +8,10 @@ class Af_Zz_ImgSetSizes extends Plugin {
"fox");
}
function flags() {
return array("needs_curl" => true);
}
function init($host) {
$this->host = $host;