]> git.wh0rd.org - tt-rss.git/blobdiff - include/functions.php
fetch_file_contents: set timeout when not using CURL
[tt-rss.git] / include / functions.php
index d6bd5fb731295b33efd720327c2565c2380253cc..f10c3a00b0015e650958f17c63d601b189064051 100755 (executable)
@@ -16,7 +16,9 @@
 
        libxml_disable_entity_loader(true);
 
-       mb_internal_encoding("UTF-8");
+       // separate test because this is included before sanity checks
+       if (function_exists("mb_internal_encoding")) mb_internal_encoding("UTF-8");
+
        date_default_timezone_set('UTC');
        if (defined('E_DEPRECATED')) {
                error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
                                }
                        }
 
+                       // TODO: should this support POST requests or not? idk
+
                        if (!$post_query && $timestamp) {
                                 $context = stream_context_create(array(
                                          'http' => array(
                                                        'method' => 'GET',
+                                                   'timeout' => $timeout ? $timeout : FILE_FETCH_TIMEOUT,
                                                        'protocol_version'=> 1.1,
                                                        'header' => "If-Modified-Since: ".gmdate("D, d M Y H:i:s \\G\\M\\T\r\n", $timestamp)
                                          )));
                                 $context = stream_context_create(array(
                                          'http' => array(
                                                        'method' => 'GET',
+                                                   'timeout' => $timeout ? $timeout : FILE_FETCH_TIMEOUT,
                                                        'protocol_version'=> 1.1
                                          )));
                        }
                return $csrf_token == $_SESSION['csrf_token'];
        }
 
-       function load_user_plugins($owner_uid) {
+       function load_user_plugins($owner_uid, $pluginhost = false) {
+
+               if (!$pluginhost) $pluginhost = PluginHost::getInstance();
+
                if ($owner_uid && SCHEMA_VERSION >= 100) {
                        $plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
 
-                       PluginHost::getInstance()->load($plugins, PluginHost::KIND_USER, $owner_uid);
+                       $pluginhost->load($plugins, PluginHost::KIND_USER, $owner_uid);
 
                        if (get_schema_version() > 100) {
-                               PluginHost::getInstance()->load_data();
+                               $pluginhost->load_data();
                        }
                }
        }
                                set_basic_feed_info($feed_id);
                        }
 
-                       return array("code" => 1);
+                       return array("code" => 1, "feed_id" => (int) $feed_id);
                } else {
-                       return array("code" => 0);
+                       return array("code" => 0, "feed_id" => (int) db_fetch_result($result, 0, "id"));
                }
        }