From 712e3eb1201315ded996b3f004eb4c613e2cecdd Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Apr 2012 20:05:42 +0200 Subject: 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. --- src/glib_compat.h | 12 ++++++++++++ src/input/curl_input_plugin.c | 17 +++++------------ 2 files changed, 17 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/glib_compat.h b/src/glib_compat.h index f35576fa3..330c9e779 100644 --- a/src/glib_compat.h +++ b/src/glib_compat.h @@ -97,4 +97,16 @@ g_set_error_literal(GError **err, GQuark domain, gint code, #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 diff --git a/src/input/curl_input_plugin.c b/src/input/curl_input_plugin.c index 88a5556d2..3f191141e 100644 --- a/src/input/curl_input_plugin.c +++ b/src/input/curl_input_plugin.c @@ -161,7 +161,7 @@ static struct { * The absolute time stamp when the timeout expires. This is * used in the GSource method check(). */ - GTimeVal absolute_timeout; + gint64 absolute_timeout; #endif } curl; @@ -551,12 +551,9 @@ input_curl_source_prepare(G_GNUC_UNUSED GSource *source, gint *timeout_r) long timeout2; CURLMcode mcode = curl_multi_timeout(curl.multi, &timeout2); if (mcode == CURLM_OK) { - if (timeout2 >= 0) { - g_source_get_current_time(source, - &curl.absolute_timeout); - g_time_val_add(&curl.absolute_timeout, - timeout2 * 1000); - } + if (timeout2 >= 0) + curl.absolute_timeout = g_source_get_time(source) + + timeout2 * 1000; if (timeout2 >= 0 && timeout2 < 10) /* 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 descriptor event */ - GTimeVal now; - 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)) + if (g_source_get_time(source) >= curl.absolute_timeout) return true; } #endif -- cgit v1.2.3