[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 09f381d70d8: Fix wildcard signals in dbusbind.c
From: |
Michael Albinus |
Subject: |
master 09f381d70d8: Fix wildcard signals in dbusbind.c |
Date: |
Sun, 31 Mar 2024 14:00:13 -0400 (EDT) |
branch: master
commit 09f381d70d8852d90cdd3c8d7e1e2786dbc61f92
Author: Michael Albinus <michael.albinus@gmx.de>
Commit: Michael Albinus <michael.albinus@gmx.de>
Fix wildcard signals in dbusbind.c
* src/dbusbind.c (xd_read_message_1): Handle registered signals
with wildcards. (Bug#69926)
---
src/dbusbind.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/dbusbind.c b/src/dbusbind.c
index 7069e27e3eb..0441b07a3b2 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -1689,6 +1689,22 @@ xd_read_message_1 (DBusConnection *connection,
Lisp_Object bus)
bus, build_string (interface), build_string (member));
value = Fgethash (key, Vdbus_registered_objects_table, Qnil);
+ /* A signal could be registered with a nil interface or member. */
+ if (mtype == DBUS_MESSAGE_TYPE_SIGNAL)
+ {
+ key = list4 (QCsignal, bus, Qnil, build_string (member));
+ value = CALLN (Fappend, value,
+ Fgethash (key, Vdbus_registered_objects_table, Qnil));
+
+ key = list4 (QCsignal, bus, build_string (interface), Qnil);
+ value = CALLN (Fappend, value,
+ Fgethash (key, Vdbus_registered_objects_table, Qnil));
+
+ key = list4 (QCsignal, bus, Qnil, Qnil);
+ value = CALLN (Fappend, value,
+ Fgethash (key, Vdbus_registered_objects_table, Qnil));
+ }
+
/* Loop over the registered functions. Construct an event. */
for (; !NILP (value); value = CDR_SAFE (value))
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 09f381d70d8: Fix wildcard signals in dbusbind.c,
Michael Albinus <=