LINUX.ORG.RU

Geoclue+dbus. Как подружить?


0

0

После релиза гаджима захотелось мне поиграться с git://anongit.freedesktop.org/git/geoclue

$ ./position-async-example Hostip
Using provider 'Hostip'
Asynchronous call made, going to main loop now...
Could not reference provider: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.Error getting position: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

При этом в dbus-monitor сыплется следующее:

signal sender=org.freedesktop.DBus -> dest=(null destination) serial=34 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.87"
string «»
string ":1.87"
method call sender=:1.87 -> dest=org.freedesktop.DBus serial=1 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=Hello
method call sender=:1.87 -> dest=org.freedesktop.DBus serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string «type='signal',sender='org.freedesktop.Geoclue.Providers.Hostip',path='/org/freedesktop/Geoclue/Providers/Hostip',interface='org.freedesktop.Geoclue.Position'»
method call sender=:1.87 -> dest=org.freedesktop.DBus serial=3 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string «type='signal',sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.freedesktop.Geoclue.Providers.Hostip'»
method call sender=:1.87 -> dest=org.freedesktop.DBus serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string «type='signal',sender='org.freedesktop.Geoclue.Providers.Hostip',path='/org/freedesktop/Geoclue/Providers/Hostip',interface='org.freedesktop.Geoclue'»
method call sender=:1.87 -> dest=org.freedesktop.DBus serial=6 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string «type='signal',sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.freedesktop.Geoclue.Providers.Hostip'»
method call sender=:1.87 -> dest=org.freedesktop.DBus serial=11 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
string «type='signal',sender='org.freedesktop.Geoclue.Providers.Hostip',path='/org/freedesktop/Geoclue/Providers/Hostip',interface='org.freedesktop.Geoclue'»
method call sender=:1.87 -> dest=org.freedesktop.DBus serial=12 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
string «type='signal',sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.freedesktop.Geoclue.Providers.Hostip'»
method call sender=:1.87 -> dest=org.freedesktop.DBus serial=13 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
string «type='signal',sender='org.freedesktop.Geoclue.Providers.Hostip',path='/org/freedesktop/Geoclue/Providers/Hostip',interface='org.freedesktop.Geoclue.Position'»
method call sender=:1.87 -> dest=org.freedesktop.DBus serial=14 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
string «type='signal',sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.freedesktop.Geoclue.Providers.Hostip'»
signal sender=org.freedesktop.DBus -> dest=(null destination) serial=35 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.87"
string ":1.87"
string «»


Аналогичная ситуация и с

$ qdbus org.freedesktop.Geoclue.Providers.Hostip /
Error: org.freedesktop.DBus.Error.NoReply
Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

Попытки решить эту проблему с помощью

cat /etc/dbus-1/session.d/org.freedesktop.Geoclue.Providers.Hostip.conf
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd«>
<busconfig>

<policy context=„default“>
<allow own=„org.freedesktop.Geoclue.Providers.Hostip“/>
</policy>

</busconfig>

ни к чему не привели. Добавление других параметров с allow результата не дали. Также как и изменение объектов policy.

Как написать правильный файл конфигурации?
Как проверить, что не врёт geoclue-hostip, говоря о том, что проблема именно в „security policies in the configuration file“?

/usr/libexec/geoclue-hostip

** (process:25807): WARNING **: GeoclueHostip was unable to register service org.freedesktop.Geoclue.Providers.Hostip: Connection »:1.31" is not allowed to own the service «org.freedesktop.Geoclue.Providers.Hostip» due to security policies in the configuration file
^C

★★★★★

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