summaryrefslogtreecommitdiff
path: root/libpurple/purplecredentialprovider.c
diff options
context:
space:
mode:
authorGary Kramlich <grim@reaperworld.com>2021-03-22 04:08:31 -0500
committerGary Kramlich <grim@reaperworld.com>2021-03-22 04:08:31 -0500
commit2d56ba3232fe073ac944fd86c5f4c9e612098bed (patch)
tree1b8b66b995982ec63e28b294bb615bce4405d0cb /libpurple/purplecredentialprovider.c
parenteb0f74ae94350da27fcc2b426754336d63e90cad (diff)
downloadpidgin-2d56ba3232fe073ac944fd86c5f4c9e612098bed.tar.gz
Port the KWallet Keyring to the new CredentialProvider API.
Testing Done: * connected account with wallet locked, verified that we weren't prompted for a password until the wallet was unlocked. * connected account, didn't save password, made sure it connected and wasn't stored in kwalletmanager5 * connected account, saved password, made sure it connected and verified the password was stored in kwalletmanager5 * reconnected account, made sure the account connected without prompting * reopened pidgin, made sure the account connected without prompting. * disconnected pidgin from kwalletmanager5, re-connected account, verified it reconnected via debug and kwalletmanager5 * force closed the wallet in kwalletmanager5, re-connected account, unlocked wallet, verified no password prompts and that the account connected. * removed the account and verified the password was removed from kwalletmanager5 Bugs closed: PIDGIN-17488 Reviewed at https://reviews.imfreedom.org/r/575/
Diffstat (limited to 'libpurple/purplecredentialprovider.c')
-rw-r--r--libpurple/purplecredentialprovider.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/libpurple/purplecredentialprovider.c b/libpurple/purplecredentialprovider.c
index 6ae25240be..b02cbd8f01 100644
--- a/libpurple/purplecredentialprovider.c
+++ b/libpurple/purplecredentialprovider.c
@@ -18,6 +18,8 @@
#include "purplecredentialprovider.h"
+#include "purpleprivate.h"
+
typedef struct {
gchar *id;
gchar *name;
@@ -204,6 +206,29 @@ purple_credential_provider_class_init(PurpleCredentialProviderClass *klass) {
}
/******************************************************************************
+ * Private API
+ *****************************************************************************/
+void
+purple_credential_provider_activate(PurpleCredentialProvider *provider) {
+ PurpleCredentialProviderClass *klass = NULL;
+
+ klass = PURPLE_CREDENTIAL_PROVIDER_GET_CLASS(provider);
+ if(klass && klass->activate) {
+ klass->activate(provider);
+ }
+}
+
+void
+purple_credential_provider_deactivate(PurpleCredentialProvider *provider) {
+ PurpleCredentialProviderClass *klass = NULL;
+
+ klass = PURPLE_CREDENTIAL_PROVIDER_GET_CLASS(provider);
+ if(klass && klass->deactivate) {
+ klass->deactivate(provider);
+ }
+}
+
+/******************************************************************************
* Public API
*****************************************************************************/
const gchar *