Tobias Ellinghaus <me@...> writes:
> 
> Reading the libsecret docs I couldn't find any way to tell it to create a 
non-
> session collection. But that seems to be in line with the rest of that 
> library/system, it is hardly documented at all. It's also not obvious to me 
> how to actually configure the backend used to store the secrets passed to 
the 
> service.
> 
> So if you found a way to make the collection permanent I am interested. If 
> your patch is merely renaming the collection to "Login" then we can't 
accept 
> that patch as it wouldn't fix anything.
> 
> Tobias

Hi Tobias,

Indeed, the libsecret documentation isn't detailed enough and I needed some 
guesswork and trial and error to find a solution. It works but I am still not 
100% sure that this is the way to go.

Anyway, the "Login" collection unlocks automatically and most applications 
(like Google Chrome, etc) store their passwords in this place. I did try to 
make a new collection using libsecret but it didn't work. We would need to 
password protect this collection (or leave passwords un-encrypted) so some 
GUI work would be involved. "Login" is already there and it does all the work 
for us :-)

What happens in backend_libsecret.c's dt_pw_storage_libsecret_new() function? 
It first checks if a "darktable" collection already exists by iterating over 
existing collections and it uses g_strcmp0 to compare each label with 
"darktable" (line 87). The surprise is that this function returns 0 when both 
strings are equal but the if-statement expects TRUE when they are equal. As a 
result the first non-darktable collection is selected from the list. This 
happens to be the "session" collection (it has no label). And now we are 
storing all credentials in "session", thinking they go to "darktable".

I added a constant for the "Login" string and changed the logic for finding 
the collection. I use g_list_foreach with a callback to iterate over the 
collections list because this seems to be better in line with GLib standards 
and it doesn't rely on the underlying struct details.

I'll try to get the patch to you somehow.

___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org

Reply via email to