dbus glib win32
zaryad_mail at adelphia.net
zaryad_mail at adelphia.net
Tue Dec 19 12:18:23 PST 2006
Hello folks,
I've built the latest windbus (0.94) with mingw, as well as the glib
bindings (0.72). The bindings are supposedly unsupported on win32 yet
after some tweaking, it builds. I made one change in
dbus-gmain.c->connection_setup_add_watch:
- channel = g_io_channel_unix_new ( dbus_watch_get_fd (watch));
+ channel = g_io_channel_win32_new_socket( dbus_watch_get_fd (watch));
Due to the former not being able to correctly disambiguate whether the
provided descriptor is a file or socket, subsequently returning a null
GIOChannel. Glib built for win32 has this function in giowin32.c, in
addition to the socket-specific implementation, so I chose to use the
socket-specific one just for testing. (since it is known that descriptor
is a wsa socket)
With this change, I observe the following:
Server test is able to connect to session bus, register an object,
request name and go into gmainloop.
Client test fails to dispatch a method call on the server, infact
monitoring the server process with DBUS_VERBOSE=1, it appears
that once gmainloop is invoked, no further changes occur even after a
client requests a method call. (not picking up data on the wire)
To determine whether this was fault of windbus, I tried Matthew
Johnson's java bindings, which worked ok.
Furthermore, java server object is functional to glib clients, as well
as java clients. However, glib server object does not work either with
java clients or glib clients.
From this I conclude that something is amiss in the glib server code,
for this I ask some of you to give me hints/pointers so I may better
spend my time finding the culprit.
(I presume that this may be a stall in the pull phase, somewhere the
socket code just faults and doesn't read anything off the wire, since
its clear windbus is indeed sending those requests. Java server code is
able to read those requests, but java code uses a threaded approach,
thus not exercising the same pathways as the glib dbus bindings)
I'm new to this and am determined to fix this, glib provides nice
bindings, IMO it would be nice if it ran on win32 as well.
Thanks alot for you help.
More information about the dbus
mailing list