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:
parent
a2b5db0003
commit
712e3eb120
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user