Commit 386f0f29 authored by Alexander Larsson's avatar Alexander Larsson

Fall back to SO_PEERCRED if credentials passing fails

Turns out libdbus doesn't send struct ucred credentials on linux, but
just relies on the SO_PEERCRED support. However, gdbus does send, and
expect to recieve a ucred credential. So, when libdbus talks to a
gdbus server the authentication fails to send the credentials.

We fix this by falling back to g_socket_get_credentials() if we don't
get any credential messages.
parent ec91ed00
......@@ -570,7 +570,9 @@ g_unix_connection_receive_credentials (GUnixConnection *connection,
goto out;
}
if (g_unix_credentials_message_is_supported ())
if (g_unix_credentials_message_is_supported () &&
/* Fall back on get_credentials if the other side didn't send the credentials */
nscm > 0)
{
if (nscm != 1)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment