From 5d06dbf97454ffde02045af8c1ef7e721f02280b Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Sun, 9 Oct 2011 17:22:57 +0000 Subject: prevent odd curl non completion behaviour svn path=/trunk/netsurf/; revision=13024 --- content/fetch.c | 8 +++++--- content/fetchers/curl.c | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) (limited to 'content') 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 +/* 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 } -- cgit v1.2.3