Next: Requesting info, Previous: Extending service discovery, Up: Extending service discovery
Your new IQ request handlers will likely want to advertise their existence through service discovery.
To have an additional feature reported in response to disco info
requests, add a string to jabber-advertised-features
.
By default, the service discovery functions reject all requests
containing a node identifier with an “Item not found” error. To
make them respond, add the appropriate entries to
jabber-disco-items-nodes
and jabber-disco-info-nodes
.
Both variables work in the same way. They are alists, where the keys
are the node names, and the values are lists of two items.
The first item is the data to return — either a list, or a function
taking the connection object and the entire IQ stanza and returning a
list; in either case this list contains the XML nodes to include in the
<query/>
node in the response.
The second item is the access control function. An access control
function receives the connection object and a JID as arguments, and
returns non-nil if access is to be granted. If nil is specified
instead of a function, access is always granted. One such function is
provided, jabber-my-jid-p
, which grants access for JIDs where
the username and server (not necessarily resource) are equal to those
of the user, or one of the user's configured accounts.