summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--content/fetch.c8
-rw-r--r--content/fetchers/curl.c14
2 files changed, 17 insertions, 5 deletions
diff --git a/content/fetch.c b/content/fetch.c
index e6b36f341..693ea1148 100644
--- a/content/fetch.c
+++ b/content/fetch.c
@@ -514,10 +514,12 @@ void fetch_poll(void)
if (!fetch_active)
return; /* No point polling, there's no fetch active. */
while (fetcher != NULL) {
- /* LOG(("Polling fetcher for %s",
- lwc_string_data(fetcher->scheme_name))); */
next_fetcher = fetcher->next_fetcher;
- fetcher->poll_fetcher(fetcher->scheme_name);
+ if (fetcher->poll_fetcher != NULL) {
+ /* LOG(("Polling fetcher for %s",
+ lwc_string_data(fetcher->scheme_name))); */
+ fetcher->poll_fetcher(fetcher->scheme_name);
+ }
fetcher = next_fetcher;
}
}
diff --git a/content/fetchers/curl.c b/content/fetchers/curl.c
index ca0341165..f4daa1ec0 100644
--- a/content/fetchers/curl.c
+++ b/content/fetchers/curl.c
@@ -60,6 +60,10 @@
*/
#include <desktop/browser.h>
+/* uncomment this to use scheduler based calling
+#define FETCHER_CURLL_SCHEDULED 1
+*/
+
/** SSL certificate info */
struct cert_info {
X509 *cert; /**< Pointer to certificate */
@@ -252,7 +256,11 @@ void fetch_curl_register(void)
fetch_curl_start,
fetch_curl_abort,
fetch_curl_free,
+#ifdef FETCHER_CURLL_SCHEDULED
+ NULL,
+#else
fetch_curl_poll,
+#endif
fetch_curl_finalise)) {
LOG(("Unable to register cURL fetcher for %s",
data->protocols[i]));
@@ -758,10 +766,12 @@ void fetch_curl_poll(lwc_string *scheme_ignored)
}
curl_msg = curl_multi_info_read(fetch_curl_multi, &queue);
}
-
+
+#ifdef FETCHER_CURLL_SCHEDULED
if (running != 0) {
- schedule(10, (schedule_callback_fn)fetch_curl_poll, fetch_curl_poll);
+ schedule(1, (schedule_callback_fn)fetch_curl_poll, fetch_curl_poll);
}
+#endif
}