if you use D-Bus on non-Linux Unix, please try new DBusSocket code

Simon McVittie <simon.mcvittie-ZGY8ohtN/[email protected]>
Newsgroups gmane.comp.freedesktop.dbus
Organization Collabora Ltd.
Message-ID <[email protected]>
On <https://bugs.freedesktop.org/show_bug.cgi?id=89444> we've been
working on fixing the distinction between file descriptors and sockets,
which are the same thing on Unix, but unfortunately not on Windows
(where a SOCKET is basically a uintptr_t, if done correctly).

The solution we're trying is to introduce an internal DBusSocket struct
containing an int (on Unix) or a SOCKET (on Windows), to force APIs to
distinguish between the native thing and the abstraction.

If you use D-Bus on non-Linux Unix platforms (*BSD, Solaris, etc.) it's
possible that this will cause compilation failures, if I missed code
paths that are not compiled on Linux. So, please try compiling, and
preferably testing, this branch on your favourite Unix platform:

    git clone -b dbussocket git://people.freedesktop.org/~smcv/dbus
    web: http://cgit.freedesktop.org/~smcv/dbus/log/?h=dbussocket

and report any problems on #89444, ideally with patches. The fix for any
compilation errors will probably be something quite simple, like
replacing "getsomesocketthing (s)" with "getsomesocketthing (s.fd)".

The intention is:

* non-Unix-specific code consistently uses DBusSocket (if the thing
  is definitely a socket) or DBusPollable (if it's an arbitrary
  pollable thing, i.e. a socket on Windows but any fd on Unix),
  and does not assume that either of those is an integer

* Unix-specific socket handling (dbus-sysdeps-*unix.c etc.) passes s.fd,
  which is an int, to platform APIs

* Unix-specific pollable handling may rely on the fact that DBusPollable
  is really an int

* for the moment, public APIs are still in terms of int, although
  we should probably add dbus_watch_get_windows_socket() eventually

-- 
Simon McVittie
Collabora Ltd. <http://www.collabora.com/>
_______________________________________________
dbus mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dbus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.