2013-08-21 1 views
0

Имеет ли интерфейс <none> в gdbus-monitor выход специального значения?gdbus-monitor - интерфейс `<none>`

Что API вызова требуется создать такое сообщение, используя GDbus (g_dbus_connection_register_object не позволяет передавать NULL как GDBusInterfaceInfo * и что, кажется, только зарегистрировать объект в пути)

, связанные с: dbus - register object to remote on interface NULL

ответ

1

Глядя в dbus-monitor «s source code показывает, что она встречается, как только DBUS_EXPORT const char * dbus_message_get_interface ( DBusMessage * message) возвращается NULL (который действует !, but not according to the spec which requires minimum one . and two name chunks!!EDIT: noteable исключения составляют вызовы методов, которые не повторно введите поле интерфейса сообщения, которое должно быть установлено http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-types).


g_dbus_message_new_method_call (...) позволяет interface_ быть пустым. Но это еще разрешает половину проблем (отправитель). Метод приемника, похоже, не существует для interface_ s, являющегося NULL.


Оказывается, это ошибка, я сделал исследование исходного кода и подал ошибку (включая исправление) https://bugzilla.gnome.org/show_bug.cgi?id=706675

0

клиента должен знать имя интерфейса при подключении g_dbus_connection_signal_subscribe к любому сигналу иначе он будет слушать для всех интерфейсов, следовательно, неэффективны. Интерфейс необходим для привязки методов и сигналов в едином объекте, указанном в XML-файле introspection сервера.

+0

a) этот вопрос старше 1,5 лет, почему ответьте сейчас б) ответ, который не решает и не объясняет основную причину. – drahnr

Смежные вопросы