mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-02-16 09:40:33 +01:00
fixes bug where sometimes objects were not unregistered from dbus
although their app had exited. As it turns out it was a missing implementation of the method _dbus_fd_set_close_on_exec() for windows. It's been tested with msvc2005, msvc2008, and mingw, and solves all the unregistering issues on many kde apps.
This commit is contained in:
parent
0411f9d632
commit
d4440ef7bb
1 changed files with 6 additions and 25 deletions
|
|
@ -275,31 +275,12 @@ _dbus_close_socket (int fd,
|
|||
void
|
||||
_dbus_fd_set_close_on_exec (int handle)
|
||||
{
|
||||
#ifdef ENABLE_DBUSSOCKET
|
||||
DBusSocket *s;
|
||||
if (handle < 0)
|
||||
return;
|
||||
|
||||
_dbus_lock_sockets();
|
||||
|
||||
_dbus_handle_to_socket_unlocked (handle, &s);
|
||||
s->close_on_exec = TRUE;
|
||||
|
||||
_dbus_unlock_sockets();
|
||||
#else
|
||||
/* TODO unic code.
|
||||
int val;
|
||||
|
||||
val = fcntl (fd, F_GETFD, 0);
|
||||
|
||||
if (val < 0)
|
||||
return;
|
||||
|
||||
val |= FD_CLOEXEC;
|
||||
|
||||
fcntl (fd, F_SETFD, val);
|
||||
*/
|
||||
#endif
|
||||
if ( !SetHandleInformation( (HANDLE) handle,
|
||||
HANDLE_FLAG_INHERIT | HANDLE_FLAG_PROTECT_FROM_CLOSE,
|
||||
0 /*disable both flags*/ ) )
|
||||
{
|
||||
_dbus_win_warn_win_error ("Disabling socket handle inheritance failed:", GetLastError());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue