libpurple/plugins/keyrings/internalkeyring.c

branch
soc.2013.gobjectification.plugins
changeset 36502
dfce617913fe
parent 36459
b52f5391d12d
child 36505
60c161851325
--- a/libpurple/plugins/keyrings/internalkeyring.c	Sun Aug 11 03:46:44 2013 +0530
+++ b/libpurple/plugins/keyrings/internalkeyring.c	Sun Aug 11 04:56:32 2013 +0530
@@ -40,6 +40,7 @@
 	"storage behaviour for libpurple.")
 #define INTKEYRING_AUTHOR "Tomek Wasilczyk (tomkiewicz@cpw.pidgin.im)"
 #define INTKEYRING_ID PURPLE_DEFAULT_KEYRING
+#define INTKEYRING_DOMAIN (g_quark_from_static_string(INTKEYRING_ID))
 
 #define INTKEYRING_VERIFY_STR "[verification-string]"
 #define INTKEYRING_PBKDF2_ITERATIONS 10000
@@ -954,9 +955,39 @@
 	return TRUE;
 }
 
+static PurplePluginInfo *
+plugin_query(GError **error)
+{
+	return purple_plugin_info_new(
+		"id",           INTKEYRING_ID,
+		"name",         INTKEYRING_NAME,
+		"version",      DISPLAY_VERSION,
+		"category",     N_("Keyring"),
+		"summary",      "Internal Keyring Plugin",
+		"description",  INTKEYRING_DESCRIPTION,
+		"author",       INTKEYRING_AUTHOR,
+		"website",      PURPLE_WEBSITE,
+		"purple-abi",   PURPLE_ABI_VERSION,
+		"flags",        GPLUGIN_PLUGIN_INFO_FLAGS_INTERNAL,
+		NULL
+	);
+}
+
 static gboolean
-intkeyring_load(PurplePlugin *plugin)
+plugin_load(PurplePlugin *plugin, GError **error)
 {
+	purple_prefs_add_none("/plugins/keyrings");
+	purple_prefs_add_none("/plugins/keyrings/internal");
+	purple_prefs_add_bool(INTKEYRING_PREFS "encrypt_passwords", FALSE);
+	purple_prefs_add_string(INTKEYRING_PREFS "encryption_method",
+		INTKEYRING_ENCRYPTION_METHOD);
+	purple_prefs_add_int(INTKEYRING_PREFS "pbkdf2_desired_iterations",
+		INTKEYRING_PBKDF2_ITERATIONS);
+	purple_prefs_add_int(INTKEYRING_PREFS "pbkdf2_iterations",
+		INTKEYRING_PBKDF2_ITERATIONS);
+	purple_prefs_add_string(INTKEYRING_PREFS "pbkdf2_salt", "");
+	purple_prefs_add_string(INTKEYRING_PREFS "key_verifier", "");
+
 	keyring_handler = purple_keyring_new();
 
 	purple_keyring_set_name(keyring_handler, _(INTKEYRING_NAME));
@@ -982,9 +1013,11 @@
 }
 
 static gboolean
-intkeyring_unload(PurplePlugin *plugin)
+plugin_unload(PurplePlugin *plugin, GError **error)
 {
 	if (purple_keyring_get_inuse() == keyring_handler) {
+		g_set_error(error, INTKEYRING_DOMAIN, 0, "The keyring is currently "
+			"in use.");
 		purple_debug_warning("keyring-internal",
 			"keyring in use, cannot unload\n");
 		return FALSE;
@@ -1006,47 +1039,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 */
-	INTKEYRING_ID,			/* id */
-	INTKEYRING_NAME,		/* name */
-	DISPLAY_VERSION,		/* version */
-	"Internal Keyring Plugin",	/* summary */
-	INTKEYRING_DESCRIPTION,		/* description */
-	INTKEYRING_AUTHOR,		/* author */
-	PURPLE_WEBSITE,			/* homepage */
-	intkeyring_load,		/* load */
-	intkeyring_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_prefs_add_none("/plugins/keyrings");
-	purple_prefs_add_none("/plugins/keyrings/internal");
-	purple_prefs_add_bool(INTKEYRING_PREFS "encrypt_passwords", FALSE);
-	purple_prefs_add_string(INTKEYRING_PREFS "encryption_method",
-		INTKEYRING_ENCRYPTION_METHOD);
-	purple_prefs_add_int(INTKEYRING_PREFS "pbkdf2_desired_iterations",
-		INTKEYRING_PBKDF2_ITERATIONS);
-	purple_prefs_add_int(INTKEYRING_PREFS "pbkdf2_iterations",
-		INTKEYRING_PBKDF2_ITERATIONS);
-	purple_prefs_add_string(INTKEYRING_PREFS "pbkdf2_salt", "");
-	purple_prefs_add_string(INTKEYRING_PREFS "key_verifier", "");
-}
-
-PURPLE_INIT_PLUGIN(internal_keyring, init_plugin, plugininfo)
+PURPLE_PLUGIN_INIT(gnome_keyring, plugin_query, plugin_load, plugin_unload);

mercurial