input/curl: use g_source_get_time()

g_source_get_current_time() is deprecated since GLib 2.28.  This patch
adds a compatibility wrapper for older GLib versions to glib_compat.h.
This commit is contained in:
Max Kellermann 2012-04-04 20:05:42 +02:00
parent a2b5db0003
commit 712e3eb120
2 changed files with 17 additions and 12 deletions

View File

@ -97,4 +97,16 @@ g_set_error_literal(GError **err, GQuark domain, gint code,
#endif #endif
#if !GLIB_CHECK_VERSION(2,28,0)
static inline gint64
g_source_get_time(GSource *source)
{
GTimeVal tv;
g_source_get_current_time(source, &tv);
return tv.tv_sec * 1000000 + tv.tv_usec;
}
#endif
#endif #endif

View File

@ -161,7 +161,7 @@ static struct {
* The absolute time stamp when the timeout expires. This is * The absolute time stamp when the timeout expires. This is
* used in the GSource method check(). * used in the GSource method check().
*/ */
GTimeVal absolute_timeout; gint64 absolute_timeout;
#endif #endif
} curl; } curl;
@ -551,12 +551,9 @@ input_curl_source_prepare(G_GNUC_UNUSED GSource *source, gint *timeout_r)
long timeout2; long timeout2;
CURLMcode mcode = curl_multi_timeout(curl.multi, &timeout2); CURLMcode mcode = curl_multi_timeout(curl.multi, &timeout2);
if (mcode == CURLM_OK) { if (mcode == CURLM_OK) {
if (timeout2 >= 0) { if (timeout2 >= 0)
g_source_get_current_time(source, curl.absolute_timeout = g_source_get_time(source)
&curl.absolute_timeout); + timeout2 * 1000;
g_time_val_add(&curl.absolute_timeout,
timeout2 * 1000);
}
if (timeout2 >= 0 && timeout2 < 10) if (timeout2 >= 0 && timeout2 < 10)
/* CURL 7.21.1 likes to report "timeout=0", /* CURL 7.21.1 likes to report "timeout=0",
@ -590,11 +587,7 @@ input_curl_source_check(G_GNUC_UNUSED GSource *source)
curl_multi_perform(), even if there was no file curl_multi_perform(), even if there was no file
descriptor event */ descriptor event */
GTimeVal now; if (g_source_get_time(source) >= curl.absolute_timeout)
g_source_get_current_time(source, &now);
if (now.tv_sec > curl.absolute_timeout.tv_sec ||
(now.tv_sec == curl.absolute_timeout.tv_sec &&
now.tv_usec >= curl.absolute_timeout.tv_usec))
return true; return true;
} }
#endif #endif