Mercurial > emacs
changeset 106722:d27fa5359486
* dbusbind.c (xd_add_watch): Improve debug message.
(xd_remove_watch): Improve debug message. If DATA is the session
bus, unset D-Bus session environment.
(Fdbus_init_bus): Pass the bus as argument to
dbus_connection_set_watch_functions. (Bug#5283)
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Sun, 03 Jan 2010 20:27:17 +0100 |
parents | b7f28f66e31e |
children | 82660e679622 |
files | src/ChangeLog src/dbusbind.c |
diffstat | 2 files changed, 26 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Sat Jan 02 23:33:36 2010 +0200 +++ b/src/ChangeLog Sun Jan 03 20:27:17 2010 +0100 @@ -1,3 +1,11 @@ +2010-01-03 Michael Albinus <michael.albinus@gmx.de> + + * dbusbind.c (xd_add_watch): Improve debug message. + (xd_remove_watch): Improve debug message. If DATA is the session + bus, unset D-Bus session environment. + (Fdbus_init_bus): Pass the bus as argument to + dbus_connection_set_watch_functions. (Bug#5283) + 2010-01-01 Chong Yidong <cyd@stupidchicken.com> * nsterm.m (ns_get_color): Fix buffer overflow (Bug#4763). @@ -144,7 +152,7 @@ 2009-12-15 Michael Albinus <michael.albinus@gmx.de> * dbusbind.c (xd_retrieve_arg): Reorder declarations in order to - avoid compiler warnings. (Bug #5217). + avoid compiler warnings. (Bug #5217) 2009-12-14 Kenichi Handa <handa@m17n.org> @@ -5319,7 +5327,7 @@ (XD_SIGNAL1, XD_SIGNAL2, XD_SIGNAL3): New macros. Throw Qdbus_error. (xd_read_queued_messages): Catch Qdbus_error from the macros. (all): Replace xsignal1, xsignal2, xsignal3 by the respective - macro. (Bug#1186). + macro. (Bug#1186) 2008-10-23 Ali Bahrami <ali_gnu@emvision.com> (tiny change)
--- a/src/dbusbind.c Sat Jan 02 23:33:36 2010 +0200 +++ b/src/dbusbind.c Sun Jan 03 20:27:17 2010 +0100 @@ -761,14 +761,14 @@ if (dbus_watch_get_flags (watch) & DBUS_WATCH_READABLE) { #if HAVE_DBUS_WATCH_GET_UNIX_FD - /* TODO: Reverse these on Win32, which prefers the opposite. */ + /* TODO: Reverse these on Win32, which prefers the opposite. */ int fd = dbus_watch_get_unix_fd(watch); if (fd == -1) fd = dbus_watch_get_socket(watch); #else int fd = dbus_watch_get_fd(watch); #endif - XD_DEBUG_MESSAGE ("%d", fd); + XD_DEBUG_MESSAGE ("fd %d", fd); if (fd == -1) return FALSE; @@ -781,7 +781,8 @@ return TRUE; } -/* Remove connection file descriptor from input_wait_mask. */ +/* Remove connection file descriptor from input_wait_mask. DATA is + the used bus, either QCdbus_system_bus or QCdbus_session_bus. */ void xd_remove_watch (watch, data) DBusWatch *watch; @@ -791,18 +792,25 @@ if (dbus_watch_get_flags (watch) & DBUS_WATCH_READABLE) { #if HAVE_DBUS_WATCH_GET_UNIX_FD - /* TODO: Reverse these on Win32, which prefers the opposite. */ + /* TODO: Reverse these on Win32, which prefers the opposite. */ int fd = dbus_watch_get_unix_fd(watch); if (fd == -1) fd = dbus_watch_get_socket(watch); #else int fd = dbus_watch_get_fd(watch); #endif - XD_DEBUG_MESSAGE ("%d", fd); + XD_DEBUG_MESSAGE ("fd %d", fd); if (fd == -1) return; + /* Unset session environment. */ + if ((data != NULL) && (EQ ((Lisp_Object) data, QCdbus_session_bus))) + { + XD_DEBUG_MESSAGE ("unsetenv DBUS_SESSION_BUS_ADDRESS"); + unsetenv ("DBUS_SESSION_BUS_ADDRESS"); + } + /* Remove the file descriptor from input_wait_mask. */ delete_keyboard_wait_descriptor (fd); } @@ -825,11 +833,12 @@ /* Open a connection to the bus. */ connection = xd_initialize (bus); - /* Add the watch functions. */ + /* Add the watch functions. We pass also the bus as data, in order + to distinguish between the busses in xd_remove_watch. */ if (!dbus_connection_set_watch_functions (connection, xd_add_watch, xd_remove_watch, - NULL, NULL, NULL)) + NULL, (void *) bus, NULL)) XD_SIGNAL1 (build_string ("Cannot add watch functions")); /* Return. */