Software /
code /
prosody
Annotate
spec/scansion/pubsub_max_items.scs @ 12828:f33887f925e1
net.server_epoll: Remove delay on last main loop iteration when quitting
Main difference is that timers are not checked unconditionally before
each poll, only when running out of previous poll results (hidden by
util.poll). This removes a final poll at shutdown that usually delays
the 'not quitting' condition check by one second.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 06 Jan 2023 04:38:39 +0100 |
parent | 11856:14a679588b7b |
child | 12966:7465d3c5679d |
rev | line source |
---|---|
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
1 # Pubsub: Requesting the Most Recent Items (#1608) |
9833 | 2 |
3 [Client] Alice | |
4 jid: admin@localhost | |
5 password: password | |
6 | |
7 --------- | |
8 | |
9 Alice connects | |
10 | |
11 Alice sends: | |
12 <presence xmlns:stream="http://etherx.jabber.org/streams" id=":7IoqYcT3191rfk_dZGo2"/> | |
13 | |
14 Alice receives: | |
15 <presence xmlns:stream="http://etherx.jabber.org/streams" from="${Alice's full JID}" id=":7IoqYcT3191rfk_dZGo2"/> | |
16 | |
17 Alice sends: | |
18 <iq xmlns:stream="http://etherx.jabber.org/streams" to="pubsub.localhost" id=":m0SM8Hn5JxP9BJJ_X4Mz" type="set"> | |
19 <pubsub xmlns="http://jabber.org/protocol/pubsub"> | |
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
20 <create node="5549ea47-ea53-4cc1-9e7c-37842fe4bc06"/> |
9833 | 21 </pubsub> |
22 </iq> | |
23 | |
24 Alice receives: | |
25 <iq xmlns:stream="http://etherx.jabber.org/streams" to="${Alice's full JID}" from="pubsub.localhost" type="result" id=":m0SM8Hn5JxP9BJJ_X4Mz"/> | |
26 | |
27 Alice sends: | |
28 <iq xmlns:stream="http://etherx.jabber.org/streams" to="pubsub.localhost" id=":gwZgEQmzAHcQz-FZOxi-" type="get"> | |
29 <pubsub xmlns="http://jabber.org/protocol/pubsub#owner"> | |
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
30 <configure node="5549ea47-ea53-4cc1-9e7c-37842fe4bc06"/> |
9833 | 31 </pubsub> |
32 </iq> | |
33 | |
34 Alice receives: | |
35 <iq xmlns:stream="http://etherx.jabber.org/streams" to="${Alice's full JID}" from="pubsub.localhost" type="result" id=":gwZgEQmzAHcQz-FZOxi-"> | |
36 <pubsub xmlns="http://jabber.org/protocol/pubsub#owner"> | |
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
37 <configure node="5549ea47-ea53-4cc1-9e7c-37842fe4bc06"> |
9833 | 38 <x xmlns="jabber:x:data" type="form"> |
39 <field var="FORM_TYPE" type="hidden"> | |
40 <value>http://jabber.org/protocol/pubsub#node_config</value> | |
41 </field> | |
42 <field var="pubsub#title" label="Title" type="text-single"/> | |
43 <field var="pubsub#description" label="Description" type="text-single"/> | |
44 <field var="pubsub#type" label="The type of node data, usually specified by the namespace of the payload (if any)" type="text-single"/> | |
45 <field var="pubsub#max_items" label="Max # of items to persist" type="text-single"> | |
11855
8890eaa69446
mod_pubsub: Prevent max_items from being set to zero
Kim Alvefur <zash@zash.se>
parents:
11854
diff
changeset
|
46 <validate xmlns="http://jabber.org/protocol/xdata-validate" datatype="pubsub:integer-or-max"> |
11856
14a679588b7b
mod_pubsub,mod_pep: Advertise maximum number of items via XEP-0122
Kim Alvefur <zash@zash.se>
parents:
11855
diff
changeset
|
47 <range min="1" max="256"/> |
11855
8890eaa69446
mod_pubsub: Prevent max_items from being set to zero
Kim Alvefur <zash@zash.se>
parents:
11854
diff
changeset
|
48 </validate> |
9833 | 49 <value>20</value> |
50 </field> | |
51 <field var="pubsub#persist_items" label="Persist items to storage" type="boolean"> | |
11720
72512c0858b3
mod_pubsub: Explicitly enable persistence by default to preserve behavior
Kim Alvefur <zash@zash.se>
parents:
11714
diff
changeset
|
52 <value>1</value> |
9833 | 53 </field> |
54 <field var="pubsub#access_model" label="Specify the subscriber model" type="list-single"> | |
55 <option label="authorize"> | |
56 <value>authorize</value> | |
57 </option> | |
58 <option label="open"> | |
59 <value>open</value> | |
60 </option> | |
61 <option label="presence"> | |
62 <value>presence</value> | |
63 </option> | |
64 <option label="roster"> | |
65 <value>roster</value> | |
66 </option> | |
67 <option label="whitelist"> | |
68 <value>whitelist</value> | |
69 </option> | |
70 <value>open</value> | |
71 </field> | |
72 <field var="pubsub#publish_model" label="Specify the publisher model" type="list-single"> | |
73 <option label="publishers"> | |
74 <value>publishers</value> | |
75 </option> | |
76 <option label="subscribers"> | |
77 <value>subscribers</value> | |
78 </option> | |
79 <option label="open"> | |
80 <value>open</value> | |
81 </option> | |
82 <value>publishers</value> | |
83 </field> | |
11854
b605cbd5f13b
mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Kim Alvefur <zash@zash.se>
parents:
11768
diff
changeset
|
84 <field type='list-single' var='pubsub#send_last_published_item'> |
b605cbd5f13b
mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Kim Alvefur <zash@zash.se>
parents:
11768
diff
changeset
|
85 <option label='never'> |
b605cbd5f13b
mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Kim Alvefur <zash@zash.se>
parents:
11768
diff
changeset
|
86 <value>never</value> |
b605cbd5f13b
mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Kim Alvefur <zash@zash.se>
parents:
11768
diff
changeset
|
87 </option> |
b605cbd5f13b
mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Kim Alvefur <zash@zash.se>
parents:
11768
diff
changeset
|
88 <option label='on_sub'> |
b605cbd5f13b
mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Kim Alvefur <zash@zash.se>
parents:
11768
diff
changeset
|
89 <value>on_sub</value> |
b605cbd5f13b
mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Kim Alvefur <zash@zash.se>
parents:
11768
diff
changeset
|
90 </option> |
b605cbd5f13b
mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Kim Alvefur <zash@zash.se>
parents:
11768
diff
changeset
|
91 <option label='on_sub_and_presence'> |
b605cbd5f13b
mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Kim Alvefur <zash@zash.se>
parents:
11768
diff
changeset
|
92 <value>on_sub_and_presence</value> |
b605cbd5f13b
mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Kim Alvefur <zash@zash.se>
parents:
11768
diff
changeset
|
93 </option> |
b605cbd5f13b
mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Kim Alvefur <zash@zash.se>
parents:
11768
diff
changeset
|
94 <value>never</value> |
b605cbd5f13b
mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436
Kim Alvefur <zash@zash.se>
parents:
11768
diff
changeset
|
95 </field> |
9833 | 96 <field var="pubsub#deliver_notifications" label="Whether to deliver event notifications" type="boolean"> |
97 <value>1</value> | |
98 </field> | |
99 <field var="pubsub#deliver_payloads" label="Whether to deliver payloads with event notifications" type="boolean"> | |
100 <value>1</value> | |
101 </field> | |
102 <field var="pubsub#notification_type" label="Specify the delivery style for notifications" type="list-single"> | |
103 <option label="Messages of type normal"> | |
104 <value>normal</value> | |
105 </option> | |
106 <option label="Messages of type headline"> | |
107 <value>headline</value> | |
108 </option> | |
109 <value>headline</value> | |
110 </field> | |
111 <field var="pubsub#notify_delete" label="Whether to notify subscribers when the node is deleted" type="boolean"> | |
112 <value>1</value> | |
113 </field> | |
114 <field var="pubsub#notify_retract" label="Whether to notify subscribers when items are removed from the node" type="boolean"> | |
115 <value>1</value> | |
116 </field> | |
117 </x> | |
118 </configure> | |
119 </pubsub> | |
120 </iq> | |
121 | |
122 Alice sends: | |
123 <iq xmlns:stream="http://etherx.jabber.org/streams" to="pubsub.localhost" id=":pfWBQ2MNIq8ieul57Qp7" type="set"> | |
124 <pubsub xmlns="http://jabber.org/protocol/pubsub"> | |
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
125 <publish node="5549ea47-ea53-4cc1-9e7c-37842fe4bc06"> |
9833 | 126 <item id="20e9eb9e-8acb-436e-a486-40e80400faf1"> |
127 <foo xmlns="https://zombofant.net/xmlns/aioxmpp#test">foo</foo> | |
128 </item> | |
129 </publish> | |
130 </pubsub> | |
131 </iq> | |
132 | |
133 Alice receives: | |
134 <iq xmlns:stream="http://etherx.jabber.org/streams" to="${Alice's full JID}" from="pubsub.localhost" type="result" id=":pfWBQ2MNIq8ieul57Qp7"> | |
135 <pubsub xmlns="http://jabber.org/protocol/pubsub"> | |
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
136 <publish node="5549ea47-ea53-4cc1-9e7c-37842fe4bc06"> |
9833 | 137 <item id="20e9eb9e-8acb-436e-a486-40e80400faf1"/> |
138 </publish> | |
139 </pubsub> | |
140 </iq> | |
141 | |
142 Alice sends: | |
143 <iq xmlns:stream="http://etherx.jabber.org/streams" to="pubsub.localhost" id=":Q5TLT6nsW0HHdkDgrPPe" type="set"> | |
144 <pubsub xmlns="http://jabber.org/protocol/pubsub"> | |
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
145 <publish node="5549ea47-ea53-4cc1-9e7c-37842fe4bc06"> |
9833 | 146 <item id="4b94623d-1127-41c0-ac47-e283fd890557"> |
147 <foo xmlns="https://zombofant.net/xmlns/aioxmpp#test">bar</foo> | |
148 </item> | |
149 </publish> | |
150 </pubsub> | |
151 </iq> | |
152 | |
153 Alice receives: | |
154 <iq xmlns:stream="http://etherx.jabber.org/streams" to="${Alice's full JID}" from="pubsub.localhost" type="result" id=":Q5TLT6nsW0HHdkDgrPPe"> | |
155 <pubsub xmlns="http://jabber.org/protocol/pubsub"> | |
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
156 <publish node="5549ea47-ea53-4cc1-9e7c-37842fe4bc06"> |
9833 | 157 <item id="4b94623d-1127-41c0-ac47-e283fd890557"/> |
158 </publish> | |
159 </pubsub> | |
160 </iq> | |
161 | |
162 Alice sends: | |
163 <iq xmlns:stream="http://etherx.jabber.org/streams" to="pubsub.localhost" id=":3nvB2E20p1iuM6lOPaP6" type="get"> | |
164 <pubsub xmlns="http://jabber.org/protocol/pubsub"> | |
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
165 <items node="5549ea47-ea53-4cc1-9e7c-37842fe4bc06" max_items="1"/> |
9833 | 166 </pubsub> |
167 </iq> | |
168 | |
169 Alice receives: | |
170 <iq xmlns:stream="http://etherx.jabber.org/streams" to="${Alice's full JID}" from="pubsub.localhost" type="result" id=":3nvB2E20p1iuM6lOPaP6"> | |
171 <pubsub xmlns="http://jabber.org/protocol/pubsub"> | |
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
172 <items node="5549ea47-ea53-4cc1-9e7c-37842fe4bc06"> |
11714
d783716103c1
mod_pubsub: Fix inclusion of publisher (fixes #1399)
Kim Alvefur <zash@zash.se>
parents:
11631
diff
changeset
|
173 <item publisher="${Alice's JID}" xmlns="http://jabber.org/protocol/pubsub" id="4b94623d-1127-41c0-ac47-e283fd890557"> |
9833 | 174 <foo xmlns="https://zombofant.net/xmlns/aioxmpp#test">bar</foo> |
175 </item> | |
176 </items> | |
177 </pubsub> | |
178 </iq> | |
179 | |
180 Alice sends: | |
181 <iq xmlns:stream="http://etherx.jabber.org/streams" to="pubsub.localhost" id=":XQdyK54iyOKiJvUoX9t_" type="get"> | |
182 <pubsub xmlns="http://jabber.org/protocol/pubsub"> | |
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
183 <items node="5549ea47-ea53-4cc1-9e7c-37842fe4bc06"/> |
9833 | 184 </pubsub> |
185 </iq> | |
186 | |
187 Alice receives: | |
188 <iq xmlns:stream="http://etherx.jabber.org/streams" to="${Alice's full JID}" from="pubsub.localhost" type="result" id=":XQdyK54iyOKiJvUoX9t_"> | |
189 <pubsub xmlns="http://jabber.org/protocol/pubsub"> | |
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
190 <items node="5549ea47-ea53-4cc1-9e7c-37842fe4bc06"> |
11714
d783716103c1
mod_pubsub: Fix inclusion of publisher (fixes #1399)
Kim Alvefur <zash@zash.se>
parents:
11631
diff
changeset
|
191 <item xmlns="http://jabber.org/protocol/pubsub" publisher="${Alice's JID}" id="20e9eb9e-8acb-436e-a486-40e80400faf1"> |
9833 | 192 <foo xmlns="https://zombofant.net/xmlns/aioxmpp#test">foo</foo> |
193 </item> | |
11714
d783716103c1
mod_pubsub: Fix inclusion of publisher (fixes #1399)
Kim Alvefur <zash@zash.se>
parents:
11631
diff
changeset
|
194 <item xmlns="http://jabber.org/protocol/pubsub" publisher="${Alice's JID}" id="4b94623d-1127-41c0-ac47-e283fd890557"> |
9833 | 195 <foo xmlns="https://zombofant.net/xmlns/aioxmpp#test">bar</foo> |
196 </item> | |
197 </items> | |
198 </pubsub> | |
199 </iq> | |
200 | |
201 Alice sends: | |
202 <iq xmlns:stream="http://etherx.jabber.org/streams" to="pubsub.localhost" id=":ySGQOz5tnyWT82idwJZP" type="set"> | |
203 <pubsub xmlns="http://jabber.org/protocol/pubsub#owner"> | |
11768
aa6ab07544c2
mod_pubsub: Add support for limiting result size #1608
Kim Alvefur <zash@zash.se>
parents:
11720
diff
changeset
|
204 <delete node="5549ea47-ea53-4cc1-9e7c-37842fe4bc06"/> |
9833 | 205 </pubsub> |
206 </iq> | |
207 | |
208 Alice receives: | |
209 <iq xmlns:stream="http://etherx.jabber.org/streams" to="${Alice's full JID}" from="pubsub.localhost" type="result" id=":ySGQOz5tnyWT82idwJZP"/> | |
210 |