LINUX.ORG.RU

libdbus: как обработать ошибку, возвращаемую удаленным методом?


0

1

Вызываю удаленный метод, у которого есть только входной поток данных, а выходного нет, т.е. этот метод не должен ничего возвращать, если не было ошибок. А вот в случае ошибок, то как указано в доке могут вернуться ошибки: org.freedesktop.PolicyKit.Error.NotAuthorized org.freedesktop.PolicyKit.Error.Busy org.freedesktop.PolicyKit.Error.Failed org.freedesktop.PolicyKit.Error.Cancelled

и т.д.

Так вот, после отработки удаленного метода вызывается моя pending_callbac_proc. В нее передается pending, из pending получаем message.Что дальше? Искать в message iterator, у которого тип будет string, и в нем соответственно будет строчка типа:«org.freedesktop.PolicyKit.Error.NotAuthorized»? Или результат на ошибки как-то иначе проверяется?

Отвечаю сам себе. Проверяем, есть ли ошибки: dbus_error_is_set(error) А вот, чтобы посмотреть что это за ошибки, оказывается надо тупо читать публичные поля из структуры error, например error->message, error->name.

И кто только выдумал этот dbus? Явно ушибленный на голову.

zloy_starper ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.