Privacy lists MUST be the first delivery rule applied by a server, superseding ...
If a client sets a rule to block all stanzas of subscription=none, then the client can no longer use Service Discovery, because stanzas from/to the account's own server are also blocked.
An expected solution in the client-side is that the client adds a rule with higher priority that allows all stanzas where jid=yourserver.com. But this won't work because such JID matches not only the server, but also all the users in the server:
<domain> (the domain itself matches, as does any user@domain or domain/resource)
The solution in the server-side is that some stanzas are allowed regardless of the privacy rules the client has defined. The attached patch implements this.
- Discussion in ejabberd ML: http://thread.gmane.org/gmane.network.jabber.ejabberd/6707