diff options
Diffstat (limited to 'libsecret/secret-backend.c')
-rw-r--r-- | libsecret/secret-backend.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/libsecret/secret-backend.c b/libsecret/secret-backend.c index baa2e9a..30e3abb 100644 --- a/libsecret/secret-backend.c +++ b/libsecret/secret-backend.c @@ -149,17 +149,24 @@ backend_get_impl_type (void) GIOExtension *e; GIOExtensionPoint *ep; - envvar = g_getenv ("SECRET_BACKEND"); - if (envvar == NULL || *envvar == '\0') - extension_name = "service"; - else - extension_name = envvar; - g_type_ensure (secret_service_get_type ()); #ifdef WITH_GCRYPT g_type_ensure (secret_file_backend_get_type ()); #endif +#ifdef WITH_GCRYPT + if (g_file_test ("/.flatpak-info", G_FILE_TEST_EXISTS)) + extension_name = "file"; + else +#endif + { + envvar = g_getenv ("SECRET_BACKEND"); + if (envvar == NULL || *envvar == '\0') + extension_name = "service"; + else + extension_name = envvar; + } + ep = g_io_extension_point_lookup (SECRET_BACKEND_EXTENSION_POINT_NAME); e = g_io_extension_point_get_extension_by_name (ep, extension_name); if (e == NULL) { |