added too-many-subscriptions error on subscribe

git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@3471 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2009-09-29 23:38:06 +00:00
parent 8aa0f950db
commit 0e05c2eb16
1 changed files with 18 additions and 0 deletions

View File

@ -74,6 +74,7 @@
<li>Removed subids from subscription approval forms because subscribers can have only one unapproved subscription request per node at a given time.</li>
<li>Added optional support for delivery of notifications via XMPP IQ stanzas.</li>
<li>Removed the notion of batch publishing because it makes information coherence and atom handling excessively difficult.</li>
<li>Added error handling for too-many-subscriptions to help prevent a certain denial of service attack.</li>
</ul>
</remark>
</revision>
@ -1181,6 +1182,7 @@ And by opposing end them?
<li>The requesting entity is anonymous and the service does not allow anonymous entities to subscribe.</li>
<li>The requesting entity has a pending subscription.</li>
<li>The requesting entity is blocked from subscribing (e.g., because having an affiliation of outcast).</li>
<li>The requesting entity has attempted to establish too many subscriptions.</li>
<li>The node does not support subscriptions.</li>
<li>The node has moved.</li>
<li>The node does not exist.</li>
@ -1297,6 +1299,21 @@ And by opposing end them?
</iq>
]]></example>
</section4>
<section4 topic='Too Many Subscriptions' anchor='subscriber-subscribe-error-toomany'>
<p>If the requesting entity has attempted to establish too many subscriptions (where the definition of "too many" is a matter of local service policy), the service MUST return a &policy; error to the subscriber, specifying a pubsub-specific error condition of &lt;too-many-subscriptions/&gt;.</p>
<example caption='Requesting entity has exceeded limit on number of subscriptions'><![CDATA[
<iq type='error'
from='pubsub.shakespeare.lit'
to='francisco@denmark.lit/barracks'
id='sub1'>
<error type='wait'>
<policy-violation xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
<too-many-subscriptions xmlns='http://jabber.org/protocol/pubsub#errors'/>
</error>
</iq>
]]></example>
<p>The service can match on bare JID or full JID in determining which subscribing entities match for the purpose of determining if an entity has requested too many subscriptions.</p>
</section4>
<section4 topic='Subscriptions Not Supported' anchor='subscriber-subscribe-error-unsupported'>
<p>If the node does not allow entities to subscribe, the service SHOULD return a &feature; error to the subscriber, specifying a pubsub-specific error condition of &lt;unsupported/&gt; and a feature of "subscribe".</p>
<example caption='Subscribing not supported'><![CDATA[
@ -6481,6 +6498,7 @@ xmpp:pubsub.shakespeare.lit?pubsub;action=retrieve;node=princely_musings
<xs:element name='pending-subscription' type='empty'/>
<xs:element name='presence-subscription-required' type='empty'/>
<xs:element name='subid-required' type='empty'/>
<xs:element name='too-many-subscriptions' type='empty'/>
<xs:element name='unsupported'>
<xs:complexType>
<xs:simpleContent>