From: Jan Moringen <jan.moringen@uni-bielefeld.de>
To: Michael Albinus <michael.albinus@gmx.de>
Cc: emacs-devel@gnu.org
Subject: Re: DBus methods without name grabbing
Date: Tue, 04 Jan 2011 03:42:52 +0100 [thread overview]
Message-ID: <7758_1294108975_ZZh0g0_f99~qx.00_1294108972.8785.33.camel@gunhead> (raw)
In-Reply-To: <87lj32kuyz.fsf@gmx.de>
[-- Attachment #1: Type: text/plain, Size: 1837 bytes --]
Hi Michael,
thanks for the helpful reply.
An updated patch is attached.
There seems to be some oddities concerning the ChangeLog, I don't know
where these come from.
> In general, I agree with your proposal. I have some few comments:
>
> - The optional parameter in `dbus-register-method' and
> `dbus-register-property' shall be called `dont-register-service'. This
> would fit the dbus terminology we use so far.
Done.
> - We might introduce a new function `dbus-register-service' (in dbusbind.c).
> It could offer optional argument flags, a list of the supported flags
> of "org.freedesktop.DBus.RequestName"
> (DBUS_NAME_FLAG_ALLOW_REPLACEMENT, DBUS_NAME_FLAG_REPLACE_EXISTING,
> DBUS_NAME_FLAG_DO_NOT_QUEUE). This function shall be called in
> `dbus-register-method' and `dbus-register-property' when
> `dont-register-service' is nil. Btw, the function
> `dbus-unregister-service' exists already ...
I would rather tackle this change in a separate patch later.
> - It would be great, if you could add also changed doc strings, changed
> dbus.texi, ChangeLog and etc/NEWS entries.
Done.
> > === modified file 'src/dbusbind.c'
> > --- src/dbusbind.c 2010-10-01 13:56:33 +0000
> > +++ src/dbusbind.c 2010-10-03 02:17:34 +0000
> > @@ -1983,10 +1983,16 @@
> >
> > /* Request the known name from the bus. We can ignore the result,
> > it is set to -1 if there is an error - kind of redundancy. */
> > - dbus_error_init (&derror);
> > - result = dbus_bus_request_name (connection, SDATA (service), 0, &derror);
> > - if (dbus_error_is_set (&derror))
> > - XD_ERROR (derror);
> > + if (!dont_request_name || NILP (dont_request_name))
>
> dont_request_name is a Lisp object, it is nil when not used in the
> call. You shall use
>
> if (NILP (dont_request_name))
Done.
Kind regards,
Jan
[-- Attachment #2: dbus-dont-register-service.patch --]
[-- Type: text/x-patch, Size: 16782 bytes --]
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: jan.moringen@uni-bielefeld.de-20110104023841-\
# k6faivnl513kq9ng
# target_branch: bzr://bzr.savannah.gnu.org/emacs/trunk/
# testament_sha1: f899596030b46b47165b0dff53cb9e67f28ceaff
# timestamp: 2011-01-04 03:40:18 +0100
# base_revision_id: yamaoka@jpl.org-20110104022415-mkhshvn1pqc40zw6
#
# Begin patch
=== modified file 'doc/misc/dbus.texi'
--- doc/misc/dbus.texi 2010-11-10 08:41:53 +0000
+++ doc/misc/dbus.texi 2011-01-04 02:38:41 +0000
@@ -1264,7 +1264,7 @@
string.
@end deffn
-@defun dbus-register-method bus service path interface method handler
+@defun dbus-register-method bus service path interface method handler dont-register-service
With this function, an application registers @var{method} on the D-Bus
@var{bus}.
@@ -1272,10 +1272,11 @@
@code{:session}.
@var{service} is the D-Bus service name of the D-Bus object
-@var{method} is registered for. It must be a known name.
+@var{method} is registered for. It must be a known name (See
+discussion of @var{dont-register-service} below).
-@var{path} is the D-Bus object path @var{service} is
-registered.
+@var{path} is the D-Bus object path @var{service} is registered (See
+discussion of @var{dont-register-service} below).
@var{interface} is the interface offered by @var{service}. It must
provide @var{method}.
@@ -1294,6 +1295,13 @@
In case @var{handler} shall return a reply message with an empty
argument list, @var{handler} must return the symbol @code{:ignore}.
+When @var{dont-register-service} is non-nil, the known name
+@var{service} is not registered. This means that other D-Bus clients
+have no way of noticing the newly registered method. When interfaces
+are constructed incrementally by adding single methods or properties
+at a time, @var{dont-register-service} can be use to prevent other
+clients from discovering the still incomplete interface.
+
The default D-Bus timeout when waiting for a message reply is 25
seconds. This value could be even smaller, depending on the calling
client. Therefore, @var{handler} shall not last longer than
=== modified file 'etc/NEWS'
--- etc/NEWS 2011-01-03 01:18:33 +0000
+++ etc/NEWS 2011-01-04 02:38:41 +0000
@@ -1,6 +1,6 @@
GNU Emacs NEWS -- history of user-visible changes.
-Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
See the end of the file for license conditions.
Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
@@ -556,7 +556,7 @@
*** It is possible now, to access alternative buses than the default
system or session bus.
-
+*** dbus-register-{method,property} do not necessarily register names anymore
** Tramp
*** There exists a new inline access method "ksu" (kerberized su).
@@ -713,8 +713,8 @@
*** If Emacs is compiled with libxml2 support (which is the default),
two new Emacs Lisp-level functions are defined:
-`libxml-parse-html-region' (which will parse "real world" HTML)
-and `libxml-parse-xml-region' (which parses XML). Both return an
+`xml-parse-html-string-internal' (which will parse "real world" HTML)
+and `xml-parse-string-internal' (which parses XML). Both return an
Emacs Lisp parse tree.
FIXME: These should be front-ended by xml.el.
=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog 2011-01-03 20:50:05 +0000
+++ lisp/ChangeLog 2011-01-04 02:38:41 +0000
@@ -1,3 +1,8 @@
+2011-01-04 Jan Moringen <jan.moringen@uni-bielefeld.de>
+
+ * net/dbus.el (dbus-register-property): Added optional parameter
+ dont-register-service. Updated docstring accordingly.
+
2011-01-02 Eli Zaretskii <eliz@gnu.org>
* term/w32-win.el (dynamic-library-alist): Set up correctly for
@@ -114,13 +119,6 @@
* mail/mail-utils.el (mail-mbox-from): Handle From: headers with
multiple addresses. (Bug#7760)
-2011-01-01 Ken Manheimer <ken.manheimer@gmail.com>
-
- allout.el (allout-auto-fill): Do not infinitely recurse - use
- do-auto-fill if everything points back to allout-auto-fill.
- (allout-mode-deactivate-hook): Declare obsolete, in favor of
- standard-formed minor-mode deactivate hook, allout-mode-off-hook.
-
2010-12-31 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-sh.el (tramp-methods): Add recursive options to "scpc"
@@ -190,21 +188,6 @@
pretty-printed, so that it is mergeable by line-based text merging,
as suggested by Iain Dalton <iain.dalton {_AT_} gmail.com>.
-2010-12-28 Ken Manheimer <ken.manheimer@gmail.com>
-
- allout.el (allout-v18/19-file-var-hack): Obsolete, remove.
- (allout-mode): Argument "toggle" => "force".
- Refine the docstring.
- Remove special provisions for reactivation, besides the 'force'
- argument.
- Consolidate layout provisions coce directly into the activation
- condition branch, now that we've removed those provisions.
- (allout-unload-function): Explicitly activate the mode before
- deactivating, if it's initially deactivated.
- (allout-set-buffer-multibyte): Properly prevent byte-compiler
- warnings for version of function used only where
- set-buffer-multibyte is unavailable.
-
2010-12-28 Chong Yidong <cyd@stupidchicken.com>
* tool-bar.el (tool-bar-setup): Remove :enable conditions, which
=== modified file 'lisp/net/dbus.el'
--- lisp/net/dbus.el 2010-11-03 03:49:04 +0000
+++ lisp/net/dbus.el 2011-01-04 02:38:41 +0000
@@ -868,21 +868,23 @@
(add-to-list 'result (cons (car dict) (caadr dict)) 'append)))))
(defun dbus-register-property
- (bus service path interface property access value &optional emits-signal)
+ (bus service path interface property access value
+ &optional emits-signal dont-register-service)
"Register property PROPERTY on the D-Bus BUS.
BUS is either a Lisp symbol, `:system' or `:session', or a string
denoting the bus address.
SERVICE is the D-Bus service name of the D-Bus. It must be a
-known name.
+known name (See discussion of DONT-REGISTER-SERVICE below).
-PATH is the D-Bus object path SERVICE is registered. INTERFACE
-is the name of the interface used at PATH, PROPERTY is the name
-of the property of INTERFACE. ACCESS indicates, whether the
-property can be changed by other services via D-Bus. It must be
-either the symbol `:read' or `:readwrite'. VALUE is the initial
-value of the property, it can be of any valid type (see
+PATH is the D-Bus object path SERVICE is registered (See
+discussion of DONT-REGISTER-SERVICE below). INTERFACE is the
+name of the interface used at PATH, PROPERTY is the name of the
+property of INTERFACE. ACCESS indicates, whether the property
+can be changed by other services via D-Bus. It must be either
+the symbol `:read' or `:readwrite'. VALUE is the initial value
+of the property, it can be of any valid type (see
`dbus-call-method' for details).
If PROPERTY already exists on PATH, it will be overwritten. For
@@ -894,12 +896,20 @@
PATH, including a default handler for the \"Get\", \"GetAll\" and
\"Set\" methods of this interface. When EMITS-SIGNAL is non-nil,
the signal \"PropertiesChanged\" is sent when the property is
-changed by `dbus-set-property'."
+changed by `dbus-set-property'.
+
+When DONT-REGISTER-SERVICE is non-nil, the known name SERVICE is
+not registered. This means that other D-Bus clients have no way
+of noticing the newly registered property. When interfaces are
+constructed incrementally by adding single methods or properties
+at a time, DONT-REGISTER-SERVICE can be use to prevent other
+clients from discovering the still incomplete interface."
(unless (member access '(:read :readwrite))
(signal 'dbus-error (list "Access type invalid" access)))
;; Register SERVICE.
- (unless (member service (dbus-list-names bus))
+ (unless (or dont-register-service
+ (member service (dbus-list-names bus)))
(dbus-call-method
bus dbus-service-dbus dbus-path-dbus dbus-interface-dbus
"RequestName" service 0))
@@ -907,11 +917,14 @@
;; Add the handler. We use `dbus-service-emacs' as service name, in
;; order to let unregister SERVICE despite of this default handler.
(dbus-register-method
- bus service path dbus-interface-properties "Get" 'dbus-property-handler)
- (dbus-register-method
- bus service path dbus-interface-properties "GetAll" 'dbus-property-handler)
- (dbus-register-method
- bus service path dbus-interface-properties "Set" 'dbus-property-handler)
+ bus service path dbus-interface-properties "Get" 'dbus-property-handler
+ dont-register-service)
+ (dbus-register-method
+ bus service path dbus-interface-properties "GetAll" 'dbus-property-handler
+ dont-register-service)
+ (dbus-register-method
+ bus service path dbus-interface-properties "Set" 'dbus-property-handler
+ dont-register-service)
;; Send the PropertiesChanged signal.
(when emits-signal
=== modified file 'src/ChangeLog'
--- src/ChangeLog 2011-01-03 19:35:59 +0000
+++ src/ChangeLog 2011-01-04 02:38:41 +0000
@@ -1,7 +1,7 @@
-2011-01-03 Eli Zaretskii <eliz@gnu.org>
+2011-01-04 Jan Moringen <jan.moringen@uni-bielefeld.de>
- * image.c (png_jmpbuf): Remove definition.
- (my_png_error, png_load): Don't use png_jmpbuf.
+ * dbusbind.c (dbus-register-method): Added optional parameter
+ dont-register-service. Updated docstring accordingly.
2011-01-02 Eli Zaretskii <eliz@gnu.org>
=== modified file 'src/dbusbind.c'
--- src/dbusbind.c 2010-11-10 09:08:05 +0000
+++ src/dbusbind.c 2011-01-04 02:38:41 +0000
@@ -1983,21 +1983,30 @@
}
DEFUN ("dbus-register-method", Fdbus_register_method, Sdbus_register_method,
- 6, 6, 0,
+ 6, 7, 0,
doc: /* Register for method METHOD on the D-Bus BUS.
BUS is either a Lisp symbol, `:system' or `:session', or a string
denoting the bus address.
SERVICE is the D-Bus service name of the D-Bus object METHOD is
-registered for. It must be a known name.
-
-PATH is the D-Bus object path SERVICE is registered. INTERFACE is the
-interface offered by SERVICE. It must provide METHOD. HANDLER is a
-Lisp function to be called when a method call is received. It must
-accept the input arguments of METHOD. The return value of HANDLER is
-used for composing the returning D-Bus message. */)
- (Lisp_Object bus, Lisp_Object service, Lisp_Object path, Lisp_Object interface, Lisp_Object method, Lisp_Object handler)
+registered for. It must be a known name (See discussion of
+DONT-REGISTER-SERVICE below).
+
+PATH is the D-Bus object path SERVICE is registered (See discussion of
+DONT-REGISTER-SERVICE below). INTERFACE is the interface offered by
+SERVICE. It must provide METHOD. HANDLER is a Lisp function to be
+called when a method call is received. It must accept the input
+arguments of METHOD. The return value of HANDLER is used for
+composing the returning D-Bus message.
+
+When DONT-REGISTER-SERVICE is non-nil, the known name SERVICE is not
+registered. This means that other D-Bus clients have no way of
+noticing the newly registered method. When interfaces are constructed
+incrementally by adding single methods or properties at a time,
+DONT-REGISTER-SERVICE can be use to prevent other clients from
+discovering the still incomplete interface.*/)
+ (Lisp_Object bus, Lisp_Object service, Lisp_Object path, Lisp_Object interface, Lisp_Object method, Lisp_Object handler, Lisp_Object dont_register_service)
{
Lisp_Object key, key1, value;
DBusConnection *connection;
@@ -2019,10 +2028,16 @@
/* Request the known name from the bus. We can ignore the result,
it is set to -1 if there is an error - kind of redundancy. */
- dbus_error_init (&derror);
- result = dbus_bus_request_name (connection, SDATA (service), 0, &derror);
- if (dbus_error_is_set (&derror))
- XD_ERROR (derror);
+ if (NILP (dont_register_service))
+ {
+ dbus_error_init (&derror);
+ result = dbus_bus_request_name (connection, SDATA (service), 0, &derror);
+ if (dbus_error_is_set (&derror))
+ XD_ERROR (derror);
+
+ /* Cleanup. */
+ dbus_error_free (&derror);
+ }
/* Create a hash table entry. We use nil for the unique name,
because the method might be called from anybody. */
@@ -2033,9 +2048,6 @@
if (NILP (Fmember (key1, value)))
Fputhash (key, Fcons (key1, value), Vdbus_registered_objects_table);
- /* Cleanup. */
- dbus_error_free (&derror);
-
/* Return object. */
return list2 (key, list3 (service, path, handler));
}
# Begin bundle
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
h8641BlGB26NMyyaf+LuSKcKEhTJ/5Ng
next prev parent reply other threads:[~2011-01-04 2:42 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-02 21:06 DBus methods without name grabbing Jan Moringen
2011-01-03 12:55 ` Michael Albinus
2011-01-04 2:42 ` Jan Moringen [this message]
2011-01-04 10:10 ` Michael Albinus
2011-01-04 10:29 ` Jan Moringen
2011-01-04 13:09 ` Michael Albinus
2011-01-05 4:17 ` Jan Moringen
2011-01-05 11:45 ` Michael Albinus
2011-01-08 5:48 ` Jan Moringen
2011-01-09 9:42 ` Michael Albinus
2011-01-09 16:08 ` Jan Moringen
2011-01-10 11:40 ` Michael Albinus
[not found] ` <1294201048.2508.1.camel@gunhead>
2011-01-05 10:46 ` Jan Moringen
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='7758_1294108975_ZZh0g0_f99~qx.00_1294108972.8785.33.camel@gunhead' \
--to=jan.moringen@uni-bielefeld.de \
--cc=emacs-devel@gnu.org \
--cc=michael.albinus@gmx.de \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).