Skip to content

Create default collection after DBus.Error.UnknownObject

Slava requested to merge ptrNine/libsecret:fork into master

Some Secret Service API backend implementations (like keepassxc) throws UnknownObject (instead of UnknownMethod as gnome-keyring do) after creating an item in the non-existent /org/freedesktop/secrets/aliases/default.

This patch add handling of UnknownObject to create default collection after failed creation of an item.

Example of DBus errors with SearchItems (in this case it throws the same errors as CreateItem):

gnome-keyring:

gdbus call --session --dest org.freedesktop.secrets --object-path /org/freedesktop/secrets/aliases/default --method org.freedesktop.Secret.Collection.SearchItems '{}'
Error: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.Secret.Collection” on object at path /org/freedesktop/secrets/collection/keyring

keepassxc:

gdbus call --session --dest org.freedesktop.secrets --object-path /org/freedesktop/secrets/aliases/default --method org.freedesktop.Secret.Collection.SearchItems '{}'
Error: GDBus.Error:org.freedesktop.DBus.Error.UnknownObject: No such object path '/org/freedesktop/secrets/aliases/default'

Merge request reports