Skip to content

Commit 88f19bf

Browse files
cynthiajianga-maurice
authored andcommitted
[Auth][linux] provide better log when libsecret is not installed.
PiperOrigin-RevId: 265770347
1 parent 6b12033 commit 88f19bf

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

app/src/secure/user_secure_linux_internal.cc

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
#include <iostream>
2020

21+
#include "app/src/log.h"
2122
#include "app/src/secure/user_secure_data_handle.h"
2223

2324
namespace firebase {
@@ -69,6 +70,8 @@ std::string UserSecureLinuxInternal::LoadUserData(const std::string& app_name) {
6970
/* value2= */ domain_.c_str(), nullptr);
7071
if (error) {
7172
g_error_free(error);
73+
LogWarning("Secret lookup failed, please make sure libsecret is "
74+
"installed.");
7275
return empty_str;
7376
}
7477

@@ -86,34 +89,51 @@ void UserSecureLinuxInternal::SaveUserData(const std::string& app_name,
8689
if (key_namespace_.length() <= 0) {
8790
return;
8891
}
92+
GError* error = nullptr;
8993
secret_password_store_sync(
9094
&storage_schema_, SECRET_COLLECTION_DEFAULT, /* label= */ "UserSecure",
9195
/* password= */ user_data.c_str(), /* cancellable= */ nullptr,
92-
/* error= */ nullptr, /* key1= */ kAppNameKey,
96+
/* error= */ &error, /* key1= */ kAppNameKey,
9397
/* value1= */ app_name.c_str(),
9498
/* key2= */ kStorageDomainKey, /* value2= */ domain_.c_str(), nullptr);
99+
100+
if (error) {
101+
g_error_free(error);
102+
LogWarning("Secret store failed, please make sure libsecret is installed.");
103+
}
95104
}
96105

97106
void UserSecureLinuxInternal::DeleteUserData(const std::string& app_name) {
98107
if (key_namespace_.length() <= 0) {
99108
return;
100109
}
110+
GError* error = nullptr;
101111
secret_password_clear_sync(&storage_schema_,
102-
/* cancellable= */ nullptr, /* error= */ nullptr,
112+
/* cancellable= */ nullptr, /* error= */ &error,
103113
/* key1= */ kAppNameKey,
104114
/* value1= */ app_name.c_str(),
105115
/* key2= */ kStorageDomainKey,
106116
/* value2= */ domain_.c_str(), nullptr);
117+
118+
if (error) {
119+
g_error_free(error);
120+
LogWarning("Secret clear failed, please make sure libsecret is installed.");
121+
}
107122
}
108123

109124
void UserSecureLinuxInternal::DeleteAllData() {
110125
if (key_namespace_.length() <= 0) {
111126
return;
112127
}
128+
GError* error = nullptr;
113129
secret_password_clear_sync(&storage_schema_, /* cancellable= */ nullptr,
114-
/* error= */ nullptr,
130+
/* error= */ &error,
115131
/* key2= */ kStorageDomainKey,
116132
/* value2= */ domain_.c_str(), nullptr);
133+
if (error) {
134+
g_error_free(error);
135+
LogWarning("Secret clear failed, please make sure libsecret is installed.");
136+
}
117137
}
118138

119139
} // namespace secure

0 commit comments

Comments
 (0)