答复: The dbus_message_has_interface method return false, my service can't start, please help!
刘铁罡
liutiegang at navchina.com
Mon Feb 27 07:08:39 UTC 2017
Dear all,
Attached is my session.conf file.
Thanks.
Tiegang
发件人: 刘铁罡
发送时间: 2017年2月27日 15:02
收件人: 'dbus at lists.freedesktop.org'
主题: The dbus_message_has_interface method return false, my service can't start, please help!
Dear all,
I am investigating on DBUS porting on QNX. DBus-daemon can be run now.
And then I download the dbus-example.c on http://www.matthew.ath.cx/misc/dbus. Compile and run dbus_example_g.
My running steps are:
1. #DBUS_VERSION=1 dbus-daemon --print-address --config-file=/home/test/dbus/share/dbus-1/session.conf --nofork &
2. #export DBUS_SESSION_BUS_ADDRESS=unix:path=/home/test/dbus/temp/dbus-WmaQFMvqxD,guid=7a9055f9b14393e3276108b958b3b792
3. #./dbus_example_g receive
In daemon process, I got the null connection, I debug into the source code, find the following clue, please see the red lines.
dbus_message_has_interface (DBusMessage *message,
const char *iface)
{
const char *msg_interface;
msg_interface = dbus_message_get_interface (message); // msg_interface is Org.freedesktop.dbus.local, but iface is org.freedesktop.dbus.peer
if (msg_interface == NULL)
{
if (iface == NULL)
{
return TRUE;
}
else
{
return FALSE;
}
}
if (iface == NULL)
{
return FALSE;
}
if (strcmp (msg_interface, iface) == 0) //org.freedesktop.dbus.local!=org.freedesktop.dbus.peer
return TRUE;
return FALSE;
}
So
static DBusHandlerResult
_dbus_connection_peer_filter_unlocked_no_update (DBusConnection *connection,
DBusMessage *message)
{
……
if (!dbus_message_has_interface (message, DBUS_INTERFACE_PEER))
{
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; //quit, so the following Ping and GetMachineId can’t be run!
}
……
if (dbus_message_is_method_call (message,
DBUS_INTERFACE_PEER,
"Ping"))
{
……
}
else if (dbus_message_is_method_call (message,
DBUS_INTERFACE_PEER,
"GetMachineId"))
{
……
}
Any help will be appreciated.
Thanks!
Tiegang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dbus/attachments/20170227/a450da39/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: session.conf
Type: application/octet-stream
Size: 5201 bytes
Desc: session.conf
URL: <https://lists.freedesktop.org/archives/dbus/attachments/20170227/a450da39/attachment-0001.obj>
More information about the dbus
mailing list