diff options
Diffstat (limited to 'plugins/smartcard/gsd-smartcard-manager.c')
-rw-r--r-- | plugins/smartcard/gsd-smartcard-manager.c | 400 |
1 files changed, 200 insertions, 200 deletions
diff --git a/plugins/smartcard/gsd-smartcard-manager.c b/plugins/smartcard/gsd-smartcard-manager.c index a231e20..ed823f4 100644 --- a/plugins/smartcard/gsd-smartcard-manager.c +++ b/plugins/smartcard/gsd-smartcard-manager.c @@ -1,4 +1,4 @@ -/* gsd-smartcard-manager.c - object for monitoring smartcard insertion and +/* msd-smartcard-manager.c - object for monitoring smartcard insertion and * removal events * * Copyright (C) 2006, 2009 Red Hat, Inc. @@ -22,10 +22,10 @@ */ #include "config.h" -#include "gsd-smartcard-manager.h" +#include "msd-smartcard-manager.h" #define SMARTCARD_ENABLE_INTERNAL_API -#include "gsd-smartcard.h" +#include "msd-smartcard.h" #include <dirent.h> #include <errno.h> @@ -49,22 +49,22 @@ #include <secmod.h> #include <secerr.h> -#ifndef GSD_SMARTCARD_MANAGER_NSS_DB -#define GSD_SMARTCARD_MANAGER_NSS_DB SYSCONFDIR"/pki/nssdb" +#ifndef MSD_SMARTCARD_MANAGER_NSS_DB +#define MSD_SMARTCARD_MANAGER_NSS_DB SYSCONFDIR"/pki/nssdb" #endif -typedef enum _GsdSmartcardManagerState GsdSmartcardManagerState; -typedef struct _GsdSmartcardManagerWorker GsdSmartcardManagerWorker; +typedef enum _MsdSmartcardManagerState MsdSmartcardManagerState; +typedef struct _MsdSmartcardManagerWorker MsdSmartcardManagerWorker; -enum _GsdSmartcardManagerState { - GSD_SMARTCARD_MANAGER_STATE_STOPPED = 0, - GSD_SMARTCARD_MANAGER_STATE_STARTING, - GSD_SMARTCARD_MANAGER_STATE_STARTED, - GSD_SMARTCARD_MANAGER_STATE_STOPPING, +enum _MsdSmartcardManagerState { + MSD_SMARTCARD_MANAGER_STATE_STOPPED = 0, + MSD_SMARTCARD_MANAGER_STATE_STARTING, + MSD_SMARTCARD_MANAGER_STATE_STARTED, + MSD_SMARTCARD_MANAGER_STATE_STOPPING, }; -struct _GsdSmartcardManagerPrivate { - GsdSmartcardManagerState state; +struct _MsdSmartcardManagerPrivate { + MsdSmartcardManagerState state; SECMODModule *module; char *module_path; @@ -80,7 +80,7 @@ struct _GsdSmartcardManagerPrivate { guint32 nss_is_loaded : 1; }; -struct _GsdSmartcardManagerWorker { +struct _MsdSmartcardManagerWorker { SECMODModule *module; GHashTable *smartcards; int write_fd; @@ -88,36 +88,36 @@ struct _GsdSmartcardManagerWorker { guint32 nss_is_loaded : 1; }; -static void gsd_smartcard_manager_finalize (GObject *object); -static void gsd_smartcard_manager_class_install_signals (GsdSmartcardManagerClass *service_class); -static void gsd_smartcard_manager_class_install_properties (GsdSmartcardManagerClass *service_class); -static void gsd_smartcard_manager_set_property (GObject *object, +static void msd_smartcard_manager_finalize (GObject *object); +static void msd_smartcard_manager_class_install_signals (MsdSmartcardManagerClass *service_class); +static void msd_smartcard_manager_class_install_properties (MsdSmartcardManagerClass *service_class); +static void msd_smartcard_manager_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); -static void gsd_smartcard_manager_get_property (GObject *object, +static void msd_smartcard_manager_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); -static void gsd_smartcard_manager_set_module_path (GsdSmartcardManager *manager, +static void msd_smartcard_manager_set_module_path (MsdSmartcardManager *manager, const char *module_path); -static void gsd_smartcard_manager_card_removed_handler (GsdSmartcardManager *manager, - GsdSmartcard *card); -static void gsd_smartcard_manager_card_inserted_handler (GsdSmartcardManager *manager_class, - GsdSmartcard *card); -static gboolean gsd_smartcard_manager_stop_now (GsdSmartcardManager *manager); -static void gsd_smartcard_manager_queue_stop (GsdSmartcardManager *manager); - -static gboolean gsd_smartcard_manager_create_worker (GsdSmartcardManager *manager, +static void msd_smartcard_manager_card_removed_handler (MsdSmartcardManager *manager, + MsdSmartcard *card); +static void msd_smartcard_manager_card_inserted_handler (MsdSmartcardManager *manager_class, + MsdSmartcard *card); +static gboolean msd_smartcard_manager_stop_now (MsdSmartcardManager *manager); +static void msd_smartcard_manager_queue_stop (MsdSmartcardManager *manager); + +static gboolean msd_smartcard_manager_create_worker (MsdSmartcardManager *manager, int *worker_fd, GThread **worker_thread); -static GsdSmartcardManagerWorker * gsd_smartcard_manager_worker_new (int write_fd); -static void gsd_smartcard_manager_worker_free (GsdSmartcardManagerWorker *worker); +static MsdSmartcardManagerWorker * msd_smartcard_manager_worker_new (int write_fd); +static void msd_smartcard_manager_worker_free (MsdSmartcardManagerWorker *worker); static gboolean open_pipe (int *write_fd, int *read_fd); static gboolean read_bytes (int fd, gpointer bytes, gsize num_bytes); static gboolean write_bytes (int fd, gconstpointer bytes, gsize num_bytes); -static GsdSmartcard *read_smartcard (int fd, SECMODModule *module); -static gboolean write_smartcard (int fd, GsdSmartcard *card); +static MsdSmartcard *read_smartcard (int fd, SECMODModule *module); +static gboolean write_smartcard (int fd, MsdSmartcard *card); enum { PROP_0 = 0, @@ -132,37 +132,37 @@ enum { NUMBER_OF_SIGNALS }; -static guint gsd_smartcard_manager_signals[NUMBER_OF_SIGNALS]; +static guint msd_smartcard_manager_signals[NUMBER_OF_SIGNALS]; -G_DEFINE_TYPE (GsdSmartcardManager, - gsd_smartcard_manager, +G_DEFINE_TYPE (MsdSmartcardManager, + msd_smartcard_manager, G_TYPE_OBJECT); static void -gsd_smartcard_manager_class_init (GsdSmartcardManagerClass *manager_class) +msd_smartcard_manager_class_init (MsdSmartcardManagerClass *manager_class) { GObjectClass *gobject_class; gobject_class = G_OBJECT_CLASS (manager_class); - gobject_class->finalize = gsd_smartcard_manager_finalize; + gobject_class->finalize = msd_smartcard_manager_finalize; - gsd_smartcard_manager_class_install_signals (manager_class); - gsd_smartcard_manager_class_install_properties (manager_class); + msd_smartcard_manager_class_install_signals (manager_class); + msd_smartcard_manager_class_install_properties (manager_class); g_type_class_add_private (manager_class, - sizeof (GsdSmartcardManagerPrivate)); + sizeof (MsdSmartcardManagerPrivate)); } static void -gsd_smartcard_manager_class_install_properties (GsdSmartcardManagerClass *card_class) +msd_smartcard_manager_class_install_properties (MsdSmartcardManagerClass *card_class) { GObjectClass *object_class; GParamSpec *param_spec; object_class = G_OBJECT_CLASS (card_class); - object_class->set_property = gsd_smartcard_manager_set_property; - object_class->get_property = gsd_smartcard_manager_get_property; + object_class->set_property = msd_smartcard_manager_set_property; + object_class->get_property = msd_smartcard_manager_get_property; param_spec = g_param_spec_string ("module-path", _("Module Path"), _("path to smartcard PKCS #11 driver"), @@ -171,16 +171,16 @@ gsd_smartcard_manager_class_install_properties (GsdSmartcardManagerClass *card_c } static void -gsd_smartcard_manager_set_property (GObject *object, +msd_smartcard_manager_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - GsdSmartcardManager *manager = GSD_SMARTCARD_MANAGER (object); + MsdSmartcardManager *manager = MSD_SMARTCARD_MANAGER (object); switch (prop_id) { case PROP_MODULE_PATH: - gsd_smartcard_manager_set_module_path (manager, + msd_smartcard_manager_set_module_path (manager, g_value_get_string (value)); break; @@ -191,17 +191,17 @@ gsd_smartcard_manager_set_property (GObject *object, } static void -gsd_smartcard_manager_get_property (GObject *object, +msd_smartcard_manager_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - GsdSmartcardManager *manager = GSD_SMARTCARD_MANAGER (object); + MsdSmartcardManager *manager = MSD_SMARTCARD_MANAGER (object); char *module_path; switch (prop_id) { case PROP_MODULE_PATH: - module_path = gsd_smartcard_manager_get_module_path (manager); + module_path = msd_smartcard_manager_get_module_path (manager); g_value_set_string (value, module_path); g_free (module_path); break; @@ -213,13 +213,13 @@ gsd_smartcard_manager_get_property (GObject *object, } char * -gsd_smartcard_manager_get_module_path (GsdSmartcardManager *manager) +msd_smartcard_manager_get_module_path (MsdSmartcardManager *manager) { return manager->priv->module_path; } static void -gsd_smartcard_manager_set_module_path (GsdSmartcardManager *manager, +msd_smartcard_manager_set_module_path (MsdSmartcardManager *manager, const char *module_path) { if ((manager->priv->module_path == NULL) && (module_path == NULL)) { @@ -236,57 +236,57 @@ gsd_smartcard_manager_set_module_path (GsdSmartcardManager *manager, } static void -gsd_smartcard_manager_card_removed_handler (GsdSmartcardManager *manager, - GsdSmartcard *card) +msd_smartcard_manager_card_removed_handler (MsdSmartcardManager *manager, + MsdSmartcard *card) { g_debug ("informing smartcard of its removal"); - _gsd_smartcard_set_state (card, GSD_SMARTCARD_STATE_REMOVED); + _msd_smartcard_set_state (card, MSD_SMARTCARD_STATE_REMOVED); g_debug ("done"); } static void -gsd_smartcard_manager_card_inserted_handler (GsdSmartcardManager *manager, - GsdSmartcard *card) +msd_smartcard_manager_card_inserted_handler (MsdSmartcardManager *manager, + MsdSmartcard *card) { g_debug ("informing smartcard of its insertion"); - _gsd_smartcard_set_state (card, GSD_SMARTCARD_STATE_INSERTED); + _msd_smartcard_set_state (card, MSD_SMARTCARD_STATE_INSERTED); g_debug ("done"); } static void -gsd_smartcard_manager_class_install_signals (GsdSmartcardManagerClass *manager_class) +msd_smartcard_manager_class_install_signals (MsdSmartcardManagerClass *manager_class) { GObjectClass *object_class; object_class = G_OBJECT_CLASS (manager_class); - gsd_smartcard_manager_signals[SMARTCARD_INSERTED] = + msd_smartcard_manager_signals[SMARTCARD_INSERTED] = g_signal_new ("smartcard-inserted", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GsdSmartcardManagerClass, + G_STRUCT_OFFSET (MsdSmartcardManagerClass, smartcard_inserted), NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); - manager_class->smartcard_inserted = gsd_smartcard_manager_card_inserted_handler; + manager_class->smartcard_inserted = msd_smartcard_manager_card_inserted_handler; - gsd_smartcard_manager_signals[SMARTCARD_REMOVED] = + msd_smartcard_manager_signals[SMARTCARD_REMOVED] = g_signal_new ("smartcard-removed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GsdSmartcardManagerClass, + G_STRUCT_OFFSET (MsdSmartcardManagerClass, smartcard_removed), NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); - manager_class->smartcard_removed = gsd_smartcard_manager_card_removed_handler; + manager_class->smartcard_removed = msd_smartcard_manager_card_removed_handler; - gsd_smartcard_manager_signals[ERROR] = + msd_smartcard_manager_signals[ERROR] = g_signal_new ("error", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GsdSmartcardManagerClass, error), + G_STRUCT_OFFSET (MsdSmartcardManagerClass, error), NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); manager_class->error = NULL; @@ -324,13 +324,13 @@ slot_id_hash (CK_SLOT_ID *slot_id) } static void -gsd_smartcard_manager_init (GsdSmartcardManager *manager) +msd_smartcard_manager_init (MsdSmartcardManager *manager) { g_debug ("initializing smartcard manager"); manager->priv = G_TYPE_INSTANCE_GET_PRIVATE (manager, - GSD_TYPE_SMARTCARD_MANAGER, - GsdSmartcardManagerPrivate); + MSD_TYPE_SMARTCARD_MANAGER, + MsdSmartcardManagerPrivate); manager->priv->poll_timeout_id = 0; manager->priv->is_unstoppable = FALSE; manager->priv->module = NULL; @@ -348,16 +348,16 @@ gsd_smartcard_manager_init (GsdSmartcardManager *manager) } static void -gsd_smartcard_manager_finalize (GObject *object) +msd_smartcard_manager_finalize (GObject *object) { - GsdSmartcardManager *manager; + MsdSmartcardManager *manager; GObjectClass *gobject_class; - manager = GSD_SMARTCARD_MANAGER (object); + manager = MSD_SMARTCARD_MANAGER (object); gobject_class = - G_OBJECT_CLASS (gsd_smartcard_manager_parent_class); + G_OBJECT_CLASS (msd_smartcard_manager_parent_class); - gsd_smartcard_manager_stop_now (manager); + msd_smartcard_manager_stop_now (manager); g_hash_table_destroy (manager->priv->smartcards); manager->priv->smartcards = NULL; @@ -366,23 +366,23 @@ gsd_smartcard_manager_finalize (GObject *object) } GQuark -gsd_smartcard_manager_error_quark (void) +msd_smartcard_manager_error_quark (void) { static GQuark error_quark = 0; if (error_quark == 0) { - error_quark = g_quark_from_static_string ("gsd-smartcard-manager-error-quark"); + error_quark = g_quark_from_static_string ("msd-smartcard-manager-error-quark"); } return error_quark; } -GsdSmartcardManager * -gsd_smartcard_manager_new (const char *module_path) +MsdSmartcardManager * +msd_smartcard_manager_new (const char *module_path) { - GsdSmartcardManager *instance; + MsdSmartcardManager *instance; - instance = GSD_SMARTCARD_MANAGER (g_object_new (GSD_TYPE_SMARTCARD_MANAGER, + instance = MSD_SMARTCARD_MANAGER (g_object_new (MSD_TYPE_SMARTCARD_MANAGER, "module-path", module_path, NULL)); @@ -390,44 +390,44 @@ gsd_smartcard_manager_new (const char *module_path) } static void -gsd_smartcard_manager_emit_error (GsdSmartcardManager *manager, +msd_smartcard_manager_emit_error (MsdSmartcardManager *manager, GError *error) { manager->priv->is_unstoppable = TRUE; - g_signal_emit (manager, gsd_smartcard_manager_signals[ERROR], 0, + g_signal_emit (manager, msd_smartcard_manager_signals[ERROR], 0, error); manager->priv->is_unstoppable = FALSE; } static void -gsd_smartcard_manager_emit_smartcard_inserted (GsdSmartcardManager *manager, - GsdSmartcard *card) +msd_smartcard_manager_emit_smartcard_inserted (MsdSmartcardManager *manager, + MsdSmartcard *card) { manager->priv->is_unstoppable = TRUE; - g_signal_emit (manager, gsd_smartcard_manager_signals[SMARTCARD_INSERTED], 0, + g_signal_emit (manager, msd_smartcard_manager_signals[SMARTCARD_INSERTED], 0, card); manager->priv->is_unstoppable = FALSE; } static void -gsd_smartcard_manager_emit_smartcard_removed (GsdSmartcardManager *manager, - GsdSmartcard *card) +msd_smartcard_manager_emit_smartcard_removed (MsdSmartcardManager *manager, + MsdSmartcard *card) { - GsdSmartcardManagerState old_state; + MsdSmartcardManagerState old_state; old_state = manager->priv->state; manager->priv->is_unstoppable = TRUE; - g_signal_emit (manager, gsd_smartcard_manager_signals[SMARTCARD_REMOVED], 0, + g_signal_emit (manager, msd_smartcard_manager_signals[SMARTCARD_REMOVED], 0, card); manager->priv->is_unstoppable = FALSE; } static gboolean -gsd_smartcard_manager_check_for_and_process_events (GIOChannel *io_channel, +msd_smartcard_manager_check_for_and_process_events (GIOChannel *io_channel, GIOCondition condition, - GsdSmartcardManager *manager) + MsdSmartcardManager *manager) { - GsdSmartcard *card; + MsdSmartcard *card; gboolean should_stop; gchar event_type; char *card_name; @@ -464,7 +464,7 @@ gsd_smartcard_manager_check_for_and_process_events (GIOChannel *io_chan goto out; } - card_name = gsd_smartcard_get_name (card); + card_name = msd_smartcard_get_name (card); switch (event_type) { case 'I': @@ -472,12 +472,12 @@ gsd_smartcard_manager_check_for_and_process_events (GIOChannel *io_chan card_name, card); card_name = NULL; - gsd_smartcard_manager_emit_smartcard_inserted (manager, card); + msd_smartcard_manager_emit_smartcard_inserted (manager, card); card = NULL; break; case 'R': - gsd_smartcard_manager_emit_smartcard_removed (manager, card); + msd_smartcard_manager_emit_smartcard_removed (manager, card); if (!g_hash_table_remove (manager->priv->smartcards, card_name)) { g_debug ("got removal event of unknown card!"); } @@ -499,13 +499,13 @@ out: if (should_stop) { GError *error; - error = g_error_new (GSD_SMARTCARD_MANAGER_ERROR, - GSD_SMARTCARD_MANAGER_ERROR_WATCHING_FOR_EVENTS, + error = g_error_new (MSD_SMARTCARD_MANAGER_ERROR, + MSD_SMARTCARD_MANAGER_ERROR_WATCHING_FOR_EVENTS, "%s", (condition & G_IO_IN) ? g_strerror (errno) : _("received error or hang up from event source")); - gsd_smartcard_manager_emit_error (manager, error); + msd_smartcard_manager_emit_error (manager, error); g_error_free (error); - gsd_smartcard_manager_stop_now (manager); + msd_smartcard_manager_stop_now (manager); return FALSE; } @@ -513,10 +513,10 @@ out: } static void -gsd_smartcard_manager_event_processing_stopped_handler (GsdSmartcardManager *manager) +msd_smartcard_manager_event_processing_stopped_handler (MsdSmartcardManager *manager) { manager->priv->smartcard_event_source = NULL; - gsd_smartcard_manager_stop_now (manager); + msd_smartcard_manager_stop_now (manager); } static gboolean @@ -551,7 +551,7 @@ open_pipe (int *write_fd, } static void -gsd_smartcard_manager_stop_watching_for_events (GsdSmartcardManager *manager) +msd_smartcard_manager_stop_watching_for_events (MsdSmartcardManager *manager) { if (manager->priv->smartcard_event_source != NULL) { g_source_destroy (manager->priv->smartcard_event_source); @@ -574,9 +574,9 @@ load_nss (GError **error) NSS_INIT_OPTIMIZESPACE | NSS_INIT_PK11RELOAD; g_debug ("attempting to load NSS database '%s'", - GSD_SMARTCARD_MANAGER_NSS_DB); + MSD_SMARTCARD_MANAGER_NSS_DB); - status = NSS_Initialize (GSD_SMARTCARD_MANAGER_NSS_DB, + status = NSS_Initialize (MSD_SMARTCARD_MANAGER_NSS_DB, "", "", SECMOD_DB, flags); if (status != SECSuccess) { @@ -588,8 +588,8 @@ load_nss (GError **error) if (error_message_size == 0) { g_debug ("NSS security system could not be initialized"); g_set_error (error, - GSD_SMARTCARD_MANAGER_ERROR, - GSD_SMARTCARD_MANAGER_ERROR_WITH_NSS, + MSD_SMARTCARD_MANAGER_ERROR, + MSD_SMARTCARD_MANAGER_ERROR_WITH_NSS, _("NSS security system could not be initialized")); goto out; } @@ -598,8 +598,8 @@ load_nss (GError **error) PR_GetErrorText (error_message); g_set_error (error, - GSD_SMARTCARD_MANAGER_ERROR, - GSD_SMARTCARD_MANAGER_ERROR_WITH_NSS, + MSD_SMARTCARD_MANAGER_ERROR, + MSD_SMARTCARD_MANAGER_ERROR_WITH_NSS, "%s", error_message); g_debug ("NSS security system could not be initialized - %s", error_message); @@ -657,8 +657,8 @@ load_driver (char *module_path, if (!module_explicitly_specified && module == NULL) { g_set_error (error, - GSD_SMARTCARD_MANAGER_ERROR, - GSD_SMARTCARD_MANAGER_ERROR_LOADING_DRIVER, + MSD_SMARTCARD_MANAGER_ERROR, + MSD_SMARTCARD_MANAGER_ERROR_LOADING_DRIVER, _("no suitable smartcard driver could be found")); } else if (module == NULL || !module->loaded) { @@ -677,8 +677,8 @@ load_driver (char *module_path, g_debug ("smartcard driver '%s' could not be loaded", module_path); g_set_error (error, - GSD_SMARTCARD_MANAGER_ERROR, - GSD_SMARTCARD_MANAGER_ERROR_LOADING_DRIVER, + MSD_SMARTCARD_MANAGER_ERROR, + MSD_SMARTCARD_MANAGER_ERROR_LOADING_DRIVER, _("smartcard driver '%s' could not be " "loaded"), module_path); goto out; @@ -688,8 +688,8 @@ load_driver (char *module_path, PR_GetErrorText (error_message); g_set_error (error, - GSD_SMARTCARD_MANAGER_ERROR, - GSD_SMARTCARD_MANAGER_ERROR_LOADING_DRIVER, + MSD_SMARTCARD_MANAGER_ERROR, + MSD_SMARTCARD_MANAGER_ERROR_LOADING_DRIVER, "%s", error_message); g_debug ("smartcard driver '%s' could not be loaded - %s", @@ -702,12 +702,12 @@ out: } static void -gsd_smartcard_manager_get_all_cards (GsdSmartcardManager *manager) +msd_smartcard_manager_get_all_cards (MsdSmartcardManager *manager) { int i; for (i = 0; i < manager->priv->module->slotCount; i++) { - GsdSmartcard *card; + MsdSmartcard *card; CK_SLOT_ID slot_id; int slot_series; char *card_name; @@ -715,10 +715,10 @@ gsd_smartcard_manager_get_all_cards (GsdSmartcardManager *manager) slot_id = PK11_GetSlotID (manager->priv->module->slots[i]); slot_series = PK11_GetSlotSeries (manager->priv->module->slots[i]); - card = _gsd_smartcard_new (manager->priv->module, + card = _msd_smartcard_new (manager->priv->module, slot_id, slot_series); - card_name = gsd_smartcard_get_name (card); + card_name = msd_smartcard_get_name (card); g_hash_table_replace (manager->priv->smartcards, card_name, card); @@ -726,7 +726,7 @@ gsd_smartcard_manager_get_all_cards (GsdSmartcardManager *manager) } gboolean -gsd_smartcard_manager_start (GsdSmartcardManager *manager, +msd_smartcard_manager_start (MsdSmartcardManager *manager, GError **error) { GError *watching_error; @@ -737,12 +737,12 @@ gsd_smartcard_manager_start (GsdSmartcardManager *manager, GIOFlags channel_flags; GError *nss_error; - if (manager->priv->state == GSD_SMARTCARD_MANAGER_STATE_STARTED) { + if (manager->priv->state == MSD_SMARTCARD_MANAGER_STATE_STARTED) { g_debug ("smartcard manager already started"); return TRUE; } - manager->priv->state = GSD_SMARTCARD_MANAGER_STATE_STARTING; + manager->priv->state = MSD_SMARTCARD_MANAGER_STATE_STARTING; worker_fd = -1; worker_pid = 0; @@ -763,11 +763,11 @@ gsd_smartcard_manager_start (GsdSmartcardManager *manager, goto out; } - if (!gsd_smartcard_manager_create_worker (manager, &worker_fd, &manager->priv->worker_thread)) { + if (!msd_smartcard_manager_create_worker (manager, &worker_fd, &manager->priv->worker_thread)) { g_set_error (error, - GSD_SMARTCARD_MANAGER_ERROR, - GSD_SMARTCARD_MANAGER_ERROR_WATCHING_FOR_EVENTS, + MSD_SMARTCARD_MANAGER_ERROR, + MSD_SMARTCARD_MANAGER_ERROR_WATCHING_FOR_EVENTS, _("could not watch for incoming card events - %s"), g_strerror (errno)); @@ -787,41 +787,41 @@ gsd_smartcard_manager_start (GsdSmartcardManager *manager, g_source_set_callback (manager->priv->smartcard_event_source, (GSourceFunc) (GIOFunc) - gsd_smartcard_manager_check_for_and_process_events, + msd_smartcard_manager_check_for_and_process_events, manager, (GDestroyNotify) - gsd_smartcard_manager_event_processing_stopped_handler); + msd_smartcard_manager_event_processing_stopped_handler); g_source_attach (manager->priv->smartcard_event_source, NULL); g_source_unref (manager->priv->smartcard_event_source); /* populate the hash with cards that are already inserted */ - gsd_smartcard_manager_get_all_cards (manager); + msd_smartcard_manager_get_all_cards (manager); - manager->priv->state = GSD_SMARTCARD_MANAGER_STATE_STARTED; + manager->priv->state = MSD_SMARTCARD_MANAGER_STATE_STARTED; out: /* don't leave it in a half started state */ - if (manager->priv->state != GSD_SMARTCARD_MANAGER_STATE_STARTED) { + if (manager->priv->state != MSD_SMARTCARD_MANAGER_STATE_STARTED) { g_debug ("smartcard manager could not be completely started"); - gsd_smartcard_manager_stop (manager); + msd_smartcard_manager_stop (manager); } else { g_debug ("smartcard manager started"); } - return manager->priv->state == GSD_SMARTCARD_MANAGER_STATE_STARTED; + return manager->priv->state == MSD_SMARTCARD_MANAGER_STATE_STARTED; } static gboolean -gsd_smartcard_manager_stop_now (GsdSmartcardManager *manager) +msd_smartcard_manager_stop_now (MsdSmartcardManager *manager) { - if (manager->priv->state == GSD_SMARTCARD_MANAGER_STATE_STOPPED) { + if (manager->priv->state == MSD_SMARTCARD_MANAGER_STATE_STOPPED) { return FALSE; } - manager->priv->state = GSD_SMARTCARD_MANAGER_STATE_STOPPED; - gsd_smartcard_manager_stop_watching_for_events (manager); + manager->priv->state = MSD_SMARTCARD_MANAGER_STATE_STOPPED; + msd_smartcard_manager_stop_watching_for_events (manager); if (manager->priv->module != NULL) { SECMOD_DestroyModule (manager->priv->module); @@ -839,44 +839,44 @@ gsd_smartcard_manager_stop_now (GsdSmartcardManager *manager) } static void -gsd_smartcard_manager_queue_stop (GsdSmartcardManager *manager) +msd_smartcard_manager_queue_stop (MsdSmartcardManager *manager) { - manager->priv->state = GSD_SMARTCARD_MANAGER_STATE_STOPPING; + manager->priv->state = MSD_SMARTCARD_MANAGER_STATE_STOPPING; - g_idle_add ((GSourceFunc) gsd_smartcard_manager_stop_now, manager); + g_idle_add ((GSourceFunc) msd_smartcard_manager_stop_now, manager); } void -gsd_smartcard_manager_stop (GsdSmartcardManager *manager) +msd_smartcard_manager_stop (MsdSmartcardManager *manager) { - if (manager->priv->state == GSD_SMARTCARD_MANAGER_STATE_STOPPED) { + if (manager->priv->state == MSD_SMARTCARD_MANAGER_STATE_STOPPED) { return; } if (manager->priv->is_unstoppable) { - gsd_smartcard_manager_queue_stop (manager); + msd_smartcard_manager_queue_stop (manager); return; } - gsd_smartcard_manager_stop_now (manager); + msd_smartcard_manager_stop_now (manager); } static void -gsd_smartcard_manager_check_for_login_card (CK_SLOT_ID slot_id, - GsdSmartcard *card, +msd_smartcard_manager_check_for_login_card (CK_SLOT_ID slot_id, + MsdSmartcard *card, gboolean *is_inserted) { g_assert (is_inserted != NULL); - if (gsd_smartcard_is_login_card (card)) { + if (msd_smartcard_is_login_card (card)) { *is_inserted = TRUE; } } gboolean -gsd_smartcard_manager_login_card_is_inserted (GsdSmartcardManager *manager) +msd_smartcard_manager_login_card_is_inserted (MsdSmartcardManager *manager) { gboolean is_inserted; @@ -884,17 +884,17 @@ gsd_smartcard_manager_login_card_is_inserted (GsdSmartcardManager *manager) is_inserted = FALSE; g_hash_table_foreach (manager->priv->smartcards, (GHFunc) - gsd_smartcard_manager_check_for_login_card, + msd_smartcard_manager_check_for_login_card, &is_inserted); return is_inserted; } -static GsdSmartcardManagerWorker * -gsd_smartcard_manager_worker_new (int write_fd) +static MsdSmartcardManagerWorker * +msd_smartcard_manager_worker_new (int write_fd) { - GsdSmartcardManagerWorker *worker; + MsdSmartcardManagerWorker *worker; - worker = g_slice_new0 (GsdSmartcardManagerWorker); + worker = g_slice_new0 (MsdSmartcardManagerWorker); worker->write_fd = write_fd; worker->module = NULL; @@ -908,14 +908,14 @@ gsd_smartcard_manager_worker_new (int write_fd) } static void -gsd_smartcard_manager_worker_free (GsdSmartcardManagerWorker *worker) +msd_smartcard_manager_worker_free (MsdSmartcardManagerWorker *worker) { if (worker->smartcards != NULL) { g_hash_table_destroy (worker->smartcards); worker->smartcards = NULL; } - g_slice_free (GsdSmartcardManagerWorker, worker); + g_slice_free (MsdSmartcardManagerWorker, worker); } static gboolean @@ -992,11 +992,11 @@ write_bytes (int fd, return TRUE; } -static GsdSmartcard * +static MsdSmartcard * read_smartcard (int fd, SECMODModule *module) { - GsdSmartcard *card; + MsdSmartcard *card; char *card_name; gsize card_name_size; @@ -1010,7 +1010,7 @@ read_smartcard (int fd, g_slice_free1 (card_name_size, card_name); return NULL; } - card = _gsd_smartcard_new_from_name (module, card_name); + card = _msd_smartcard_new_from_name (module, card_name); g_slice_free1 (card_name_size, card_name); return card; @@ -1018,12 +1018,12 @@ read_smartcard (int fd, static gboolean write_smartcard (int fd, - GsdSmartcard *card) + MsdSmartcard *card) { gsize card_name_size; char *card_name; - card_name = gsd_smartcard_get_name (card); + card_name = msd_smartcard_get_name (card); card_name_size = strlen (card_name) + 1; if (!write_bytes (fd, &card_name_size, sizeof (card_name_size))) { @@ -1041,11 +1041,11 @@ write_smartcard (int fd, } static gboolean -gsd_smartcard_manager_worker_emit_smartcard_removed (GsdSmartcardManagerWorker *worker, - GsdSmartcard *card, +msd_smartcard_manager_worker_emit_smartcard_removed (MsdSmartcardManagerWorker *worker, + MsdSmartcard *card, GError **error) { - g_debug ("card '%s' removed!", gsd_smartcard_get_name (card)); + g_debug ("card '%s' removed!", msd_smartcard_get_name (card)); if (!write_bytes (worker->write_fd, "R", 1)) { goto error_out; @@ -1058,21 +1058,21 @@ gsd_smartcard_manager_worker_emit_smartcard_removed (GsdSmartcardManagerWorker return TRUE; error_out: - g_set_error (error, GSD_SMARTCARD_MANAGER_ERROR, - GSD_SMARTCARD_MANAGER_ERROR_REPORTING_EVENTS, + g_set_error (error, MSD_SMARTCARD_MANAGER_ERROR, + MSD_SMARTCARD_MANAGER_ERROR_REPORTING_EVENTS, "%s", g_strerror (errno)); return FALSE; } static gboolean -gsd_smartcard_manager_worker_emit_smartcard_inserted (GsdSmartcardManagerWorker *worker, - GsdSmartcard *card, +msd_smartcard_manager_worker_emit_smartcard_inserted (MsdSmartcardManagerWorker *worker, + MsdSmartcard *card, GError **error) { GError *write_error; write_error = NULL; - g_debug ("card '%s' inserted!", gsd_smartcard_get_name (card)); + g_debug ("card '%s' inserted!", msd_smartcard_get_name (card)); if (!write_bytes (worker->write_fd, "I", 1)) { goto error_out; } @@ -1084,20 +1084,20 @@ gsd_smartcard_manager_worker_emit_smartcard_inserted (GsdSmartcardManagerWorker return TRUE; error_out: - g_set_error (error, GSD_SMARTCARD_MANAGER_ERROR, - GSD_SMARTCARD_MANAGER_ERROR_REPORTING_EVENTS, + g_set_error (error, MSD_SMARTCARD_MANAGER_ERROR, + MSD_SMARTCARD_MANAGER_ERROR_REPORTING_EVENTS, "%s", g_strerror (errno)); return FALSE; } static gboolean -gsd_smartcard_manager_worker_watch_for_and_process_event (GsdSmartcardManagerWorker *worker, +msd_smartcard_manager_worker_watch_for_and_process_event (MsdSmartcardManagerWorker *worker, GError **error) { PK11SlotInfo *slot; CK_SLOT_ID slot_id, *key; int slot_series, card_slot_series; - GsdSmartcard *card; + MsdSmartcard *card; GError *processing_error; gboolean ret; @@ -1119,8 +1119,8 @@ gsd_smartcard_manager_worker_watch_for_and_process_event (GsdSmartcardManagerWor /* FIXME: is there a function to convert from a PORT error * code to a translated string? */ - g_set_error (error, GSD_SMARTCARD_MANAGER_ERROR, - GSD_SMARTCARD_MANAGER_ERROR_WITH_NSS, + g_set_error (error, MSD_SMARTCARD_MANAGER_ERROR, + MSD_SMARTCARD_MANAGER_ERROR_WITH_NSS, _("encountered unexpected error while " "waiting for smartcard events")); goto out; @@ -1141,7 +1141,7 @@ gsd_smartcard_manager_worker_watch_for_and_process_event (GsdSmartcardManagerWor card = g_hash_table_lookup (worker->smartcards, key); if (card != NULL) { - card_slot_series = gsd_smartcard_get_slot_series (card); + card_slot_series = msd_smartcard_get_slot_series (card); } else { card_slot_series = -1; } @@ -1154,20 +1154,20 @@ gsd_smartcard_manager_worker_watch_for_and_process_event (GsdSmartcardManagerWor */ if ((card != NULL) && card_slot_series != slot_series) { - if (!gsd_smartcard_manager_worker_emit_smartcard_removed (worker, card, &processing_error)) { + if (!msd_smartcard_manager_worker_emit_smartcard_removed (worker, card, &processing_error)) { g_propagate_error (error, processing_error); goto out; } } - card = _gsd_smartcard_new (worker->module, + card = _msd_smartcard_new (worker->module, slot_id, slot_series); g_hash_table_replace (worker->smartcards, key, card); key = NULL; - if (!gsd_smartcard_manager_worker_emit_smartcard_inserted (worker, + if (!msd_smartcard_manager_worker_emit_smartcard_inserted (worker, card, &processing_error)) { g_propagate_error (error, processing_error); @@ -1188,24 +1188,24 @@ gsd_smartcard_manager_worker_watch_for_and_process_event (GsdSmartcardManagerWor */ if ((slot_series - card_slot_series) > 1) { - if (!gsd_smartcard_manager_worker_emit_smartcard_removed (worker, card, &processing_error)) { + if (!msd_smartcard_manager_worker_emit_smartcard_removed (worker, card, &processing_error)) { g_propagate_error (error, processing_error); goto out; } g_hash_table_remove (worker->smartcards, key); - card = _gsd_smartcard_new (worker->module, + card = _msd_smartcard_new (worker->module, slot_id, slot_series); g_hash_table_replace (worker->smartcards, key, card); key = NULL; - if (!gsd_smartcard_manager_worker_emit_smartcard_inserted (worker, card, &processing_error)) { + if (!msd_smartcard_manager_worker_emit_smartcard_inserted (worker, card, &processing_error)) { g_propagate_error (error, processing_error); goto out; } } - if (!gsd_smartcard_manager_worker_emit_smartcard_removed (worker, card, &processing_error)) { + if (!msd_smartcard_manager_worker_emit_smartcard_removed (worker, card, &processing_error)) { g_propagate_error (error, processing_error); goto out; } @@ -1227,29 +1227,29 @@ out: } static void -gsd_smartcard_manager_worker_run (GsdSmartcardManagerWorker *worker) +msd_smartcard_manager_worker_run (MsdSmartcardManagerWorker *worker) { GError *error; error = NULL; - while (gsd_smartcard_manager_worker_watch_for_and_process_event (worker, &error)); + while (msd_smartcard_manager_worker_watch_for_and_process_event (worker, &error)); if (error != NULL) { g_debug ("could not process card event - %s", error->message); g_error_free (error); } - gsd_smartcard_manager_worker_free (worker); + msd_smartcard_manager_worker_free (worker); } static gboolean -gsd_smartcard_manager_create_worker (GsdSmartcardManager *manager, +msd_smartcard_manager_create_worker (MsdSmartcardManager *manager, int *worker_fd, GThread **worker_thread) { - GsdSmartcardManagerWorker *worker; + MsdSmartcardManagerWorker *worker; int write_fd, read_fd; write_fd = -1; @@ -1258,15 +1258,15 @@ gsd_smartcard_manager_create_worker (GsdSmartcardManager *manager, return FALSE; } - worker = gsd_smartcard_manager_worker_new (write_fd); + worker = msd_smartcard_manager_worker_new (write_fd); worker->module = manager->priv->module; *worker_thread = g_thread_create ((GThreadFunc) - gsd_smartcard_manager_worker_run, + msd_smartcard_manager_worker_run, worker, FALSE, NULL); if (*worker_thread == NULL) { - gsd_smartcard_manager_worker_free (worker); + msd_smartcard_manager_worker_free (worker); return FALSE; } @@ -1277,19 +1277,19 @@ gsd_smartcard_manager_create_worker (GsdSmartcardManager *manager, return TRUE; } -#ifdef GSD_SMARTCARD_MANAGER_ENABLE_TEST +#ifdef MSD_SMARTCARD_MANAGER_ENABLE_TEST #include <glib.h> static GMainLoop *event_loop; static gboolean should_exit_on_next_remove = FALSE; static gboolean -on_timeout (GsdSmartcardManager *manager) +on_timeout (MsdSmartcardManager *manager) { GError *error; g_print ("Re-enabling manager.\n"); - if (!gsd_smartcard_manager_start (manager, &error)) { + if (!msd_smartcard_manager_start (manager, &error)) { g_warning ("could not start smartcard manager - %s", error->message); g_error_free (error); @@ -1303,16 +1303,16 @@ on_timeout (GsdSmartcardManager *manager) } static void -on_device_inserted (GsdSmartcardManager *manager, - GsdSmartcard *card) +on_device_inserted (MsdSmartcardManager *manager, + MsdSmartcard *card) { g_print ("smartcard inserted!\n"); g_print ("Please remove it.\n"); } static void -on_device_removed (GsdSmartcardManager *manager, - GsdSmartcard *card) +on_device_removed (MsdSmartcardManager *manager, + MsdSmartcard *card) { g_print ("smartcard removed!\n"); @@ -1320,7 +1320,7 @@ on_device_removed (GsdSmartcardManager *manager, g_main_loop_quit (event_loop); } else { g_print ("disabling manager for 2 seconds\n"); - gsd_smartcard_manager_stop (manager); + msd_smartcard_manager_stop (manager); g_timeout_add (2000, (GSourceFunc) on_timeout, manager); } } @@ -1329,7 +1329,7 @@ int main (int argc, char *argv[]) { - GsdSmartcardManager *manager; + MsdSmartcardManager *manager; GError *error; g_log_set_always_fatal (G_LOG_LEVEL_ERROR @@ -1338,7 +1338,7 @@ main (int argc, g_type_init (); g_message ("creating instance of 'smartcard manager' object..."); - manager = gsd_smartcard_manager_new (NULL); + manager = msd_smartcard_manager_new (NULL); g_message ("'smartcard manager' object created successfully"); g_signal_connect (manager, "smartcard-inserted", @@ -1350,7 +1350,7 @@ main (int argc, g_message ("starting listener..."); error = NULL; - if (!gsd_smartcard_manager_start (manager, &error)) { + if (!msd_smartcard_manager_start (manager, &error)) { g_warning ("could not start smartcard manager - %s", error->message); g_error_free (error); |