diff options
author | Philip Withnall <pwithnall@endlessos.org> | 2023-04-26 12:53:37 +0100 |
---|---|---|
committer | Philip Withnall <pwithnall@endlessos.org> | 2023-04-27 12:23:25 +0100 |
commit | e73c5ed5e1754205122a7f17838525052fc83e84 (patch) | |
tree | 76027ef4f8d53a6261a13e3f1a33845c3dd76f1e | |
parent | 1c4384aec58cae002817cc55651fcf32b556143e (diff) | |
download | glib-e73c5ed5e1754205122a7f17838525052fc83e84.tar.gz |
gresolver: Set timeout on default resolver to 30s
The default for the class is still to have no timeout, but it seems more
practical for most use cases to set a non-infinite timeout on the
default resolver.
If applications have a more specific use case, they can change the
timeout or replace the default resolver.
See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3397#note_1731387
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-rw-r--r-- | gio/gresolver.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gio/gresolver.c b/gio/gresolver.c index ac6fa4f7a..676f1e271 100644 --- a/gio/gresolver.c +++ b/gio/gresolver.c @@ -55,6 +55,10 @@ * #GNetworkAddress and #GNetworkService provide wrappers around * #GResolver functionality that also implement #GSocketConnectable, * making it easy to connect to a remote host/service. + * + * The default resolver (see g_resolver_get_default()) has a timeout of 30s set + * on it since GLib 2.78. Earlier versions of GLib did not support resolver + * timeouts. */ typedef enum { @@ -299,7 +303,9 @@ g_resolver_get_default (void) G_LOCK (default_resolver); if (!default_resolver) - default_resolver = g_object_new (G_TYPE_THREADED_RESOLVER, NULL); + default_resolver = g_object_new (G_TYPE_THREADED_RESOLVER, + "timeout", 30000, + NULL); ret = g_object_ref (default_resolver); G_UNLOCK (default_resolver); |