diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2014-11-08 10:41:30 -0800 |
---|---|---|
committer | Stef Walter <stefw@gnome.org> | 2015-06-29 11:05:49 +0200 |
commit | 1d26d1a83f669c895e8a9e84d626a45a89e5e567 (patch) | |
tree | 6abecc46c9feb6b0cfaaf00c0e672a9f41662d40 /egg | |
parent | c459da1c8af39f23c6d160a7bc694496ad17cada (diff) | |
download | gnome-keyring-1d26d1a83f669c895e8a9e84d626a45a89e5e567.tar.gz |
egg: remove egg-dbus.[ch]
They're not used anymore.
https://bugzilla.gnome.org/show_bug.cgi?id=622905
Diffstat (limited to 'egg')
-rw-r--r-- | egg/Makefile.am | 14 | ||||
-rw-r--r-- | egg/egg-dbus.c | 420 | ||||
-rw-r--r-- | egg/egg-dbus.h | 36 |
3 files changed, 1 insertions, 469 deletions
diff --git a/egg/Makefile.am b/egg/Makefile.am index 1e3bc889..38083289 100644 --- a/egg/Makefile.am +++ b/egg/Makefile.am @@ -4,7 +4,6 @@ noinst_LTLIBRARIES += \ libegg-asn1x.la \ libegg-buffer.la \ libegg-creds.la \ - libegg-dbus.la \ libegg-secure.la \ libegg-prompt.la \ libegg-hex.la \ @@ -46,7 +45,7 @@ ASN1_FILES += \ egg/pk.asn \ egg/pkix.asn \ $(NULL) - + # -------------------------------------------------------------------- # COMMON STUFF COMPILED INTO SMALLER COMPONENTS @@ -67,17 +66,6 @@ libegg_buffer_la_SOURCES = \ libegg_creds_la_SOURCES = \ egg/egg-unix-credentials.c egg/egg-unix-credentials.h -libegg_dbus_la_SOURCES = \ - egg/egg-dbus.c egg/egg-dbus.h - -libegg_dbus_la_CFLAGS = \ - $(DBUS_CFLAGS) \ - $(GLIB_CFLAGS) - -libegg_dbus_la_LIBADD = \ - $(DBUS_LIBS) \ - $(GLIB_LIBS) - libegg_prompt_la_SOURCES = \ egg/egg-dh.c egg/egg-dh.h \ egg/egg-hex.c egg/egg-hex.h \ diff --git a/egg/egg-dbus.c b/egg/egg-dbus.c deleted file mode 100644 index b3bfa9e8..00000000 --- a/egg/egg-dbus.c +++ /dev/null @@ -1,420 +0,0 @@ -/* -*- mode: C; c-file-style: "gnu" -*- */ -/* egg-dbus.c GLib main loop integration - * - * Copyright (C) 2002, 2003 CodeFactory AB - * Copyright (C) 2005 Red Hat, Inc. - * - * Licensed under the Academic Free License version 2.1 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see - * - */ - - -#include "config.h" - -#include "egg-dbus.h" - -#include <dbus/dbus.h> - -/* ------------------------------------------------------------------------ - * DBUS GLIB MAIN LOOP INTEGRATION - * - * Copied from dbus-gmain.c due to API instabilities in dbus-glib bindings. :( - */ - -typedef struct { - GSource source; /* the parent GSource */ - DBusConnection *connection; /* the connection to dispatch */ - GDestroyNotify closed_cb; /* Callback when closed */ -} DBusGMessageQueue; - -static gboolean -message_queue_prepare (GSource *source, gint *timeout) -{ - DBusGMessageQueue *queue = ((DBusGMessageQueue *)source); - DBusConnection *connection = queue->connection; - *timeout = -1; - if (queue->closed_cb) { - if (!dbus_connection_get_is_connected (connection)) { - (queue->closed_cb) (connection); - queue->closed_cb = NULL; - } - } - return (dbus_connection_get_dispatch_status (connection) == DBUS_DISPATCH_DATA_REMAINS); -} - -static gboolean -message_queue_check (GSource *source) -{ - return FALSE; -} - -static gboolean -message_queue_dispatch (GSource *source, GSourceFunc callback, gpointer user_data) -{ - DBusConnection *connection = ((DBusGMessageQueue *)source)->connection; - dbus_connection_ref (connection); - - /* Only dispatch once - we don't want to starve other GSource */ - dbus_connection_dispatch (connection); - dbus_connection_unref (connection); - return TRUE; -} - -static const GSourceFuncs message_queue_funcs = { - message_queue_prepare, - message_queue_check, - message_queue_dispatch, - NULL -}; - -typedef struct { - GMainContext *context; /* the main context */ - GSList *ios; /* all IOHandler */ - GSList *timeouts; /* all TimeoutHandler */ - DBusConnection *connection; /* NULL if this is really for a server not a connection */ - GSource *message_queue_source; /* DBusGMessageQueue */ -} ConnectionSetup; - -static ConnectionSetup *the_setup = NULL; - -typedef struct { - ConnectionSetup *cs; - GSource *source; - DBusWatch *watch; -} IOHandler; - -typedef struct { - ConnectionSetup *cs; - GSource *source; - DBusTimeout *timeout; -} TimeoutHandler; - -static ConnectionSetup* -connection_setup_new (GMainContext *context, - DBusConnection *connection, - GDestroyNotify closed_cb) -{ - ConnectionSetup *cs = g_new0 (ConnectionSetup, 1); - g_assert (context != NULL); - - cs->context = context; - g_main_context_ref (cs->context); - - if (connection) { - cs->connection = connection; - cs->message_queue_source = g_source_new ((GSourceFuncs *) &message_queue_funcs, - sizeof (DBusGMessageQueue)); - ((DBusGMessageQueue*)cs->message_queue_source)->connection = connection; - ((DBusGMessageQueue*)cs->message_queue_source)->closed_cb = closed_cb; - g_source_attach (cs->message_queue_source, cs->context); - } - - return cs; -} - -static void -io_handler_source_finalized (gpointer data) -{ - IOHandler *handler = data; - if (handler->watch) - dbus_watch_set_data (handler->watch, NULL, NULL); - g_free (handler); -} - -static void -io_handler_destroy_source (void *data) -{ - IOHandler *handler = data; - if (handler->source) { - GSource *source = handler->source; - handler->source = NULL; - handler->cs->ios = g_slist_remove (handler->cs->ios, handler); - g_source_destroy (source); - g_source_unref (source); - } -} - -static void -io_handler_watch_freed (void *data) -{ - IOHandler *handler = data; - handler->watch = NULL; - io_handler_destroy_source (handler); -} - -static gboolean -io_handler_dispatch (GIOChannel *source, GIOCondition condition, gpointer data) -{ - IOHandler *handler = data; - guint dbus_condition = 0; - DBusConnection *connection = handler->cs->connection; - - if (connection) - dbus_connection_ref (connection); - - if (condition & G_IO_IN) - dbus_condition |= DBUS_WATCH_READABLE; - if (condition & G_IO_OUT) - dbus_condition |= DBUS_WATCH_WRITABLE; - if (condition & G_IO_ERR) - dbus_condition |= DBUS_WATCH_ERROR; - if (condition & G_IO_HUP) - dbus_condition |= DBUS_WATCH_HANGUP; - - /* Note that we don't touch the handler after this, because - * dbus may have disabled the watch and thus killed the - * handler. - */ - dbus_watch_handle (handler->watch, dbus_condition); - handler = NULL; - - if (connection) - dbus_connection_unref (connection); - - return TRUE; -} - -static void -connection_setup_add_watch (ConnectionSetup *cs, DBusWatch *watch) -{ - guint flags; - GIOCondition condition; - GIOChannel *channel; - IOHandler *handler; - - if (!dbus_watch_get_enabled (watch)) - return; - - g_assert (dbus_watch_get_data (watch) == NULL); - - flags = dbus_watch_get_flags (watch); - - condition = G_IO_ERR | G_IO_HUP; - if (flags & DBUS_WATCH_READABLE) - condition |= G_IO_IN; - if (flags & DBUS_WATCH_WRITABLE) - condition |= G_IO_OUT; - - handler = g_new0 (IOHandler, 1); - handler->cs = cs; - handler->watch = watch; - - channel = g_io_channel_unix_new (dbus_watch_get_unix_fd (watch)); - - handler->source = g_io_create_watch (channel, condition); - g_source_set_callback (handler->source, (GSourceFunc) io_handler_dispatch, handler, - io_handler_source_finalized); - g_source_attach (handler->source, cs->context); - - cs->ios = g_slist_prepend (cs->ios, handler); - - dbus_watch_set_data (watch, handler, io_handler_watch_freed); - g_io_channel_unref (channel); -} - -static void -connection_setup_remove_watch (ConnectionSetup *cs, DBusWatch *watch) -{ - IOHandler *handler = dbus_watch_get_data (watch); - if (handler != NULL) - io_handler_destroy_source (handler); -} - -static void -timeout_handler_source_finalized (gpointer data) -{ - TimeoutHandler *handler = data; - if (handler->timeout) - dbus_timeout_set_data (handler->timeout, NULL, NULL); - g_free (handler); -} - -static void -timeout_handler_destroy_source (void *data) -{ - TimeoutHandler *handler = data; - if (handler->source) { - GSource *source = handler->source; - handler->source = NULL; - handler->cs->timeouts = g_slist_remove (handler->cs->timeouts, handler); - g_source_destroy (source); - g_source_unref (source); - } -} - -static void -timeout_handler_timeout_freed (void *data) -{ - TimeoutHandler *handler = data; - handler->timeout = NULL; - timeout_handler_destroy_source (handler); -} - -static gboolean -timeout_handler_dispatch (gpointer data) -{ - TimeoutHandler *handler = data; - dbus_timeout_handle (handler->timeout); - return TRUE; -} - -static void -connection_setup_add_timeout (ConnectionSetup *cs, - DBusTimeout *timeout) -{ - TimeoutHandler *handler; - if (!dbus_timeout_get_enabled (timeout)) - return; - g_assert (dbus_timeout_get_data (timeout) == NULL); - - handler = g_new0 (TimeoutHandler, 1); - handler->cs = cs; - handler->timeout = timeout; - - handler->source = g_timeout_source_new (dbus_timeout_get_interval (timeout)); - g_source_set_callback (handler->source, timeout_handler_dispatch, handler, - timeout_handler_source_finalized); - g_source_attach (handler->source, handler->cs->context); - cs->timeouts = g_slist_prepend (cs->timeouts, handler); - dbus_timeout_set_data (timeout, handler, timeout_handler_timeout_freed); -} - -static void -connection_setup_remove_timeout (ConnectionSetup *cs, DBusTimeout *timeout) -{ - TimeoutHandler *handler = dbus_timeout_get_data (timeout); - if (handler != NULL) - timeout_handler_destroy_source (handler); -} - -static void -connection_setup_free (ConnectionSetup *cs) -{ - while (cs->ios) - io_handler_destroy_source (cs->ios->data); - - while (cs->timeouts) - timeout_handler_destroy_source (cs->timeouts->data); - - if (cs->message_queue_source) { - GSource *source = cs->message_queue_source; - cs->message_queue_source = NULL; - - g_source_destroy (source); - g_source_unref (source); - } - - g_main_context_unref (cs->context); - g_free (cs); -} - -static dbus_bool_t -add_watch (DBusWatch *watch, gpointer data) -{ - ConnectionSetup *cs = data; - connection_setup_add_watch (cs, watch); - return TRUE; -} - -static void -remove_watch (DBusWatch *watch, gpointer data) -{ - ConnectionSetup *cs = data; - connection_setup_remove_watch (cs, watch); -} - -static void -watch_toggled (DBusWatch *watch, void *data) -{ - if (dbus_watch_get_enabled (watch)) - add_watch (watch, data); - else - remove_watch (watch, data); -} - -static dbus_bool_t -add_timeout (DBusTimeout *timeout, void *data) -{ - ConnectionSetup *cs = data; - if (!dbus_timeout_get_enabled (timeout)) - return TRUE; - connection_setup_add_timeout (cs, timeout); - return TRUE; -} - -static void -remove_timeout (DBusTimeout *timeout, void *data) -{ - ConnectionSetup *cs = data; - connection_setup_remove_timeout (cs, timeout); -} - -static void -timeout_toggled (DBusTimeout *timeout, void *data) -{ - if (dbus_timeout_get_enabled (timeout)) - add_timeout (timeout, data); - else - remove_timeout (timeout, data); -} - -static void -wakeup_main (void *data) -{ - ConnectionSetup *cs = data; - g_main_context_wakeup (cs->context); -} - -void -egg_dbus_connect_with_mainloop (DBusConnection *connection, - GMainContext *context, - GDestroyNotify close_callback) -{ - ConnectionSetup *cs; - - if (context == NULL) - context = g_main_context_default (); - cs = connection_setup_new (context, connection, close_callback); - the_setup = cs; - - if (!dbus_connection_set_watch_functions (connection, add_watch, - remove_watch, watch_toggled, - cs, NULL)) - goto nomem; - - if (!dbus_connection_set_timeout_functions (connection, add_timeout, - remove_timeout, timeout_toggled, - cs, NULL)) - goto nomem; - - dbus_connection_set_wakeup_main_function (connection, wakeup_main, cs, NULL); - - return; - -nomem: - g_error ("Not enough memory to set up DBusConnection for use with GLib"); -} - -void -egg_dbus_disconnect_from_mainloop (DBusConnection *connection, GMainContext *context) -{ - ConnectionSetup *cs = the_setup; - the_setup = NULL; - - if (cs) - connection_setup_free (cs); -} - diff --git a/egg/egg-dbus.h b/egg/egg-dbus.h deleted file mode 100644 index 91b7ab3f..00000000 --- a/egg/egg-dbus.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- mode: C; c-file-style: "gnu" -*- */ -/* egg-dbus.h GLib main loop integration - * - * Copyright (C) 2002, 2003 CodeFactory AB - * Copyright (C) 2005 Red Hat, Inc. - * - * Licensed under the Academic Free License version 2.1 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see - * - */ - -#ifndef EGGDBUS_H_ -#define EGGDBUS_H_ - -#include <glib.h> -#include <dbus/dbus.h> - -void egg_dbus_connect_with_mainloop (DBusConnection *connection, - GMainContext *context, - GDestroyNotify close_callback); - -void egg_dbus_disconnect_from_mainloop (DBusConnection *connection, GMainContext *context); - -#endif /*EGGDBUS_H_*/ |