mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-24 21:16:15 +01:00
gdbusaddress: Disable proxy support for D-Bus addresses
See the discussion in the bug report: with proxy support enabled, a proxy resolver is created. Doing that will load all the GIO modules, and typically at least one of them will try to use GDBus during initialisation, which will cause a deadlock. Using a TCP address with GDBusAddress is still supported, but accessing it over a proxy is not. Document this. Signed-off-by: Philip Withnall <withnall@endlessm.com> https://bugzilla.gnome.org/show_bug.cgi?id=792499
This commit is contained in:
parent
3ef83618d9
commit
4752d72a60
@ -66,6 +66,9 @@
|
|||||||
* like `unix:tmpdir=/tmp/my-app-name`. The exact format of addresses
|
* like `unix:tmpdir=/tmp/my-app-name`. The exact format of addresses
|
||||||
* is explained in detail in the
|
* is explained in detail in the
|
||||||
* [D-Bus specification](http://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
|
* [D-Bus specification](http://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
|
||||||
|
*
|
||||||
|
* TCP D-Bus connections are supported, but accessing them via a proxy is
|
||||||
|
* currently not supported.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static gchar *get_session_address_platform_specific (GError **error);
|
static gchar *get_session_address_platform_specific (GError **error);
|
||||||
@ -675,6 +678,13 @@ g_dbus_address_connect (const gchar *address_entry,
|
|||||||
|
|
||||||
g_assert (ret == NULL);
|
g_assert (ret == NULL);
|
||||||
client = g_socket_client_new ();
|
client = g_socket_client_new ();
|
||||||
|
|
||||||
|
/* Disable proxy support to prevent a deadlock on startup, since loading a
|
||||||
|
* proxy resolver causes the GIO modules to be loaded, and there will
|
||||||
|
* almost certainly be one of them which then tries to use GDBus.
|
||||||
|
* See: https://bugzilla.gnome.org/show_bug.cgi?id=792499 */
|
||||||
|
g_socket_client_set_enable_proxy (client, FALSE);
|
||||||
|
|
||||||
connection = g_socket_client_connect (client,
|
connection = g_socket_client_connect (client,
|
||||||
connectable,
|
connectable,
|
||||||
cancellable,
|
cancellable,
|
||||||
|
Loading…
Reference in New Issue
Block a user