win32 patch dbus_watch_get_handle patch
Ralf Habacker
ralf.habacker at freenet.de
Sat Jun 16 11:18:48 PDT 2007
Havoc Pennington schrieb:
> Hi,
>
> Ralf Habacker wrote:
>> Any problems with this patch ?
>>
>
> I had a bunch of comments in
> https://bugs.freedesktop.org/show_bug.cgi?id=9334 that Peter
> mentioned, those all remain it looks like.
> - there should not be any dbus-specific fd-thingy, only sockets or
> HANDLE
> - internal functions should be in internal headers and
> underscore-prefixed, not in public headers with #ifdef
> DBUS_COMPILATION
> - dbus_watch_get_fd() should probably return -1 on Windows
> (i.e. the DBusWatch API should work like connection_get_unix_fd
> and connection_get_socket, watch_get_fd does not have
> unix in the name for historical reasons but should work like
> it did)
>
> Once the API is correct, I think you'll find that dbus-mainloop.c
> breaks on Windows, because in there we are relying on the broken unix
> emulation hack of an internal "file descriptor" object.
> dbus-mainloop.c is really a part of the bus daemon, not libdbus, and
> thus can't use weird internal fake descriptors.
>
> The solution to this is to change the abstraction boundary in
> dbus-mainloop.c so it does not have to deal with the socket/handle/fd
> directly but can delegate doing so to the sysdeps-win.c and
> sysdeps-unix.c files. One way to think of this is that _dbus_poll
> should probably be in sysdeps-unix.h instead of pretending to be a
> cross-platform API.
>
I brought this issue to attention again because it is still in
dbus-win.patch and waits for a solution. Maybe someone has time for
this. :-)
Ralf
More information about the dbus
mailing list