Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
This wins about 4s over a 54s real-world benchmark.
|
|
Specifically, previously, each MUC would be added as a roster item, and
then each join presence would be counted as a resource of that item,
triggering 1 to 5 events and more backend logic in slixmpp.
As a result, joining big rooms is tremendously slow, (JID() calls,
event() calls, __getitem__ calls for nothing), and takes RAM (a quick
tracemalloc tells me around 1 MiB for 3500 participants, i.e. 2 big IRC
rooms). Those resources may not necessarily be cleaned properly, leading
to memory leaks on long-term usage.
This is a micro-optimization that adds an attribute to roster items so
that MUC room events can be ignored safely while not affecting common
roster usage.
|
|
|
|
|
|
|
|
|
|
function
This makes it go down from 8.767s to 7.960s in a random benchmark.
Remove unnecessary assignations, don’t create an OrderedDict from a
dict to then convert it to a dict again, only obtain the get_method2
name if get_method wasn’t present.
get_method2 (the title-case one) takes about 1/8th of the total time
spent in this function, we should eliminate it as soon as possible.
|
|
|
|
|
|
|
|
mostly useless, but allows to use LastActivity stanzas inside Presence
stanzas as well.
|
|
Improving the api if the developer wants to wait on them.
|
|
|
|
|
|
|
|
|
|
The keepalive ping was not working, and and ping() was tracebacking due
to a wrong parameter.
|
|
since iq.send is non-blocking, some features handlers could end up
being executed before others were set, leading to issues. Adding yield
from where it’s necessary fixes that.
|
|
|
|
|
|
|
|
|
|
|
|
See 5c769632e8d35ea76990a1de3ab405c57a21482e.
|
|
|
|
|
|
|
|
Conflicts:
README.rst
examples/IoT_TestDevice.py
examples/disco_browser.py
setup.py
sleekxmpp/jid.py
sleekxmpp/plugins/google/auth/stanza.py
sleekxmpp/plugins/google/gmail/notifications.py
sleekxmpp/plugins/google/nosave/stanza.py
sleekxmpp/plugins/google/settings/settings.py
sleekxmpp/thirdparty/__init__.py
sleekxmpp/thirdparty/socks.py
sleekxmpp/thirdparty/statemachine.py
sleekxmpp/util/__init__.py
sleekxmpp/xmlstream/xmlstream.py
slixmpp/basexmpp.py
slixmpp/plugins/xep_0004/stanza/form.py
slixmpp/plugins/xep_0009/rpc.py
slixmpp/plugins/xep_0050/adhoc.py
slixmpp/plugins/xep_0065/proxy.py
slixmpp/plugins/xep_0084/stanza.py
slixmpp/plugins/xep_0202/time.py
slixmpp/plugins/xep_0323/sensordata.py
slixmpp/plugins/xep_0325/control.py
slixmpp/plugins/xep_0325/stanza/control.py
slixmpp/roster/single.py
slixmpp/stanza/atom.py
slixmpp/stanza/rootstanza.py
slixmpp/test/slixtest.py
slixmpp/util/sasl/mechanisms.py
slixmpp/version.py
slixmpp/xmlstream/stanzabase.py
tests/test_stanza_xep_0323.py
tests/test_stanza_xep_0325.py
tests/test_stream_xep_0323.py
tests/test_stream_xep_0325.py
|
|
|
|
|
|
asyncio module is provisional, which means it gets updated everytime
|
|
|
|
Xep 0050 updates
|
|
# Conflicts:
# tests/test_stream_xep_0050.py
|
|
Merge to fritzy_master
|
|
XEP_0122: Add support for form validation
|
|
Only send time if Iq type is get.
|
|
Do not overwrite telephone numbers
|
|
Add get users by affiliation.
|
|
Fix UnboundlocalError in disco_browser.py example
|
|
iot: only add the 'done' field when all devices are done
|
|
XEP_0004: Data Forms use register_stanza_plugin
|
|
Should not use iterable for registering the stanza plugins.
|
|
|
|
changed xep_0121 to xep_0122
|
|
add_xep_0122
|
|
Add a test case that will verify that reported fields can contain data form validation data.
|