libpurple/plugins/keyrings/wincred.c

branch
soc.2013.gobjectification.plugins
changeset 36502
dfce617913fe
parent 36459
b52f5391d12d
child 36505
60c161851325
--- a/libpurple/plugins/keyrings/wincred.c	Sun Aug 11 03:46:44 2013 +0530
+++ b/libpurple/plugins/keyrings/wincred.c	Sun Aug 11 04:56:32 2013 +0530
@@ -38,6 +38,7 @@
 	"credentials.")
 #define WINCRED_AUTHOR      "Tomek Wasilczyk (tomkiewicz@cpw.pidgin.im)"
 #define WINCRED_ID          "keyring-wincred"
+#define WINCRED_DOMAIN      (g_quark_from_static_string(WINCRED_ID))
 
 #define WINCRED_MAX_TARGET_NAME 256
 
@@ -255,8 +256,26 @@
 		g_error_free(error);
 }
 
+static PurplePluginInfo *
+plugin_query(GError **error)
+{
+	return purple_plugin_info_new(
+		"id",           WINCRED_ID,
+		"name",         WINCRED_NAME,
+		"version",      DISPLAY_VERSION,
+		"category",     N_("Keyring"),
+		"summary",      WINCRED_SUMMARY,
+		"description",  WINCRED_DESCRIPTION,
+		"author",       WINCRED_AUTHOR,
+		"website",      PURPLE_WEBSITE,
+		"purple-abi",   PURPLE_ABI_VERSION,
+		"flags",        GPLUGIN_PLUGIN_INFO_FLAGS_INTERNAL,
+		NULL
+	);
+}
+
 static gboolean
-wincred_load(PurplePlugin *plugin)
+plugin_load(PurplePlugin *plugin, GError **error)
 {
 	keyring_handler = purple_keyring_new();
 
@@ -271,9 +290,11 @@
 }
 
 static gboolean
-wincred_unload(PurplePlugin *plugin)
+plugin_unload(PurplePlugin *plugin, GError **error)
 {
 	if (purple_keyring_get_inuse() == keyring_handler) {
+		g_set_error(error, WINCRED_DOMAIN, 0, "The keyring is currently "
+			"in use.");
 		purple_debug_warning("keyring-wincred",
 			"keyring in use, cannot unload\n");
 		return FALSE;
@@ -286,36 +307,4 @@
 	return TRUE;
 }
 
-PurplePluginInfo plugininfo =
-{
-	PURPLE_PLUGIN_MAGIC,		/* magic */
-	PURPLE_MAJOR_VERSION,		/* major_version */
-	PURPLE_MINOR_VERSION,		/* minor_version */
-	PURPLE_PLUGIN_STANDARD,		/* type */
-	NULL,				/* ui_requirement */
-	PURPLE_PLUGIN_FLAG_INVISIBLE,	/* flags */
-	NULL,				/* dependencies */
-	PURPLE_PRIORITY_DEFAULT,	/* priority */
-	WINCRED_ID,			/* id */
-	WINCRED_NAME,			/* name */
-	DISPLAY_VERSION,		/* version */
-	WINCRED_SUMMARY,		/* summary */
-	WINCRED_DESCRIPTION,		/* description */
-	WINCRED_AUTHOR,			/* author */
-	PURPLE_WEBSITE,			/* homepage */
-	wincred_load,			/* load */
-	wincred_unload,			/* unload */
-	NULL,				/* destroy */
-	NULL,				/* ui_info */
-	NULL,				/* extra_info */
-	NULL,				/* prefs_info */
-	NULL,				/* actions */
-	NULL, NULL, NULL, NULL		/* padding */
-};
-
-static void
-init_plugin(PurplePlugin *plugin)
-{
-}
-
-PURPLE_INIT_PLUGIN(wincred_keyring, init_plugin, plugininfo)
+PURPLE_PLUGIN_INIT(gnome_keyring, plugin_query, plugin_load, plugin_unload);

mercurial