diff options
author | Gary Kramlich <grim@reaperworld.com> | 2021-03-22 04:08:31 -0500 |
---|---|---|
committer | Gary Kramlich <grim@reaperworld.com> | 2021-03-22 04:08:31 -0500 |
commit | 2d56ba3232fe073ac944fd86c5f4c9e612098bed (patch) | |
tree | 1b8b66b995982ec63e28b294bb615bce4405d0cb /libpurple/purplecredentialprovider.c | |
parent | eb0f74ae94350da27fcc2b426754336d63e90cad (diff) | |
download | pidgin-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.c | 25 |
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 * |