diff --git a/lib/ipc_us.c b/lib/ipc_us.c index bae1811..3549b9e 100644 --- a/lib/ipc_us.c +++ b/lib/ipc_us.c @@ -407,12 +407,20 @@ qb_ipcc_us_setup_connect(struct qb_ipcc_connection *c, { int32_t res; struct qb_ipc_connection_request request; +#ifdef QB_LINUX + int off = 0; + int on = 1; +#endif res = qb_ipcc_us_sock_connect(c->name, &c->setup.u.us.sock); if (res != 0) { return res; } +#ifdef QB_LINUX + setsockopt(c->setup.u.us.sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); +#endif + memset(&request, 0, sizeof(request)); request.hdr.id = QB_IPC_MSG_AUTHENTICATE; request.hdr.size = sizeof(request); @@ -423,6 +431,10 @@ qb_ipcc_us_setup_connect(struct qb_ipcc_connection *c, return res; } +#ifdef QB_LINUX + setsockopt(c->setup.u.us.sock, SOL_SOCKET, SO_PASSCRED, &off, sizeof(off)); +#endif + res = qb_ipc_us_recv(&c->setup, r, sizeof(struct qb_ipc_connection_response), -1);