krb5-auth-dialog r102 - in trunk: . src



Author: guidog
Date: Sat Jan 10 13:25:26 2009
New Revision: 102
URL: http://svn.gnome.org/viewvc/krb5-auth-dialog?rev=102&view=rev

Log:
move dbus handling into a separate file

Added:
   trunk/src/krb5-auth-dbus.c
   trunk/src/krb5-auth-dbus.h
Modified:
   trunk/ChangeLog
   trunk/src/Makefile.am
   trunk/src/krb5-auth-dialog.c

Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am	(original)
+++ trunk/src/Makefile.am	Sat Jan 10 13:25:26 2009
@@ -19,6 +19,8 @@
 	krb5-auth-gconf.h	\
 	krb5-auth-notify.c	\
 	krb5-auth-notify.h	\
+	krb5-auth-dbus.c	\
+	krb5-auth-dbus.h	\
 	dummy-strings.c
 
 krb5_auth_dialog_LDADD = \

Added: trunk/src/krb5-auth-dbus.c
==============================================================================
--- (empty file)
+++ trunk/src/krb5-auth-dbus.c	Sat Jan 10 13:25:26 2009
@@ -0,0 +1,78 @@
+/* Krb5 Auth Applet -- Acquire and release kerberos tickets
+ *
+ * (C) 2008 Guido Guenther <agx sigxcpu org>
+ *
+ * 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, 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include <dbus/dbus-glib.h>
+#include "krb5-auth-applet.h"
+#include "krb5-auth-dbus.h"
+
+gboolean
+ka_dbus_connect(unsigned int* status)
+{
+	guint request_name_reply;
+	unsigned int flags;
+	DBusGConnection *session;
+	DBusGProxy *bus_proxy;
+	GError* error = NULL;
+
+	/* Connect to the session bus so we get exit-on-disconnect semantics. */
+	session = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
+	if (session == NULL) {
+		g_error ("couldn't connect to session bus: %s", (error) ? error->message : "(null)");
+		*status = 1;
+		return FALSE;
+	}
+	flags = DBUS_NAME_FLAG_DO_NOT_QUEUE;
+	bus_proxy = dbus_g_proxy_new_for_name (session,
+					       "org.freedesktop.DBus",
+					       "/org/freedesktop/DBus",
+					       "org.freedesktop.DBus");
+
+	if (!dbus_g_proxy_call (bus_proxy,
+				"RequestName",
+				&error,
+				G_TYPE_STRING,
+				"org.gnome.KrbAuthDialog",
+				G_TYPE_UINT,
+				flags,
+				G_TYPE_INVALID,
+				G_TYPE_UINT,
+				&request_name_reply,
+				G_TYPE_INVALID)) {
+		g_warning ("Failed to invoke RequestName: %s",
+			   error->message);
+	}
+	g_clear_error (&error);
+	g_object_unref (bus_proxy);
+
+	if (request_name_reply == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER
+	    || request_name_reply == DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER)
+		;
+	else if (request_name_reply == DBUS_REQUEST_NAME_REPLY_EXISTS
+		 || request_name_reply == DBUS_REQUEST_NAME_REPLY_IN_QUEUE) {
+		*status = 0;
+		return FALSE;
+	} else {
+		g_assert_not_reached();
+	}
+	return TRUE;
+}
+

Added: trunk/src/krb5-auth-dbus.h
==============================================================================
--- (empty file)
+++ trunk/src/krb5-auth-dbus.h	Sat Jan 10 13:25:26 2009
@@ -0,0 +1,28 @@
+/* Krb5 Auth Applet -- Acquire and release kerberos tickets
+ *
+ * (C) 2008 Guido Guenther <agx sigxcpu org>
+ *
+ * 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, 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifndef KRB5_AUTH_DBUS_H
+#define KRB5_AUTH_DBUS_H
+
+#include <glib.h>
+
+gboolean ka_dbus_connect(unsigned int* status);
+
+#endif /* KRB5_AUTH_DBUS_H */

Modified: trunk/src/krb5-auth-dialog.c
==============================================================================
--- trunk/src/krb5-auth-dialog.c	(original)
+++ trunk/src/krb5-auth-dialog.c	Sat Jan 10 13:25:26 2009
@@ -29,11 +29,11 @@
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
 #include <glade/glade.h>
-#include <dbus/dbus-glib.h>
 
 #include "krb5-auth-dialog.h"
 #include "krb5-auth-applet.h"
 #include "krb5-auth-gconf.h"
+#include "krb5-auth-dbus.h"
 
 #ifdef ENABLE_NETWORK_MANAGER
 #include <libnm_glib.h>
@@ -663,11 +663,10 @@
 	Krb5AuthApplet *applet;
 	GOptionContext *context;
 	GError *error = NULL;
-	DBusGConnection *session;
-	DBusGProxy *bus_proxy;
-	guint request_name_reply;
-	unsigned int flags;
+
+	guint status = 0;
 	gboolean run_auto = FALSE, run_always = FALSE;
+
 	const char *help_msg = "Run '" PACKAGE " --help' to see a full list of available command line options";
 	const GOptionEntry options [] = {
 		{"auto", 'a', 0, G_OPTION_ARG_NONE, &run_auto,
@@ -696,44 +695,8 @@
 	bind_textdomain_codeset (PACKAGE, "UTF-8");
 	bindtextdomain (PACKAGE, LOCALE_DIR);
 
-	/* Connect to the session bus so we get exit-on-disconnect semantics. */
-	session = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
-	if (session == NULL) {
-		g_error ("couldn't connect to session bus: %s", (error) ? error->message : "(null)");
-		exit(1);
-	}
-	flags = DBUS_NAME_FLAG_DO_NOT_QUEUE;
-	bus_proxy = dbus_g_proxy_new_for_name (session,
-					       "org.freedesktop.DBus",
-					       "/org/freedesktop/DBus",
-					       "org.freedesktop.DBus");
-
-	if (!dbus_g_proxy_call (bus_proxy,
-				"RequestName",
-				&error,
-				G_TYPE_STRING,
-				"org.gnome.KrbAuthDialog",
-				G_TYPE_UINT,
-				flags,
-				G_TYPE_INVALID,
-				G_TYPE_UINT,
-				&request_name_reply,
-				G_TYPE_INVALID)) {
-		g_warning ("Failed to invoke RequestName: %s",
-			   error->message);
-	}
-	g_clear_error (&error);
-	g_object_unref (bus_proxy);
-
-	if (request_name_reply == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER
-	    || request_name_reply == DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER)
-		;
-	else if (request_name_reply == DBUS_REQUEST_NAME_REPLY_EXISTS
-		 || request_name_reply == DBUS_REQUEST_NAME_REPLY_IN_QUEUE)
-		exit(0);
-	else {
-		g_assert_not_reached();
-	}
+	if (!ka_dbus_connect (&status))
+		exit(status);
 
 	if (run_always && !run_auto) {
 		always_run = TRUE;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]