hp at redhat.com
Sun Sep 10 11:20:23 PDT 2006
For people working on the Windows port - I think it's important not to
take UNIX emulation too far. For example, the unix: addresses should
fail on Windows, i.e. don't try to emulate
dbus_(connect,listen)_unix_socket on Windows. Instead, a
Windows-specific appropriate mechanism should be used, whatever it is.
Maybe Windows always uses tcp: for now.
Essentially, any emulate-unix-on-windows hacks should stay internal and
not leak out into config files, bus addresses, or the public API.
The public functions with _unix in the name should always return an
error on Windows, they should not do emulation stuff.
One thing I think might help with this is a dbus-sysdeps-unix.h header
that has the stuff from dbus-sysdeps.h which is truly unix-specific,
like the unix socket functions. Then be sure this header is not included
on Windows - perhaps put a #error "not on windows" in there if it is.
I think in an ideal world, a fair bit of dbus-sysdeps.h is either in
dbus-sysdeps-unix.h or gets modified to be less unix-like, e.g.
returning a DBusError instead of setting errno, etc.
To start though, a few of the major items like unix sockets might make
sense in dbus-sysdeps-unix.h.
More information about the dbus