all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Michael Albinus <michael.albinus@gmx.de>
To: Julien Danjou <julien@danjou.info>
Cc: 9581@debbugs.gnu.org
Subject: bug#9581: 24.0.50; dbus-unregister-object fails if service is nil
Date: Sun, 25 Sep 2011 13:59:45 +0200	[thread overview]
Message-ID: <87mxdsvnm6.fsf@gmx.de> (raw)
In-Reply-To: <87aa9setsi.fsf@keller.adm.naquadah.org> (Julien Danjou's message of "Sun, 25 Sep 2011 13:38:21 +0200")

Julien Danjou <julien@danjou.info> writes:

>> I've played exactly this example (replacing "some.service" by
>> "org.gtk.Private.GduVolumeMonitor" in order to have an existing
>> service). No problem.
>
> Indeed. It works fine with org.gtk.Private.GduVolumeMonitor as service,
> but with "some.service" it fails. Why?

`dbus-register-signal' checks for the a valid service name, if it isn't
nil. Usually, "some.service" is not known; in my test
`dbus-register-signal' raises an error then.

How did you manage to register your signal with that service?

>> Could you apply (dbus-list-hash-table) before calling
>> `dbus-unregister-object', and show the result?
>
> Yeah. I start emacs-snapshot, then register then call
> `dbus-list-hash-table', it messages:
>
> (((:session "org.freedesktop.Notifications" "ActionInvoked")
>   (":1.129"
>    "org.freedesktop.Notifications" "/org/freedesktop/Notifications"
>    notifications-on-action-signal
>    "type='signal',interface='org.freedesktop.Notifications',member='ActionInvoked',sender=':1.129',path='/org/freedesktop/Notifications'"))
>  ((:session "org.freedesktop.Notifications" "NotificationClosed")
>   (":1.129" "org.freedesktop.Notifications"
>    "/org/freedesktop/Notifications" notifications-on-closed-signal
>    "type='signal',interface='org.freedesktop.Notifications',member='NotificationClosed',sender=':1.129',path='/org/freedesktop/Notifications'"))

These two entries show the correct match rule (the respective last element).

>  ((:session "org.gtk.Private.RemoteVolumeMonitor" "VolumeAdded")
>   (""
>    "some.service" "/org/gtk/Private/RemoteVolumeMonitor" identity
>    "‚\x01")))

This entry has a corrupted match rule. Again, which trick brings
`dbus-register-signal' to accept it? I must implement a counter-check
for this!

> Then I call unregister it yells:
> Debugger entered--Lisp error: (dbus-error "Unable to append argument" "\202\x01")
>   dbus-call-method(:session "org.freedesktop.DBus" "/org/freedesktop/DBus" "org.freedesktop.DBus" "RemoveMatch" "\202\x01")
>
> Where the last string is obviously the same as I talked about above. :)

Which is the correct answer, because there isn't a valid match rule. I
could add a check for a valid match rule before sending the
"RemoveMatch" message, but I believe this is superfluous, because there
is exactly one place that match rule is appended. At this place, we must
prevent wrong values.

Best regards, Michael.





  reply	other threads:[~2011-09-25 11:59 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-22 23:01 bug#9581: 24.0.50; dbus-unregister-object fails if service is nil Julien Danjou
2011-09-23 15:37 ` Michael Albinus
2011-09-23 16:12   ` Julien Danjou
2011-09-24 11:50     ` Michael Albinus
2011-09-24 14:19       ` Julien Danjou
2011-09-24 14:37         ` Michael Albinus
2011-09-25 11:38           ` Julien Danjou
2011-09-25 11:59             ` Michael Albinus [this message]
2011-09-25 12:19               ` Julien Danjou
2011-09-25 16:03                 ` Michael Albinus
2011-09-26 12:16                   ` Julien Danjou
2011-09-26 13:57                     ` Michael Albinus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87mxdsvnm6.fsf@gmx.de \
    --to=michael.albinus@gmx.de \
    --cc=9581@debbugs.gnu.org \
    --cc=julien@danjou.info \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.