# HG changeset patch
# Node ID 1e026cbb93dd
# Parent  452ba49e16d4
diff --git a/libpurple/plugins/keychain-access/keychain-access.c b/libpurple/plugins/keychain-access/keychain-access.c
--- a/libpurple/plugins/keychain-access/keychain-access.c
+++ b/libpurple/plugins/keychain-access/keychain-access.c
@@ -139,6 +139,7 @@
 
 	/* Create the task and return our results. */
 	task = g_task_new(provider, cancellable, callback, data);
+	g_task_set_source_tag(task, purple_keychain_access_read_password_async);
 
 	if(result == errSecSuccess) {
 		if(CFGetTypeID(item) != CFDataGetTypeID()) {
@@ -236,6 +237,7 @@
 
 	/* Now create the GTask and set the result. */
 	task = g_task_new(provider, cancellable, callback, data);
+	g_task_set_source_tag(task, purple_keychain_access_write_password_async);
 
 	if(result == errSecSuccess) {
 		g_task_return_boolean(task, TRUE);
@@ -303,6 +305,7 @@
 
 	/* Now create the GTask and set the result. */
 	task = g_task_new(provider, cancellable, callback, data);
+	g_task_set_source_tag(task, purple_keychain_access_clear_password_async);
 
 	if(result == errSecSuccess) {
 		g_task_return_boolean(task, TRUE);
diff --git a/libpurple/plugins/kwallet/purplekwallet.cpp b/libpurple/plugins/kwallet/purplekwallet.cpp
--- a/libpurple/plugins/kwallet/purplekwallet.cpp
+++ b/libpurple/plugins/kwallet/purplekwallet.cpp
@@ -415,6 +415,7 @@
 	key = purple_kwallet_provider_account_key(account);
 
 	task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	g_task_set_source_tag(task, (gpointer)purple_kwallet_read_password_async);
 
 	request = new PurpleKWalletPlugin::ReadRequest(key, task);
 
@@ -445,6 +446,7 @@
 	QString key;
 
 	task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	g_task_set_source_tag(task, (gpointer)purple_kwallet_write_password_async);
 
 	key = purple_kwallet_provider_account_key(account);
 
@@ -476,6 +478,7 @@
 	QString key;
 
 	task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	g_task_set_source_tag(task, (gpointer)purple_kwallet_clear_password_async);
 
 	key = purple_kwallet_provider_account_key(account);
 
diff --git a/libpurple/plugins/libsecret/libsecret.c b/libpurple/plugins/libsecret/libsecret.c
--- a/libpurple/plugins/libsecret/libsecret.c
+++ b/libpurple/plugins/libsecret/libsecret.c
@@ -149,7 +149,10 @@
                                      gpointer data)
 {
 	PurpleContactInfo *info = PURPLE_CONTACT_INFO(account);
-	GTask *task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	GTask *task = NULL;
+
+	task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	g_task_set_source_tag(task, purple_libsecret_read_password_async);
 
 	secret_password_lookup(&purple_libsecret_schema, cancellable,
                            purple_libsecret_read_password_callback, task,
@@ -183,6 +186,7 @@
 	const gchar *username = NULL;
 
 	task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	g_task_set_source_tag(task, purple_libsecret_write_password_async);
 	username = purple_contact_info_get_username(info);
 
 	label = g_strdup_printf(_("libpurple password for account %s"), username);
@@ -215,7 +219,10 @@
                                       gpointer data)
 {
 	PurpleContactInfo *info = PURPLE_CONTACT_INFO(account);
-	GTask *task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	GTask *task = NULL;
+
+	task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	g_task_set_source_tag(task, purple_libsecret_clear_password_async);
 
 	secret_password_clear(&purple_libsecret_schema, cancellable,
 	                      purple_libsecret_clear_password_callback, task,
diff --git a/libpurple/plugins/wincred/wincred.c b/libpurple/plugins/wincred/wincred.c
--- a/libpurple/plugins/wincred/wincred.c
+++ b/libpurple/plugins/wincred/wincred.c
@@ -96,6 +96,8 @@
 	PCREDENTIALW credential = NULL;
 
 	task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	g_task_set_source_tag(task, purple_wincred_read_password_async);
+
 	target_name = wincred_get_target_name(account, &error);
 	if (target_name == NULL) {
 		g_task_return_error(task, error);
@@ -193,6 +195,7 @@
 	CREDENTIALW credential;
 
 	task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	g_task_set_source_tag(task, purple_wincred_write_password_async);
 
 	target_name = wincred_get_target_name(account, &error);
 	if (target_name == NULL) {
@@ -284,6 +287,7 @@
 	gunichar2 *target_name = NULL;
 
 	task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	g_task_set_source_tag(task, purple_wincred_clear_password_async);
 
 	target_name = wincred_get_target_name(account, &error);
 	if (target_name == NULL) {
diff --git a/libpurple/purplecredentialmanager.c b/libpurple/purplecredentialmanager.c
--- a/libpurple/purplecredentialmanager.c
+++ b/libpurple/purplecredentialmanager.c
@@ -482,6 +482,7 @@
 	g_return_if_fail(PURPLE_IS_ACCOUNT(account));
 
 	task = g_task_new(manager, cancellable, callback, data);
+	g_task_set_source_tag(task, purple_credential_manager_read_password_async);
 
 	if(manager->active != NULL) {
 		purple_credential_provider_read_password_async(manager->active,
@@ -521,6 +522,8 @@
 	g_return_if_fail(PURPLE_IS_ACCOUNT(account));
 
 	task = g_task_new(manager, cancellable, callback, data);
+	g_task_set_source_tag(task,
+	                      purple_credential_manager_write_password_async);
 
 	if(!purple_account_get_remember_password(account)) {
 		const gchar *name = NULL;
@@ -574,6 +577,8 @@
 	g_return_if_fail(PURPLE_IS_ACCOUNT(account));
 
 	task = g_task_new(manager, cancellable, callback, data);
+	g_task_set_source_tag(task,
+	                      purple_credential_manager_clear_password_async);
 
 	if(manager->active != NULL) {
 		purple_credential_provider_clear_password_async(manager->active,
@@ -616,4 +621,3 @@
 		func(PURPLE_CREDENTIAL_PROVIDER(value), data);
 	}
 }
-
diff --git a/libpurple/purplenoopcredentialprovider.c b/libpurple/purplenoopcredentialprovider.c
--- a/libpurple/purplenoopcredentialprovider.c
+++ b/libpurple/purplenoopcredentialprovider.c
@@ -40,7 +40,11 @@
                                                     GAsyncReadyCallback callback,
                                                     gpointer data)
 {
-	GTask *task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	GTask *task = NULL;
+
+	task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	g_task_set_source_tag(task,
+	                      purple_noop_credential_provider_read_password_async);
 
 	g_task_return_new_error(task, PURPLE_CREDENTIAL_MANAGER_DOMAIN, 0,
 	                        _("provider does not store passwords"));
@@ -64,7 +68,11 @@
                                                      GAsyncReadyCallback callback,
                                                      gpointer data)
 {
-	GTask *task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	GTask *task = NULL;
+
+	task = g_task_new(G_OBJECT(provider), cancellable, callback, data);
+	g_task_set_source_tag(task,
+	                      purple_noop_credential_provider_write_password_async);
 
 	g_task_return_new_error(task, PURPLE_CREDENTIAL_MANAGER_DOMAIN, 0,
 	                        _("provider does not store passwords"));
