Esempio n. 1
0
int
keyring_lock(const char *keyname)
{
#ifndef HAVE_GNOME_KEYRING_LOCK
  print_error(10, "WARNING", "\nThis feature not supported.\n");
  return TRUE; 
#endif

  if (keyname == NULL)
    {
       print_error(GNOME_KEYRING_RESULT_NO_SUCH_KEYRING, "ERROR", "\nInvalid keyring.\n");
       return FALSE;
    }

  if (!gnome_keyring_is_available())
    {
       print_error(GNOME_KEYRING_RESULT_NO_KEYRING_DAEMON, "ERROR",
                   "\nFailed to communicate with a gnome-keyring-daemon.\n");
       return FALSE;
    }

  loop = g_main_loop_new(NULL, FALSE);

  gnome_keyring_lock(keyname,
    (GnomeKeyringOperationDoneCallback) callback__done, "lock", NULL);

  g_main_loop_run(loop);

  if (exit_status)
    fprintf(stderr, "Locked '%s' keyring.\n", keyname);

  return exit_status;
}
static void 
on_keyring_lock (GtkAction *action, SeahorseGkrKeyringCommands *self)
{
	SeahorseView *view;
	SeahorseGkrKeyring *keyring;
	GList *keyrings, *l;

	g_return_if_fail (SEAHORSE_IS_GKR_KEYRING_COMMANDS (self));
	g_return_if_fail (GTK_IS_ACTION (action));

	view = seahorse_commands_get_view (SEAHORSE_COMMANDS (self));
	keyrings = seahorse_view_get_selected_matching (view, &keyring_predicate);

	for (l = keyrings; l; l = g_list_next (l)) {
		keyring = SEAHORSE_GKR_KEYRING (l->data);
		g_return_if_fail (SEAHORSE_IS_GKR_KEYRING (l->data));
		gnome_keyring_lock (seahorse_gkr_keyring_get_name (l->data), 
		                    on_keyring_lock_done, g_object_ref (self), g_object_unref);
	}

	g_list_free (keyrings);
}