Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/python-nbxmpp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Leboulanger <asterix@lagaule.org>2013-07-26 13:26:52 +0400
committerYann Leboulanger <asterix@lagaule.org>2013-07-26 13:26:52 +0400
commitaabc7eab10af55d8ea4e1b745df0c023ea2a88b2 (patch)
tree2121c1a9779ccc1c2205e36b4e7ae14e4deed941
parentdd079f270f661323d322c184136263ba685a911d (diff)
update HTML docnbxmpp-0.2
-rw-r--r--doc/apidocs/api-objects.txt67
-rw-r--r--doc/apidocs/class-tree.html2
-rw-r--r--doc/apidocs/help.html2
-rw-r--r--doc/apidocs/identifier-index.html702
-rw-r--r--doc/apidocs/module-tree.html2
-rw-r--r--doc/apidocs/nbxmpp-module.html1466
-rw-r--r--doc/apidocs/nbxmpp-pysrc.html2
-rw-r--r--doc/apidocs/nbxmpp.auth_nb-module.html2
-rw-r--r--doc/apidocs/nbxmpp.auth_nb-pysrc.html65
-rw-r--r--doc/apidocs/nbxmpp.auth_nb.NonBlockingBind-class.html20
-rw-r--r--doc/apidocs/nbxmpp.auth_nb.NonBlockingNonSASL-class.html8
-rw-r--r--doc/apidocs/nbxmpp.auth_nb.SASL-class.html26
-rw-r--r--doc/apidocs/nbxmpp.bosh-module.html2
-rw-r--r--doc/apidocs/nbxmpp.bosh-pysrc.html978
-rw-r--r--doc/apidocs/nbxmpp.bosh.AckChecker-class.html2
-rw-r--r--doc/apidocs/nbxmpp.bosh.KeyStack-class.html2
-rw-r--r--doc/apidocs/nbxmpp.bosh.NonBlockingBOSH-class.html66
-rw-r--r--doc/apidocs/nbxmpp.c14n-module.html2
-rw-r--r--doc/apidocs/nbxmpp.c14n-pysrc.html22
-rw-r--r--doc/apidocs/nbxmpp.client_nb-module.html2
-rw-r--r--doc/apidocs/nbxmpp.client_nb-pysrc.html1255
-rw-r--r--doc/apidocs/nbxmpp.client_nb.NonBlockingClient-class.html4
-rw-r--r--doc/apidocs/nbxmpp.dispatcher_nb-module.html2
-rw-r--r--doc/apidocs/nbxmpp.dispatcher_nb-pysrc.html568
-rw-r--r--doc/apidocs/nbxmpp.dispatcher_nb.BOSHDispatcher-class.html32
-rw-r--r--doc/apidocs/nbxmpp.dispatcher_nb.Dispatcher-class.html2
-rw-r--r--doc/apidocs/nbxmpp.dispatcher_nb.XMPPDispatcher-class.html32
-rw-r--r--doc/apidocs/nbxmpp.features_nb-module.html2
-rw-r--r--doc/apidocs/nbxmpp.features_nb-pysrc.html2
-rw-r--r--doc/apidocs/nbxmpp.idlequeue-module.html2
-rw-r--r--doc/apidocs/nbxmpp.idlequeue-pysrc.html249
-rw-r--r--doc/apidocs/nbxmpp.idlequeue.GlibIdleQueue-class.html2
-rw-r--r--doc/apidocs/nbxmpp.idlequeue.IdleCommand-class.html2
-rw-r--r--doc/apidocs/nbxmpp.idlequeue.IdleObject-class.html2
-rw-r--r--doc/apidocs/nbxmpp.idlequeue.IdleQueue-class.html2
-rw-r--r--doc/apidocs/nbxmpp.idlequeue.SelectIdleQueue-class.html2
-rw-r--r--doc/apidocs/nbxmpp.plugin-module.html2
-rw-r--r--doc/apidocs/nbxmpp.plugin-pysrc.html2
-rw-r--r--doc/apidocs/nbxmpp.plugin.PlugIn-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol-module.html762
-rw-r--r--doc/apidocs/nbxmpp.protocol-pysrc.html3227
-rw-r--r--doc/apidocs/nbxmpp.protocol.Acks-class.html14
-rw-r--r--doc/apidocs/nbxmpp.protocol.BOSHBody-class.html2
-rw-r--r--doc/apidocs/nbxmpp.protocol.BadFormat-class.html34
-rw-r--r--doc/apidocs/nbxmpp.protocol.BadNamespacePrefix-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.Conflict-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.ConnectionTimeout-class.html34
-rw-r--r--doc/apidocs/nbxmpp.protocol.DataField-class.html2
-rw-r--r--doc/apidocs/nbxmpp.protocol.DataForm-class.html2
-rw-r--r--doc/apidocs/nbxmpp.protocol.Error-class.html2
-rw-r--r--doc/apidocs/nbxmpp.protocol.ErrorNode-class.html2
-rw-r--r--doc/apidocs/nbxmpp.protocol.Hashes-class.html15
-rw-r--r--doc/apidocs/nbxmpp.protocol.HostGone-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.HostUnknown-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.ImproperAddressing-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.InternalServerError-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.InvalidFrom-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.InvalidID-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.InvalidNamespace-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.InvalidXML-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.Iq-class.html26
-rw-r--r--doc/apidocs/nbxmpp.protocol.JID-class.html2
-rw-r--r--doc/apidocs/nbxmpp.protocol.Message-class.html2
-rw-r--r--doc/apidocs/nbxmpp.protocol.NodeProcessed-class.html30
-rw-r--r--doc/apidocs/nbxmpp.protocol.NotAuthorized-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.PolicyViolation-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.Presence-class.html2
-rw-r--r--doc/apidocs/nbxmpp.protocol.Protocol-class.html12
-rw-r--r--doc/apidocs/nbxmpp.protocol.RemoteConnectionFailed-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.ResourceConstraint-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.RestrictedXML-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.SeeOtherHost-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.StreamError-class.html84
-rw-r--r--doc/apidocs/nbxmpp.protocol.SystemShutdown-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.UndefinedCondition-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.UnsupportedEncoding-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.UnsupportedStanzaType-class.html34
-rw-r--r--doc/apidocs/nbxmpp.protocol.UnsupportedVersion-class.html36
-rw-r--r--doc/apidocs/nbxmpp.protocol.XMLNotWellFormed-class.html36
-rw-r--r--doc/apidocs/nbxmpp.proxy_connectors-module.html2
-rw-r--r--doc/apidocs/nbxmpp.proxy_connectors-pysrc.html2
-rw-r--r--doc/apidocs/nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html12
-rw-r--r--doc/apidocs/nbxmpp.proxy_connectors.ProxyConnector-class.html14
-rw-r--r--doc/apidocs/nbxmpp.proxy_connectors.SOCKS5Connector-class.html12
-rw-r--r--doc/apidocs/nbxmpp.roster_nb-module.html2
-rw-r--r--doc/apidocs/nbxmpp.roster_nb-pysrc.html68
-rw-r--r--doc/apidocs/nbxmpp.roster_nb.NonBlockingRoster-class.html32
-rw-r--r--doc/apidocs/nbxmpp.simplexml-module.html2
-rw-r--r--doc/apidocs/nbxmpp.simplexml-pysrc.html238
-rw-r--r--doc/apidocs/nbxmpp.simplexml.NT-class.html2
-rw-r--r--doc/apidocs/nbxmpp.simplexml.Node-class.html56
-rw-r--r--doc/apidocs/nbxmpp.simplexml.NodeBuilder-class.html2
-rw-r--r--doc/apidocs/nbxmpp.simplexml.T-class.html2
-rw-r--r--doc/apidocs/nbxmpp.smacks-module.html2
-rw-r--r--doc/apidocs/nbxmpp.smacks-pysrc.html213
-rw-r--r--doc/apidocs/nbxmpp.smacks.Smacks-class.html2
-rw-r--r--doc/apidocs/nbxmpp.stringprepare-module.html2
-rw-r--r--doc/apidocs/nbxmpp.stringprepare-pysrc.html2
-rw-r--r--doc/apidocs/nbxmpp.stringprepare.EmptyMappingTable-class.html2
-rw-r--r--doc/apidocs/nbxmpp.stringprepare.ILookupTable-class.html2
-rw-r--r--doc/apidocs/nbxmpp.stringprepare.IMappingTable-class.html2
-rw-r--r--doc/apidocs/nbxmpp.stringprepare.LookupTable-class.html2
-rw-r--r--doc/apidocs/nbxmpp.stringprepare.LookupTableFromFunction-class.html2
-rw-r--r--doc/apidocs/nbxmpp.stringprepare.MappingTableFromFunction-class.html2
-rw-r--r--doc/apidocs/nbxmpp.stringprepare.NamePrep-class.htmlbin16404 -> 16404 bytes
-rw-r--r--doc/apidocs/nbxmpp.stringprepare.Profile-class.html2
-rw-r--r--doc/apidocs/nbxmpp.tls_nb-module.html2
-rw-r--r--doc/apidocs/nbxmpp.tls_nb-pysrc.html238
-rw-r--r--doc/apidocs/nbxmpp.tls_nb.NonBlockingTLS-class.html2
-rw-r--r--doc/apidocs/nbxmpp.tls_nb.PyOpenSSLWrapper-class.html2
-rw-r--r--doc/apidocs/nbxmpp.tls_nb.SSLWrapper-class.html2
-rw-r--r--doc/apidocs/nbxmpp.tls_nb.SSLWrapper.Error-class.html46
-rw-r--r--doc/apidocs/nbxmpp.tls_nb.StdlibSSLWrapper-class.html2
-rw-r--r--doc/apidocs/nbxmpp.transports_nb-module.html2
-rw-r--r--doc/apidocs/nbxmpp.transports_nb-pysrc.html960
-rw-r--r--doc/apidocs/nbxmpp.transports_nb.NonBlockingHTTP-class.html28
-rw-r--r--doc/apidocs/nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html24
-rw-r--r--doc/apidocs/nbxmpp.transports_nb.NonBlockingTCP-class.html46
-rw-r--r--doc/apidocs/nbxmpp.transports_nb.NonBlockingTransport-class.html20
-rw-r--r--doc/apidocs/toc-everything.html79
-rw-r--r--doc/apidocs/toc-nbxmpp-module.html59
-rw-r--r--doc/apidocs/toc-nbxmpp.protocol-module.html20
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_a.gifbin8618 -> 8614 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_a_2.gifbin7050 -> 7059 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_a_3.gifbin9936 -> 9951 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_b.gifbin26446 -> 26431 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_d.gifbin22695 -> 22658 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_d_2.gifbin18037 -> 18002 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_i.gifbin9233 -> 9250 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_i_3.gifbin8891 -> 8886 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_i_4.gifbin10136 -> 10114 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_i_5.gifbin9567 -> 9555 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p.gifbin21383 -> 21546 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_10.gifbin21535 -> 21443 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_11.gifbin13514 -> 13507 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_12.gifbin14869 -> 14793 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_13.gifbin8490 -> 8450 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_14.gifbin8600 -> 8570 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_15.gifbin8861 -> 8825 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_16.gifbin8760 -> 8726 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_17.gifbin8516 -> 8469 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_18.gifbin8416 -> 8379 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_19.gifbin8811 -> 8775 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_2.gifbin15522 -> 15512 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_20.gifbin8519 -> 8490 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_21.gifbin30199 -> 30170 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_22.gifbin31721 -> 31687 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_23.gifbin7900 -> 7860 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_24.gifbin8626 -> 8588 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_25.gifbin8656 -> 8626 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_26.gifbin31991 -> 31986 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_27.gifbin24268 -> 24247 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_28.gifbin8927 -> 8889 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_29.gifbin8822 -> 8780 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_3.gifbin13525 -> 13525 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_30.gifbin8668 -> 8641 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_31.gifbin8659 -> 8623 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_32.gifbin44547 -> 43197 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_33.gifbin8841 -> 8807 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_34.gifbin8741 -> 8718 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_35.gifbin8856 -> 8823 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_36.gifbin9037 -> 8995 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_37.gifbin8852 -> 8828 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_38.gifbin8846 -> 8820 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_39.gifbin7961 -> 7938 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_4.gifbin8523 -> 8468 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_40.gifbin8575 -> 8530 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_41.gifbin7935 -> 7922 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_5.gifbin8960 -> 8916 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_6.gifbin8388 -> 8336 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_7.gifbin8717 -> 8671 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_8.gifbin21026 -> 21013 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_p_9.gifbin19603 -> 19543 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_r.gifbin13035 -> 13008 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_s_2.gifbin24702 -> 24602 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_t_2.gifbin6050 -> 6045 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_t_3.gifbin6677 -> 6674 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_t_4.gifbin14119 -> 14134 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_t_5.gifbin5419 -> 5415 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_t_6.gifbin33193 -> 33094 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_t_7.gifbin34037 -> 33944 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_t_8.gifbin26674 -> 26707 bytes
-rw-r--r--doc/apidocs/uml_class_diagram_for_nbxmpp_t_9.gifbin19007 -> 19008 bytes
183 files changed, 5696 insertions, 7201 deletions
diff --git a/doc/apidocs/api-objects.txt b/doc/apidocs/api-objects.txt
index 6375d63..b0e775a 100644
--- a/doc/apidocs/api-objects.txt
+++ b/doc/apidocs/api-objects.txt
@@ -1,63 +1,8 @@
nbxmpp nbxmpp-module.html
-nbxmpp.STREAM_NOT_AUTHORIZED nbxmpp-module.html#STREAM_NOT_AUTHORIZED
-nbxmpp.STREAM_RESTRICTED_XML nbxmpp-module.html#STREAM_RESTRICTED_XML
nbxmpp.isResultNode nbxmpp.protocol-module.html#isResultNode
-nbxmpp.STREAM_CONNECTION_TIMEOUT nbxmpp-module.html#STREAM_CONNECTION_TIMEOUT
-nbxmpp.STREAM_IMPROPER_ADDRESSING nbxmpp-module.html#STREAM_IMPROPER_ADDRESSING
-nbxmpp.STREAM_UNSUPPORTED_STANZA_TYPE nbxmpp-module.html#STREAM_UNSUPPORTED_STANZA_TYPE
-nbxmpp.ERR_GONE nbxmpp-module.html#ERR_GONE
-nbxmpp.ERR_CONFLICT nbxmpp-module.html#ERR_CONFLICT
-nbxmpp.ERR_NOT_AUTHORIZED nbxmpp-module.html#ERR_NOT_AUTHORIZED
-nbxmpp.ERR_REGISTRATION_REQUIRED nbxmpp-module.html#ERR_REGISTRATION_REQUIRED
-nbxmpp.ERR_INTERNAL_SERVER_ERROR nbxmpp-module.html#ERR_INTERNAL_SERVER_ERROR
-nbxmpp.SASL_INCORRECT_ENCODING nbxmpp-module.html#SASL_INCORRECT_ENCODING
-nbxmpp.STREAM_INTERNAL_SERVER_ERROR nbxmpp-module.html#STREAM_INTERNAL_SERVER_ERROR
-nbxmpp.ERR_REDIRECT nbxmpp-module.html#ERR_REDIRECT
nbxmpp.isErrorNode nbxmpp.protocol-module.html#isErrorNode
-nbxmpp.ERR_FEATURE_NOT_IMPLEMENTED nbxmpp-module.html#ERR_FEATURE_NOT_IMPLEMENTED
-nbxmpp.name nbxmpp-module.html#name
-nbxmpp.ERR_RESOURCE_CONSTRAINT nbxmpp-module.html#ERR_RESOURCE_CONSTRAINT
-nbxmpp.SASL_INVALID_AUTHZID nbxmpp-module.html#SASL_INVALID_AUTHZID
-nbxmpp.ERR_JID_MALFORMED nbxmpp-module.html#ERR_JID_MALFORMED
-nbxmpp.ERR_SERVICE_UNAVAILABLE nbxmpp-module.html#ERR_SERVICE_UNAVAILABLE
-nbxmpp.STREAM_UNDEFINED_CONDITION nbxmpp-module.html#STREAM_UNDEFINED_CONDITION
-nbxmpp.STREAM_BAD_NAMESPACE_PREFIX nbxmpp-module.html#STREAM_BAD_NAMESPACE_PREFIX
-nbxmpp.ERRORS nbxmpp-module.html#ERRORS
-nbxmpp.STREAM_BAD_FORMAT nbxmpp-module.html#STREAM_BAD_FORMAT
-nbxmpp.SASL_ABORTED nbxmpp-module.html#SASL_ABORTED
-nbxmpp.STREAM_HOST_GONE nbxmpp-module.html#STREAM_HOST_GONE
-nbxmpp.ERR_UNDEFINED_CONDITION nbxmpp-module.html#ERR_UNDEFINED_CONDITION
-nbxmpp.STREAM_INVALID_FROM nbxmpp-module.html#STREAM_INVALID_FROM
-nbxmpp.ERR_REMOTE_SERVER_TIMEOUT nbxmpp-module.html#ERR_REMOTE_SERVER_TIMEOUT
-nbxmpp.STREAM_UNSUPPORTED_VERSION nbxmpp-module.html#STREAM_UNSUPPORTED_VERSION
-nbxmpp.SASL_NOT_AUTHORIZED nbxmpp-module.html#SASL_NOT_AUTHORIZED
-nbxmpp.ERR_REMOTE_SERVER_NOT_FOUND nbxmpp-module.html#ERR_REMOTE_SERVER_NOT_FOUND
-nbxmpp.ERR_SUBSCRIPTION_REQUIRED nbxmpp-module.html#ERR_SUBSCRIPTION_REQUIRED
-nbxmpp.SASL_MECHANISM_TOO_WEAK nbxmpp-module.html#SASL_MECHANISM_TOO_WEAK
-nbxmpp.STREAM_SYSTEM_SHUTDOWN nbxmpp-module.html#STREAM_SYSTEM_SHUTDOWN
-nbxmpp.STREAM_INVALID_XML nbxmpp-module.html#STREAM_INVALID_XML
-nbxmpp.STREAM_UNSUPPORTED_ENCODING nbxmpp-module.html#STREAM_UNSUPPORTED_ENCODING
-nbxmpp.ERR_NOT_ALLOWED nbxmpp-module.html#ERR_NOT_ALLOWED
-nbxmpp.STREAM_SEE_OTHER_HOST nbxmpp-module.html#STREAM_SEE_OTHER_HOST
nbxmpp.ascii_upper nbxmpp.protocol-module.html#ascii_upper
-nbxmpp.STREAM_HOST_UNKNOWN nbxmpp-module.html#STREAM_HOST_UNKNOWN
-nbxmpp.ERR_BAD_REQUEST nbxmpp-module.html#ERR_BAD_REQUEST
-nbxmpp.STREAM_XML_NOT_WELL_FORMED nbxmpp-module.html#STREAM_XML_NOT_WELL_FORMED
-nbxmpp.STREAM_POLICY_VIOLATION nbxmpp-module.html#STREAM_POLICY_VIOLATION
nbxmpp.__package__ nbxmpp-module.html#__package__
-nbxmpp.ERR_UNEXPECTED_REQUEST nbxmpp-module.html#ERR_UNEXPECTED_REQUEST
-nbxmpp.ERR_RECIPIENT_UNAVAILABLE nbxmpp-module.html#ERR_RECIPIENT_UNAVAILABLE
-nbxmpp.SASL_TEMPORARY_AUTH_FAILURE nbxmpp-module.html#SASL_TEMPORARY_AUTH_FAILURE
-nbxmpp.SASL_INVALID_MECHANISM nbxmpp-module.html#SASL_INVALID_MECHANISM
-nbxmpp.ERR_PAYMENT_REQUIRED nbxmpp-module.html#ERR_PAYMENT_REQUIRED
-nbxmpp.STREAM_CONFLICT nbxmpp-module.html#STREAM_CONFLICT
-nbxmpp.STREAM_RESOURCE_CONSTRAINT nbxmpp-module.html#STREAM_RESOURCE_CONSTRAINT
-nbxmpp.ERR_ITEM_NOT_FOUND nbxmpp-module.html#ERR_ITEM_NOT_FOUND
-nbxmpp.STREAM_INVALID_NAMESPACE nbxmpp-module.html#STREAM_INVALID_NAMESPACE
-nbxmpp.STREAM_REMOTE_CONNECTION_FAILED nbxmpp-module.html#STREAM_REMOTE_CONNECTION_FAILED
-nbxmpp.STREAM_INVALID_ID nbxmpp-module.html#STREAM_INVALID_ID
-nbxmpp.ERR_NOT_ACCEPTABLE nbxmpp-module.html#ERR_NOT_ACCEPTABLE
-nbxmpp.ERR_FORBIDDEN nbxmpp-module.html#ERR_FORBIDDEN
nbxmpp.auth_nb nbxmpp.auth_nb-module.html
nbxmpp.auth_nb.challenge_splitter nbxmpp.auth_nb-module.html#challenge_splitter
nbxmpp.auth_nb.HH nbxmpp.auth_nb-module.html#HH
@@ -178,7 +123,6 @@ nbxmpp.protocol.ERR_FEATURE_NOT_IMPLEMENTED nbxmpp.protocol-module.html#ERR_FEAT
nbxmpp.protocol.NS_GATEWAY nbxmpp.protocol-module.html#NS_GATEWAY
nbxmpp.protocol.NS_DISCO_ITEMS nbxmpp.protocol-module.html#NS_DISCO_ITEMS
nbxmpp.protocol.NS_MUC_CONFIG nbxmpp.protocol-module.html#NS_MUC_CONFIG
-nbxmpp.protocol.name nbxmpp.protocol-module.html#name
nbxmpp.protocol.NS_BIND nbxmpp.protocol-module.html#NS_BIND
nbxmpp.protocol.NS_JINGLE_ERRORS nbxmpp.protocol-module.html#NS_JINGLE_ERRORS
nbxmpp.protocol.NS_XMPP_STREAMS nbxmpp.protocol-module.html#NS_XMPP_STREAMS
@@ -193,7 +137,6 @@ nbxmpp.protocol.NS_JINGLE_IBB nbxmpp.protocol-module.html#NS_JINGLE_IBB
nbxmpp.protocol.NS_DATA_LAYOUT nbxmpp.protocol-module.html#NS_DATA_LAYOUT
nbxmpp.protocol.NS_TUNE nbxmpp.protocol-module.html#NS_TUNE
nbxmpp.protocol.stream_exceptions nbxmpp.protocol-module.html#stream_exceptions
-nbxmpp.protocol.xmpp_stanza_error_conditions nbxmpp.protocol-module.html#xmpp_stanza_error_conditions
nbxmpp.protocol.NS_HASHES_SHA256 nbxmpp.protocol-module.html#NS_HASHES_SHA256
nbxmpp.protocol.NS_CARBONS nbxmpp.protocol-module.html#NS_CARBONS
nbxmpp.protocol.NS_ROSTER nbxmpp.protocol-module.html#NS_ROSTER
@@ -207,9 +150,10 @@ nbxmpp.protocol.NS_PUBKEY_PUBKEY nbxmpp.protocol-module.html#NS_PUBKEY_PUBKEY
nbxmpp.protocol.NS_AMP nbxmpp.protocol-module.html#NS_AMP
nbxmpp.protocol.STREAM_UNDEFINED_CONDITION nbxmpp.protocol-module.html#STREAM_UNDEFINED_CONDITION
nbxmpp.protocol.NS_CONFERENCE nbxmpp.protocol-module.html#NS_CONFERENCE
+nbxmpp.protocol.NS_MAM nbxmpp.protocol-module.html#NS_MAM
nbxmpp.protocol.NS_DISCO nbxmpp.protocol-module.html#NS_DISCO
nbxmpp.protocol.NS_RSM nbxmpp.protocol-module.html#NS_RSM
-nbxmpp.protocol.STREAM_BAD_NAMESPACE_PREFIX nbxmpp.protocol-module.html#STREAM_BAD_NAMESPACE_PREFIX
+nbxmpp.protocol.NS_BLOCKING nbxmpp.protocol-module.html#NS_BLOCKING
nbxmpp.protocol.ERRORS nbxmpp.protocol-module.html#ERRORS
nbxmpp.protocol.NS_STREAM nbxmpp.protocol-module.html#NS_STREAM
nbxmpp.protocol.NS_ESESSION nbxmpp.protocol-module.html#NS_ESESSION
@@ -233,6 +177,7 @@ nbxmpp.protocol.NS_CAPS nbxmpp.protocol-module.html#NS_CAPS
nbxmpp.protocol.NS_PUBSUB_OWNER nbxmpp.protocol-module.html#NS_PUBSUB_OWNER
nbxmpp.protocol.NS_AMP_ERRORS nbxmpp.protocol-module.html#NS_AMP_ERRORS
nbxmpp.protocol.NS_BROWSE nbxmpp.protocol-module.html#NS_BROWSE
+nbxmpp.protocol.NS_CORRECT nbxmpp.protocol-module.html#NS_CORRECT
nbxmpp.protocol.NS_ROSTERX nbxmpp.protocol-module.html#NS_ROSTERX
nbxmpp.protocol.NS_JINGLE_RAW_UDP nbxmpp.protocol-module.html#NS_JINGLE_RAW_UDP
nbxmpp.protocol.NS_TLS nbxmpp.protocol-module.html#NS_TLS
@@ -248,6 +193,7 @@ nbxmpp.protocol.NS_PROFILE nbxmpp.protocol-module.html#NS_PROFILE
nbxmpp.protocol.NS_SECLABEL nbxmpp.protocol-module.html#NS_SECLABEL
nbxmpp.protocol.NS_PRIVACY nbxmpp.protocol-module.html#NS_PRIVACY
nbxmpp.protocol.NS_GMAILNOTIFY nbxmpp.protocol-module.html#NS_GMAILNOTIFY
+nbxmpp.protocol.STREAM_INVALID_NAMESPACE nbxmpp.protocol-module.html#STREAM_INVALID_NAMESPACE
nbxmpp.protocol.NS_CONDITIONS nbxmpp.protocol-module.html#NS_CONDITIONS
nbxmpp.protocol.NS_MESSAGE nbxmpp.protocol-module.html#NS_MESSAGE
nbxmpp.protocol.NS_FEATURE nbxmpp.protocol-module.html#NS_FEATURE
@@ -312,7 +258,6 @@ nbxmpp.protocol.SASL_TEMPORARY_AUTH_FAILURE nbxmpp.protocol-module.html#SASL_TEM
nbxmpp.protocol.NS_PRIVATE nbxmpp.protocol-module.html#NS_PRIVATE
nbxmpp.protocol.NS_JINGLE_BYTESTREAM nbxmpp.protocol-module.html#NS_JINGLE_BYTESTREAM
nbxmpp.protocol.SASL_INVALID_MECHANISM nbxmpp.protocol-module.html#SASL_INVALID_MECHANISM
-nbxmpp.protocol.xmpp_stream_error_conditions nbxmpp.protocol-module.html#xmpp_stream_error_conditions
nbxmpp.protocol.NS_VIEWING nbxmpp.protocol-module.html#NS_VIEWING
nbxmpp.protocol.NS_COMMANDS nbxmpp.protocol-module.html#NS_COMMANDS
nbxmpp.protocol.ERR_PAYMENT_REQUIRED nbxmpp.protocol-module.html#ERR_PAYMENT_REQUIRED
@@ -321,8 +266,9 @@ nbxmpp.protocol.STREAM_RESOURCE_CONSTRAINT nbxmpp.protocol-module.html#STREAM_RE
nbxmpp.protocol.NS_STREAM_MGMT nbxmpp.protocol-module.html#NS_STREAM_MGMT
nbxmpp.protocol.NS_SI_PUB nbxmpp.protocol-module.html#NS_SI_PUB
nbxmpp.protocol.NS_MUC nbxmpp.protocol-module.html#NS_MUC
+nbxmpp.protocol.NS_X_OOB nbxmpp.protocol-module.html#NS_X_OOB
nbxmpp.protocol.ERR_ITEM_NOT_FOUND nbxmpp.protocol-module.html#ERR_ITEM_NOT_FOUND
-nbxmpp.protocol.STREAM_INVALID_NAMESPACE nbxmpp.protocol-module.html#STREAM_INVALID_NAMESPACE
+nbxmpp.protocol.STREAM_BAD_NAMESPACE_PREFIX nbxmpp.protocol-module.html#STREAM_BAD_NAMESPACE_PREFIX
nbxmpp.protocol.NS_SEARCH nbxmpp.protocol-module.html#NS_SEARCH
nbxmpp.protocol.STREAM_REMOTE_CONNECTION_FAILED nbxmpp.protocol-module.html#STREAM_REMOTE_CONNECTION_FAILED
nbxmpp.protocol.NS_ADDRESS nbxmpp.protocol-module.html#NS_ADDRESS
@@ -330,7 +276,6 @@ nbxmpp.protocol.NS_COMPONENT_ACCEPT nbxmpp.protocol-module.html#NS_COMPONENT_ACC
nbxmpp.protocol.STREAM_INVALID_ID nbxmpp.protocol-module.html#STREAM_INVALID_ID
nbxmpp.protocol.STREAM_RESTRICTED_XML nbxmpp.protocol-module.html#STREAM_RESTRICTED_XML
nbxmpp.protocol.NS_DISCO_INFO nbxmpp.protocol-module.html#NS_DISCO_INFO
-nbxmpp.protocol.sasl_error_conditions nbxmpp.protocol-module.html#sasl_error_conditions
nbxmpp.protocol.NS_STANZA_CRYPTO nbxmpp.protocol-module.html#NS_STANZA_CRYPTO
nbxmpp.protocol.NS_LAST nbxmpp.protocol-module.html#NS_LAST
nbxmpp.protocol.NS_PUBKEY_ATTEST nbxmpp.protocol-module.html#NS_PUBKEY_ATTEST
diff --git a/doc/apidocs/class-tree.html b/doc/apidocs/class-tree.html
index 335045c..b1d6860 100644
--- a/doc/apidocs/class-tree.html
+++ b/doc/apidocs/class-tree.html
@@ -405,7 +405,7 @@ and messages</em>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/help.html b/doc/apidocs/help.html
index cc7bc68..c8bd924 100644
--- a/doc/apidocs/help.html
+++ b/doc/apidocs/help.html
@@ -256,7 +256,7 @@ page was last updated. </p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/identifier-index.html b/doc/apidocs/identifier-index.html
index 4cf4926..f01eac5 100644
--- a/doc/apidocs/identifier-index.html
+++ b/doc/apidocs/identifier-index.html
@@ -382,9 +382,9 @@
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.stringprepare.EmptyMappingTable-class.html">EmptyMappingTable</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.stringprepare-module.html">nbxmpp.stringprepare</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_JID_MALFORMED">ERR_JID_MALFORMED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_REMOTE_SERVER_TIMEOUT">ERR_REMOTE_SERVER_TIMEOUT</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_ITEM_NOT_FOUND">ERR_ITEM_NOT_FOUND</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_RESOURCE_CONSTRAINT">ERR_RESOURCE_CONSTRAINT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
@@ -392,144 +392,81 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTCP-class.html">NonBlockingTCP</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_JID_MALFORMED">ERR_JID_MALFORMED</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_RESOURCE_CONSTRAINT">ERR_RESOURCE_CONSTRAINT</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_SERVICE_UNAVAILABLE">ERR_SERVICE_UNAVAILABLE</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.simplexml-module.html#ENCODING">ENCODING</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml-module.html">nbxmpp.simplexml</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_NOT_ACCEPTABLE">ERR_NOT_ACCEPTABLE</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_RESOURCE_CONSTRAINT">ERR_RESOURCE_CONSTRAINT</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_NOT_ACCEPTABLE">ERR_NOT_ACCEPTABLE</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_SUBSCRIPTION_REQUIRED">ERR_SUBSCRIPTION_REQUIRED</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.idlequeue.IdleCommand-class.html#end">end()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.idlequeue.IdleCommand-class.html">IdleCommand</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_NOT_ACCEPTABLE">ERR_NOT_ACCEPTABLE</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_NOT_ALLOWED">ERR_NOT_ALLOWED</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_UNDEFINED_CONDITION">ERR_UNDEFINED_CONDITION</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_SERVICE_UNAVAILABLE">ERR_SERVICE_UNAVAILABLE</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.simplexml.NodeBuilder-class.html#endtag">endtag()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.NodeBuilder-class.html">NodeBuilder</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_NOT_ALLOWED">ERR_NOT_ALLOWED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_SERVICE_UNAVAILABLE">ERR_SERVICE_UNAVAILABLE</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_NOT_AUTHORIZED">ERR_NOT_AUTHORIZED</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_BAD_REQUEST">ERR_BAD_REQUEST</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_NOT_ALLOWED">ERR_NOT_ALLOWED</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_UNEXPECTED_REQUEST">ERR_UNEXPECTED_REQUEST</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_SUBSCRIPTION_REQUIRED">ERR_SUBSCRIPTION_REQUIRED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_BAD_REQUEST">ERR_BAD_REQUEST</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_NOT_AUTHORIZED">ERR_NOT_AUTHORIZED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_SUBSCRIPTION_REQUIRED">ERR_SUBSCRIPTION_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_PAYMENT_REQUIRED">ERR_PAYMENT_REQUIRED</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_CONFLICT">ERR_CONFLICT</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_NOT_AUTHORIZED">ERR_NOT_AUTHORIZED</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Error-class.html">Error</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_UNDEFINED_CONDITION">ERR_UNDEFINED_CONDITION</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_CONFLICT">ERR_CONFLICT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_PAYMENT_REQUIRED">ERR_PAYMENT_REQUIRED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_UNDEFINED_CONDITION">ERR_UNDEFINED_CONDITION</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_FEATURE_NOT_IMPLEMENTED">ERR_FEATURE_NOT_IMPLEMENTED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_PAYMENT_REQUIRED">ERR_PAYMENT_REQUIRED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_UNEXPECTED_REQUEST">ERR_UNEXPECTED_REQUEST</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_FEATURE_NOT_IMPLEMENTED">ERR_FEATURE_NOT_IMPLEMENTED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_RECIPIENT_UNAVAILABLE">ERR_RECIPIENT_UNAVAILABLE</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_UNEXPECTED_REQUEST">ERR_UNEXPECTED_REQUEST</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_FORBIDDEN">ERR_FORBIDDEN</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_RECIPIENT_UNAVAILABLE">ERR_RECIPIENT_UNAVAILABLE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Error-class.html">Error</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_FORBIDDEN">ERR_FORBIDDEN</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_REDIRECT">ERR_REDIRECT</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.tls_nb.SSLWrapper.Error-class.html">Error</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.tls_nb.SSLWrapper-class.html">SSLWrapper</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_GONE">ERR_GONE</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_FEATURE_NOT_IMPLEMENTED">ERR_FEATURE_NOT_IMPLEMENTED</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_REDIRECT">ERR_REDIRECT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.smacks.Smacks-class.html#error_handling">error_handling()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.smacks.Smacks-class.html">Smacks</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_GONE">ERR_GONE</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_FORBIDDEN">ERR_FORBIDDEN</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_REGISTRATION_REQUIRED">ERR_REGISTRATION_REQUIRED</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_REGISTRATION_REQUIRED">ERR_REGISTRATION_REQUIRED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol.ErrorNode-class.html">ErrorNode</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_INTERNAL_SERVER_ERROR">ERR_INTERNAL_SERVER_ERROR</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_REGISTRATION_REQUIRED">ERR_REGISTRATION_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_GONE">ERR_GONE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERRORS">ERRORS</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_INTERNAL_SERVER_ERROR">ERR_INTERNAL_SERVER_ERROR</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_REMOTE_SERVER_NOT_FOUND">ERR_REMOTE_SERVER_NOT_FOUND</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_REMOTE_SERVER_NOT_FOUND">ERR_REMOTE_SERVER_NOT_FOUND</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERRORS">ERRORS</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_ITEM_NOT_FOUND">ERR_ITEM_NOT_FOUND</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_REMOTE_SERVER_NOT_FOUND">ERR_REMOTE_SERVER_NOT_FOUND</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_INTERNAL_SERVER_ERROR">ERR_INTERNAL_SERVER_ERROR</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_REMOTE_SERVER_TIMEOUT">ERR_REMOTE_SERVER_TIMEOUT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#Event">Event()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html">XMPPDispatcher</a>)</span></td>
</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#ERR_ITEM_NOT_FOUND">ERR_ITEM_NOT_FOUND</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#ERR_REMOTE_SERVER_TIMEOUT">ERR_REMOTE_SERVER_TIMEOUT</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
-</tr>
</table>
</td></tr>
<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="F">F</a></h2></td>
@@ -1045,29 +982,21 @@
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.stringprepare.NamePrep-class.html#n">n</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.stringprepare.NamePrep-class.html">NamePrep</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_COMPRESS">NS_COMPRESS</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_MUC_UNIQUE">NS_MUC_UNIQUE</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#name">name</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_CONDITIONS">NS_CONDITIONS</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_CONFERENCE">NS_CONFERENCE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_MUC_USER">NS_MUC_USER</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#name">name</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_CONFERENCE">NS_CONFERENCE</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.stringprepare.NamePrep-class.html">NamePrep</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.stringprepare-module.html">nbxmpp.stringprepare</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_CORRECT">NS_CORRECT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_NICK">NS_NICK</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.stringprepare.NamePrep-class.html">NamePrep</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.stringprepare-module.html#nameprep">nameprep</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.stringprepare-module.html">nbxmpp.stringprepare</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_DATA">NS_DATA</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1075,38 +1004,38 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.stringprepare-module.html#nameprep">nameprep</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.stringprepare-module.html">nbxmpp.stringprepare</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.stringprepare.NamePrep-class.html#nameprep">nameprep()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.stringprepare.NamePrep-class.html">NamePrep</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_DATA_LAYOUT">NS_DATA_LAYOUT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_PHYSLOC">NS_PHYSLOC</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.stringprepare.NamePrep-class.html#nameprep">nameprep()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.stringprepare.NamePrep-class.html">NamePrep</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp-module.html">nbxmpp</a></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_DATA_MEDIA">NS_DATA_MEDIA</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_PING">NS_PING</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html">nbxmpp</a></td>
+<td width="33%" class="link-index"><a href="nbxmpp.smacks.Smacks-class.html#negociate">negociate()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.smacks.Smacks-class.html">Smacks</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_DATA_VALIDATE">NS_DATA_VALIDATE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_PRESENCE">NS_PRESENCE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.smacks.Smacks-class.html#negociate">negociate()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.smacks.Smacks-class.html">Smacks</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html">Node</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml-module.html">nbxmpp.simplexml</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_DELAY">NS_DELAY</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_PRIVACY">NS_PRIVACY</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html">Node</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.NodeBuilder-class.html">NodeBuilder</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml-module.html">nbxmpp.simplexml</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_DELAY2">NS_DELAY2</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1114,63 +1043,63 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.NodeBuilder-class.html">NodeBuilder</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml-module.html">nbxmpp.simplexml</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.stringprepare-module.html#nodeprep">nodeprep</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.stringprepare-module.html">nbxmpp.stringprepare</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_DIALBACK">NS_DIALBACK</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_PROFILE">NS_PROFILE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.stringprepare-module.html#nodeprep">nodeprep</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.stringprepare-module.html">nbxmpp.stringprepare</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.NodeProcessed-class.html">NodeProcessed</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_DISCO">NS_DISCO</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_PUBKEY_ATTEST">NS_PUBKEY_ATTEST</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.NodeProcessed-class.html">NodeProcessed</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.auth_nb.NonBlockingBind-class.html">NonBlockingBind</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb-module.html">nbxmpp.auth_nb</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_DISCO_INFO">NS_DISCO_INFO</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_PUBKEY_PUBKEY">NS_PUBKEY_PUBKEY</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.auth_nb.NonBlockingBind-class.html">NonBlockingBind</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb-module.html">nbxmpp.auth_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.auth_nb.NonBlockingBind-class.html#NonBlockingBind">NonBlockingBind()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb.NonBlockingBind-class.html">NonBlockingBind</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_DISCO_ITEMS">NS_DISCO_ITEMS</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_PUBKEY_REVOKE">NS_PUBKEY_REVOKE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.auth_nb.NonBlockingBind-class.html#NonBlockingBind">NonBlockingBind()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb.NonBlockingBind-class.html">NonBlockingBind</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.bosh.NonBlockingBOSH-class.html">NonBlockingBOSH</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.bosh-module.html">nbxmpp.bosh</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ENCRYPTED">NS_ENCRYPTED</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_PUBSUB">NS_PUBSUB</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.bosh.NonBlockingBOSH-class.html">NonBlockingBOSH</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.bosh-module.html">nbxmpp.bosh</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.client_nb.NonBlockingClient-class.html">NonBlockingClient</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.client_nb-module.html">nbxmpp.client_nb</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ESESSION">NS_ESESSION</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_PUBSUB_EVENT">NS_PUBSUB_EVENT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.client_nb.NonBlockingClient-class.html">NonBlockingClient</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.client_nb-module.html">nbxmpp.client_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingHTTP-class.html">NonBlockingHTTP</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb-module.html">nbxmpp.transports_nb</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ESESSION_INIT">NS_ESESSION_INIT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_PUBSUB_OWNER">NS_PUBSUB_OWNER</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingHTTP-class.html">NonBlockingHTTP</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html">NonBlockingHTTPBOSH</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb-module.html">nbxmpp.transports_nb</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_EVENT">NS_EVENT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1178,55 +1107,55 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html">NonBlockingHTTPBOSH</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb-module.html">nbxmpp.transports_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.auth_nb.NonBlockingNonSASL-class.html">NonBlockingNonSASL</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb-module.html">nbxmpp.auth_nb</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_FEATURE">NS_FEATURE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_RECEIPTS">NS_RECEIPTS</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.auth_nb.NonBlockingNonSASL-class.html">NonBlockingNonSASL</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb-module.html">nbxmpp.auth_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.roster_nb.NonBlockingRoster-class.html">NonBlockingRoster</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.roster_nb-module.html">nbxmpp.roster_nb</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_FILE">NS_FILE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_REGISTER">NS_REGISTER</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.roster_nb.NonBlockingRoster-class.html">NonBlockingRoster</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.roster_nb-module.html">nbxmpp.roster_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTCP-class.html">NonBlockingTCP</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb-module.html">nbxmpp.transports_nb</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_FORWARD">NS_FORWARD</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ROSTER">NS_ROSTER</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTCP-class.html">NonBlockingTCP</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb-module.html">nbxmpp.transports_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.tls_nb.NonBlockingTLS-class.html">NonBlockingTLS</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.tls_nb-module.html">nbxmpp.tls_nb</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_GAMING">NS_GAMING</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ROSTER_VER">NS_ROSTER_VER</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.tls_nb.NonBlockingTLS-class.html">NonBlockingTLS</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.tls_nb-module.html">nbxmpp.tls_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTransport-class.html">NonBlockingTransport</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb-module.html">nbxmpp.transports_nb</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_GATEWAY">NS_GATEWAY</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ROSTERNOTES">NS_ROSTERNOTES</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTransport-class.html">NonBlockingTransport</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb-module.html">nbxmpp.transports_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.c14n-module.html#normalise_attr">normalise_attr()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.c14n-module.html">nbxmpp.c14n</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_GEOLOC">NS_GEOLOC</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ROSTERX">NS_ROSTERX</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.c14n-module.html#normalise_attr">normalise_attr()</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.c14n-module.html#normalise_text">normalise_text()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.c14n-module.html">nbxmpp.c14n</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_GMAILNOTIFY">NS_GMAILNOTIFY</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1234,15 +1163,15 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.c14n-module.html#normalise_text">normalise_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.c14n-module.html">nbxmpp.c14n</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.NotAuthorized-class.html">NotAuthorized</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_GROUPCHAT">NS_GROUPCHAT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_RSM">NS_RSM</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.NotAuthorized-class.html">NotAuthorized</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ACTIVITY">NS_ACTIVITY</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_GTALKSETTING">NS_GTALKSETTING</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1250,7 +1179,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ACTIVITY">NS_ACTIVITY</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ADDRESS">NS_ADDRESS</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_HASHES">NS_HASHES</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1258,7 +1187,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ADDRESS">NS_ADDRESS</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_AGENTS">NS_AGENTS</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_HASHES_MD5">NS_HASHES_MD5</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1266,7 +1195,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_AGENTS">NS_AGENTS</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_AMP">NS_AMP</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_HASHES_SHA1">NS_HASHES_SHA1</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1274,7 +1203,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_AMP">NS_AMP</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_AMP_ERRORS">NS_AMP_ERRORS</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_HASHES_SHA256">NS_HASHES_SHA256</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1282,7 +1211,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_AMP_ERRORS">NS_AMP_ERRORS</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ARCHIVE">NS_ARCHIVE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_HASHES_SHA512">NS_HASHES_SHA512</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1290,7 +1219,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ARCHIVE">NS_ARCHIVE</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ARCHIVE_AUTO">NS_ARCHIVE_AUTO</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_HTTP_AUTH">NS_HTTP_AUTH</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1298,7 +1227,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ARCHIVE_AUTO">NS_ARCHIVE_AUTO</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ARCHIVE_MANAGE">NS_ARCHIVE_MANAGE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_HTTP_BIND">NS_HTTP_BIND</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1306,7 +1235,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ARCHIVE_MANAGE">NS_ARCHIVE_MANAGE</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ARCHIVE_MANUAL">NS_ARCHIVE_MANUAL</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_IBB">NS_IBB</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1314,7 +1243,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ARCHIVE_MANUAL">NS_ARCHIVE_MANUAL</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ARCHIVE_PREF">NS_ARCHIVE_PREF</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_INVISIBLE">NS_INVISIBLE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1322,7 +1251,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ARCHIVE_PREF">NS_ARCHIVE_PREF</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ATOM">NS_ATOM</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_IQ">NS_IQ</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1330,7 +1259,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ATOM">NS_ATOM</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ATTENTION">NS_ATTENTION</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_JINGLE">NS_JINGLE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1338,7 +1267,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_ATTENTION">NS_ATTENTION</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_AUTH">NS_AUTH</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_JINGLE_BYTESTREAM">NS_JINGLE_BYTESTREAM</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1346,7 +1275,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_AUTH">NS_AUTH</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_AVATAR">NS_AVATAR</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_JINGLE_ERRORS">NS_JINGLE_ERRORS</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1354,7 +1283,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_AVATAR">NS_AVATAR</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_BIND">NS_BIND</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_JINGLE_FILE_TRANSFER">NS_JINGLE_FILE_TRANSFER</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1362,7 +1291,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_BIND">NS_BIND</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_BLOCKING">NS_BLOCKING</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_JINGLE_IBB">NS_JINGLE_IBB</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1436,7 +1365,7 @@
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_CHATSTATES">NS_CHATSTATES</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_MESSAGE">NS_MESSAGE</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_MAM">NS_MAM</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_WAITINGLIST">NS_WAITINGLIST</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1444,13 +1373,21 @@
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_CHATTING">NS_CHATTING</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_MESSAGE">NS_MESSAGE</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_X_OOB">NS_X_OOB</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_CLIENT">NS_CLIENT</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_MOOD">NS_MOOD</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_XHTML">NS_XHTML</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_CLIENT">NS_CLIENT</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_COMMANDS">NS_COMMANDS</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_MUC">NS_MUC</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1458,7 +1395,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_COMMANDS">NS_COMMANDS</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_COMPONENT_1">NS_COMPONENT_1</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_MUC_ADMIN">NS_MUC_ADMIN</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1466,7 +1403,7 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_COMPONENT_1">NS_COMPONENT_1</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_COMPONENT_ACCEPT">NS_COMPONENT_ACCEPT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_MUC_CONFIG">NS_MUC_CONFIG</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
@@ -1474,12 +1411,19 @@
<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml-module.html">nbxmpp.simplexml</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_COMPONENT_ACCEPT">NS_COMPONENT_ACCEPT</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_COMPRESS">NS_COMPRESS</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_MUC_OWNER">NS_MUC_OWNER</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index">&nbsp;</td>
</tr>
+<tr>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_CONDITIONS">NS_CONDITIONS</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#NS_MUC_UNIQUE">NS_MUC_UNIQUE</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
</table>
</td></tr>
<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="O">O</a></h2></td>
@@ -1803,463 +1747,376 @@
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.auth_nb.SASL-class.html">SASL</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb-module.html">nbxmpp.auth_nb</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Protocol-class.html#setError">setError()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Protocol-class.html">Protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_BAD_NAMESPACE_PREFIX">STREAM_BAD_NAMESPACE_PREFIX</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#SASL_ABORTED">SASL_ABORTED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataForm-class.html#setField">setField()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataForm-class.html">DataForm</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_CONFLICT">STREAM_CONFLICT</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.features_nb-module.html#setDefaultPrivacyList">setDefaultPrivacyList()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.features_nb-module.html">nbxmpp.features_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.tls_nb.SSLWrapper-class.html">SSLWrapper</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.tls_nb-module.html">nbxmpp.tls_nb</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#SASL_ABORTED">SASL_ABORTED</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Protocol-class.html#setFrom">setFrom()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Protocol-class.html">Protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_CONFLICT">STREAM_CONFLICT</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#sasl_error_conditions">sasl_error_conditions</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Protocol-class.html#setID">setID()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Protocol-class.html">Protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_CONNECTION_TIMEOUT">STREAM_CONNECTION_TIMEOUT</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setDesc">setDesc()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.idlequeue.IdleCommand-class.html#start">start()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.idlequeue.IdleCommand-class.html">IdleCommand</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.auth_nb-module.html#SASL_FAILURE">SASL_FAILURE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb-module.html">nbxmpp.auth_nb</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataForm-class.html#setInstructions">setInstructions()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataForm-class.html">DataForm</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_CONNECTION_TIMEOUT">STREAM_CONNECTION_TIMEOUT</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.JID-class.html#setDomain">setDomain()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.JID-class.html">JID</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html#start_connecting">start_connecting()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html">HTTPCONNECTConnector</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.auth_nb-module.html#SASL_FAILURE_IN_PROGRESS">SASL_FAILURE_IN_PROGRESS</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb-module.html">nbxmpp.auth_nb</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.roster_nb.NonBlockingRoster-class.html#setItem">setItem()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.roster_nb.NonBlockingRoster-class.html">NonBlockingRoster</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#stream_exceptions">stream_exceptions</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Protocol-class.html#setError">setError()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Protocol-class.html">Protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.proxy_connectors.ProxyConnector-class.html#start_connecting">start_connecting()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.proxy_connectors.ProxyConnector-class.html">ProxyConnector</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.auth_nb-module.html#SASL_IN_PROCESS">SASL_IN_PROCESS</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb-module.html">nbxmpp.auth_nb</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.roster_nb.NonBlockingRoster-class.html#setItemMulti">setItemMulti()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.roster_nb.NonBlockingRoster-class.html">NonBlockingRoster</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.NodeBuilder-class.html#stream_footer_received">stream_footer_received()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.NodeBuilder-class.html">NodeBuilder</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#SASL_INCORRECT_ENCODING">SASL_INCORRECT_ENCODING</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setName">setName()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.NodeBuilder-class.html#stream_header_received">stream_header_received()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.NodeBuilder-class.html">NodeBuilder</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataForm-class.html#setField">setField()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataForm-class.html">DataForm</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.proxy_connectors.SOCKS5Connector-class.html#start_connecting">start_connecting()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.proxy_connectors.SOCKS5Connector-class.html">SOCKS5Connector</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#SASL_INCORRECT_ENCODING">SASL_INCORRECT_ENCODING</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setNamespace">setNamespace()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_HOST_GONE">STREAM_HOST_GONE</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#SASL_INVALID_AUTHZID">SASL_INVALID_AUTHZID</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.JID-class.html#setNode">setNode()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.JID-class.html">JID</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_HOST_GONE">STREAM_HOST_GONE</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Protocol-class.html#setFrom">setFrom()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Protocol-class.html">Protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.bosh.NonBlockingBOSH-class.html#start_disconnect">start_disconnect()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.bosh.NonBlockingBOSH-class.html">NonBlockingBOSH</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#SASL_INVALID_AUTHZID">SASL_INVALID_AUTHZID</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setOptions">setOptions()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_HOST_UNKNOWN">STREAM_HOST_UNKNOWN</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#SASL_INVALID_MECHANISM">SASL_INVALID_MECHANISM</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setParent">setParent()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_HOST_UNKNOWN">STREAM_HOST_UNKNOWN</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Protocol-class.html#setID">setID()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Protocol-class.html">Protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTCP-class.html#start_disconnect">start_disconnect()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTCP-class.html">NonBlockingTCP</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#SASL_INVALID_MECHANISM">SASL_INVALID_MECHANISM</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setPayload">setPayload()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_IMPROPER_ADDRESSING">STREAM_IMPROPER_ADDRESSING</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#SASL_MECHANISM_TOO_WEAK">SASL_MECHANISM_TOO_WEAK</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Presence-class.html#setPriority">setPriority()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Presence-class.html">Presence</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_IMPROPER_ADDRESSING">STREAM_IMPROPER_ADDRESSING</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataForm-class.html#setInstructions">setInstructions()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataForm-class.html">DataForm</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTransport-class.html#start_disconnect">start_disconnect()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTransport-class.html">NonBlockingTransport</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#SASL_MECHANISM_TOO_WEAK">SASL_MECHANISM_TOO_WEAK</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.features_nb-module.html#setPrivacyList">setPrivacyList()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.features_nb-module.html">nbxmpp.features_nb</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_INTERNAL_SERVER_ERROR">STREAM_INTERNAL_SERVER_ERROR</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#SASL_NOT_AUTHORIZED">SASL_NOT_AUTHORIZED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Iq-class.html#setQuery">setQuery()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Iq-class.html">Iq</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_INTERNAL_SERVER_ERROR">STREAM_INTERNAL_SERVER_ERROR</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.roster_nb.NonBlockingRoster-class.html#setItem">setItem()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.roster_nb.NonBlockingRoster-class.html">NonBlockingRoster</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.NodeBuilder-class.html#starttag">starttag()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.NodeBuilder-class.html">NodeBuilder</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#SASL_NOT_AUTHORIZED">SASL_NOT_AUTHORIZED</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Iq-class.html#setQuerynode">setQuerynode()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Iq-class.html">Iq</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_INVALID_FROM">STREAM_INVALID_FROM</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.roster_nb.NonBlockingRoster-class.html#setItemMulti">setItemMulti()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.roster_nb.NonBlockingRoster-class.html">NonBlockingRoster</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.transports_nb-module.html#STATES">STATES</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb-module.html">nbxmpp.transports_nb</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.auth_nb-module.html#SASL_SUCCESS">SASL_SUCCESS</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb-module.html">nbxmpp.auth_nb</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Iq-class.html#setQueryNS">setQueryNS()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Iq-class.html">Iq</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_INVALID_FROM">STREAM_INVALID_FROM</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#SASL_TEMPORARY_AUTH_FAILURE">SASL_TEMPORARY_AUTH_FAILURE</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Iq-class.html#setQueryPayload">setQueryPayload()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Iq-class.html">Iq</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_INVALID_ID">STREAM_INVALID_ID</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setName">setName()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.tls_nb.StdlibSSLWrapper-class.html">StdlibSSLWrapper</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.tls_nb-module.html">nbxmpp.tls_nb</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#SASL_TEMPORARY_AUTH_FAILURE">SASL_TEMPORARY_AUTH_FAILURE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.roster_nb.NonBlockingRoster-class.html#setRaw">setRaw()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.roster_nb.NonBlockingRoster-class.html">NonBlockingRoster</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_INVALID_ID">STREAM_INVALID_ID</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setNamespace">setNamespace()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_BAD_FORMAT">STREAM_BAD_FORMAT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.auth_nb-module.html#SASL_UNSUPPORTED">SASL_UNSUPPORTED</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb-module.html">nbxmpp.auth_nb</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setRequired">setRequired()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_INVALID_NAMESPACE">STREAM_INVALID_NAMESPACE</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.JID-class.html#setNode">setNode()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.JID-class.html">JID</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_BAD_NAMESPACE_PREFIX">STREAM_BAD_NAMESPACE_PREFIX</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.auth_nb.SASL-class.html#SASLHandler">SASLHandler()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb.SASL-class.html">SASL</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.JID-class.html#setResource">setResource()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.JID-class.html">JID</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_INVALID_NAMESPACE">STREAM_INVALID_NAMESPACE</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setOptions">setOptions()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_CONFLICT">STREAM_CONFLICT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.auth_nb-module.html#scram_parse">scram_parse()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb-module.html">nbxmpp.auth_nb</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Presence-class.html#setShow">setShow()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Presence-class.html">Presence</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_INVALID_XML">STREAM_INVALID_XML</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setParent">setParent()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_CONNECTION_TIMEOUT">STREAM_CONNECTION_TIMEOUT</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.protocol.SeeOtherHost-class.html">SeeOtherHost</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Presence-class.html#setStatus">setStatus()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Presence-class.html">Presence</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_INVALID_XML">STREAM_INVALID_XML</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setPayload">setPayload()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#stream_exceptions">stream_exceptions</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.idlequeue.SelectIdleQueue-class.html">SelectIdleQueue</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.idlequeue-module.html">nbxmpp.idlequeue</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Message-class.html#setSubject">setSubject()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Message-class.html">Message</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_NOT_AUTHORIZED">STREAM_NOT_AUTHORIZED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Presence-class.html#setPriority">setPriority()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Presence-class.html">Presence</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.NodeBuilder-class.html#stream_footer_received">stream_footer_received()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.NodeBuilder-class.html">NodeBuilder</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.bosh.NonBlockingBOSH-class.html#send">send()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.bosh.NonBlockingBOSH-class.html">NonBlockingBOSH</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setTag">setTag()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_NOT_AUTHORIZED">STREAM_NOT_AUTHORIZED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.features_nb-module.html#setPrivacyList">setPrivacyList()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.features_nb-module.html">nbxmpp.features_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.NodeBuilder-class.html#stream_header_received">stream_header_received()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.NodeBuilder-class.html">NodeBuilder</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send">send()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html">XMPPDispatcher</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setTagAttr">setTagAttr()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_POLICY_VIOLATION">STREAM_POLICY_VIOLATION</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Iq-class.html#setQuery">setQuery()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Iq-class.html">Iq</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_HOST_GONE">STREAM_HOST_GONE</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#send">send()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.tls_nb.PyOpenSSLWrapper-class.html">PyOpenSSLWrapper</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setTagData">setTagData()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_POLICY_VIOLATION">STREAM_POLICY_VIOLATION</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Iq-class.html#setQuerynode">setQuerynode()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Iq-class.html">Iq</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_HOST_UNKNOWN">STREAM_HOST_UNKNOWN</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.tls_nb.SSLWrapper-class.html#send">send()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.tls_nb.SSLWrapper-class.html">SSLWrapper</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Message-class.html#setThread">setThread()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Message-class.html">Message</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_REMOTE_CONNECTION_FAILED">STREAM_REMOTE_CONNECTION_FAILED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Iq-class.html#setQueryNS">setQueryNS()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Iq-class.html">Iq</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_IMPROPER_ADDRESSING">STREAM_IMPROPER_ADDRESSING</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.tls_nb.StdlibSSLWrapper-class.html#send">send()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.tls_nb.StdlibSSLWrapper-class.html">StdlibSSLWrapper</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Protocol-class.html#setTimestamp">setTimestamp()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Protocol-class.html">Protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_REMOTE_CONNECTION_FAILED">STREAM_REMOTE_CONNECTION_FAILED</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Iq-class.html#setQueryPayload">setQueryPayload()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Iq-class.html">Iq</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_INTERNAL_SERVER_ERROR">STREAM_INTERNAL_SERVER_ERROR</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTCP-class.html#send">send()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTCP-class.html">NonBlockingTCP</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataForm-class.html#setTitle">setTitle()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataForm-class.html">DataForm</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_RESOURCE_CONSTRAINT">STREAM_RESOURCE_CONSTRAINT</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.roster_nb.NonBlockingRoster-class.html#setRaw">setRaw()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.roster_nb.NonBlockingRoster-class.html">NonBlockingRoster</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_INVALID_FROM">STREAM_INVALID_FROM</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTransport-class.html#send">send()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTransport-class.html">NonBlockingTransport</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Protocol-class.html#setTo">setTo()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Protocol-class.html">Protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_RESOURCE_CONSTRAINT">STREAM_RESOURCE_CONSTRAINT</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setRequired">setRequired()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_INVALID_ID">STREAM_INVALID_ID</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.smacks.Smacks-class.html#send_ack">send_ack()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.smacks.Smacks-class.html">Smacks</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setType">setType()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_RESTRICTED_XML">STREAM_RESTRICTED_XML</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.JID-class.html#setResource">setResource()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.JID-class.html">JID</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_INVALID_NAMESPACE">STREAM_INVALID_NAMESPACE</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.bosh.NonBlockingBOSH-class.html#send_BOSH">send_BOSH()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.bosh.NonBlockingBOSH-class.html">NonBlockingBOSH</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataForm-class.html#setType">setType()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataForm-class.html">DataForm</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_RESTRICTED_XML">STREAM_RESTRICTED_XML</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Presence-class.html#setShow">setShow()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Presence-class.html">Presence</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_INVALID_XML">STREAM_INVALID_XML</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.bosh.NonBlockingBOSH-class.html#send_init">send_init()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.bosh.NonBlockingBOSH-class.html">NonBlockingBOSH</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Protocol-class.html#setType">setType()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Protocol-class.html">Protocol</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_SEE_OTHER_HOST">STREAM_SEE_OTHER_HOST</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Presence-class.html#setStatus">setStatus()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Presence-class.html">Presence</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_NOT_AUTHORIZED">STREAM_NOT_AUTHORIZED</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#SendAndCallForResponse">SendAndCallForResponse()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html">XMPPDispatcher</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setValue">setValue()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_SEE_OTHER_HOST">STREAM_SEE_OTHER_HOST</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Message-class.html#setSubject">setSubject()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Message-class.html">Message</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_POLICY_VIOLATION">STREAM_POLICY_VIOLATION</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#SendAndWaitForResponse">SendAndWaitForResponse()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html">XMPPDispatcher</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setValues">setValues()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_SYSTEM_SHUTDOWN">STREAM_SYSTEM_SHUTDOWN</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setTag">setTag()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_REMOTE_CONNECTION_FAILED">STREAM_REMOTE_CONNECTION_FAILED</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.client_nb.NonBlockingClient-class.html#sendPresence">sendPresence()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.client_nb.NonBlockingClient-class.html">NonBlockingClient</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setVar">setVar()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_SYSTEM_SHUTDOWN">STREAM_SYSTEM_SHUTDOWN</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setTagAttr">setTagAttr()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_RESOURCE_CONSTRAINT">STREAM_RESOURCE_CONSTRAINT</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.idlequeue.IdleQueue-class.html#set_alarm">set_alarm()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.idlequeue.IdleQueue-class.html">IdleQueue</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Message-class.html#setXHTML">setXHTML()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Message-class.html">Message</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_UNDEFINED_CONDITION">STREAM_UNDEFINED_CONDITION</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setTagData">setTagData()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_RESTRICTED_XML">STREAM_RESTRICTED_XML</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.idlequeue.IdleCommand-class.html#set_idlequeue">set_idlequeue()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.idlequeue.IdleCommand-class.html">IdleCommand</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml-module.html">simplexml</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_UNDEFINED_CONDITION">STREAM_UNDEFINED_CONDITION</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Message-class.html#setThread">setThread()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Message-class.html">Message</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_SEE_OTHER_HOST">STREAM_SEE_OTHER_HOST</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.smacks.Smacks-class.html#set_owner">set_owner()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.smacks.Smacks-class.html">Smacks</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.smacks-module.html">smacks</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_UNSUPPORTED_ENCODING">STREAM_UNSUPPORTED_ENCODING</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Protocol-class.html#setTimestamp">setTimestamp()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Protocol-class.html">Protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_SYSTEM_SHUTDOWN">STREAM_SYSTEM_SHUTDOWN</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.auth_nb.SASL-class.html#set_password">set_password()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.auth_nb.SASL-class.html">SASL</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.smacks.Smacks-class.html">Smacks</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.smacks-module.html">nbxmpp.smacks</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_ENCODING">STREAM_UNSUPPORTED_ENCODING</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataForm-class.html#setTitle">setTitle()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataForm-class.html">DataForm</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_UNDEFINED_CONDITION">STREAM_UNDEFINED_CONDITION</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.idlequeue.IdleQueue-class.html#set_read_timeout">set_read_timeout()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.idlequeue.IdleQueue-class.html">IdleQueue</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.proxy_connectors.SOCKS5Connector-class.html">SOCKS5Connector</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.proxy_connectors-module.html">nbxmpp.proxy_connectors</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_UNSUPPORTED_STANZA_TYPE">STREAM_UNSUPPORTED_STANZA_TYPE</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Protocol-class.html#setTo">setTo()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Protocol-class.html">Protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_ENCODING">STREAM_UNSUPPORTED_ENCODING</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_send_timeout">set_send_timeout()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTransport-class.html">NonBlockingTransport</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.tls_nb.NonBlockingTLS-class.html#ssl_h_bits">ssl_h_bits</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.tls_nb.NonBlockingTLS-class.html">NonBlockingTLS</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setType">setType()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_STANZA_TYPE">STREAM_UNSUPPORTED_STANZA_TYPE</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_send_timeout2">set_send_timeout2()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTransport-class.html">NonBlockingTransport</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.tls_nb.SSLWrapper-class.html">SSLWrapper</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.tls_nb-module.html">nbxmpp.tls_nb</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_UNSUPPORTED_VERSION">STREAM_UNSUPPORTED_VERSION</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataForm-class.html#setType">setType()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataForm-class.html">DataForm</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_VERSION">STREAM_UNSUPPORTED_VERSION</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html#set_stanza_build_cb">set_stanza_build_cb()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html">NonBlockingHTTPBOSH</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.idlequeue.IdleCommand-class.html#start">start()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.idlequeue.IdleCommand-class.html">IdleCommand</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_VERSION">STREAM_UNSUPPORTED_VERSION</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Protocol-class.html#setType">setType()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Protocol-class.html">Protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_XML_NOT_WELL_FORMED">STREAM_XML_NOT_WELL_FORMED</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_state">set_state()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTransport-class.html">NonBlockingTransport</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html#start_connecting">start_connecting()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html">HTTPCONNECTConnector</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_XML_NOT_WELL_FORMED">STREAM_XML_NOT_WELL_FORMED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.bosh.NonBlockingBOSH-class.html#set_timeout">set_timeout()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.bosh.NonBlockingBOSH-class.html">NonBlockingBOSH</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.proxy_connectors.ProxyConnector-class.html#start_connecting">start_connecting()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.proxy_connectors.ProxyConnector-class.html">ProxyConnector</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_XML_NOT_WELL_FORMED">STREAM_XML_NOT_WELL_FORMED</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTCP-class.html#set_timeout">set_timeout()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTCP-class.html">NonBlockingTCP</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.proxy_connectors.SOCKS5Connector-class.html#start_connecting">start_connecting()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.proxy_connectors.SOCKS5Connector-class.html">SOCKS5Connector</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setValue">setValue()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol.StreamError-class.html">StreamError</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_timeout">set_timeout()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTransport-class.html">NonBlockingTransport</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.bosh.NonBlockingBOSH-class.html#start_disconnect">start_disconnect()</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.bosh.NonBlockingBOSH-class.html#set_timeout">set_timeout()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.bosh.NonBlockingBOSH-class.html">NonBlockingBOSH</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setValues">setValues()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#StreamInit">StreamInit()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html">BOSHDispatcher</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_timeout2">set_timeout2()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTransport-class.html">NonBlockingTransport</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTCP-class.html#start_disconnect">start_disconnect()</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTCP-class.html#set_timeout">set_timeout()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTCP-class.html">NonBlockingTCP</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setVar">setVar()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#StreamInit">StreamInit()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html">XMPPDispatcher</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.features_nb-module.html#setActivePrivacyList">setActivePrivacyList()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.features_nb-module.html">nbxmpp.features_nb</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTransport-class.html#start_disconnect">start_disconnect()</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_timeout">set_timeout()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTransport-class.html">NonBlockingTransport</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Message-class.html#setXHTML">setXHTML()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Message-class.html">Message</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#StreamTerminate">StreamTerminate()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html">BOSHDispatcher</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setAttr">setAttr()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.NodeBuilder-class.html#starttag">starttag()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.NodeBuilder-class.html">NodeBuilder</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_timeout2">set_timeout2()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb.NonBlockingTransport-class.html">NonBlockingTransport</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml-module.html">simplexml</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.stringprepare-module.html">stringprepare</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.Message-class.html#setBody">setBody()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Message-class.html">Message</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.transports_nb-module.html#STATES">STATES</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.transports_nb-module.html">nbxmpp.transports_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.features_nb-module.html#setActivePrivacyList">setActivePrivacyList()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.features_nb-module.html">nbxmpp.features_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.smacks-module.html">smacks</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.roster_nb.NonBlockingRoster-class.html#Subscribe">Subscribe()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.roster_nb.NonBlockingRoster-class.html">NonBlockingRoster</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setData">setData()</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setAttr">setAttr()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.tls_nb.StdlibSSLWrapper-class.html">StdlibSSLWrapper</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.tls_nb-module.html">nbxmpp.tls_nb</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.smacks.Smacks-class.html">Smacks</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.smacks-module.html">nbxmpp.smacks</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol.Hashes-class.html#supported">supported</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Hashes-class.html">Hashes</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.features_nb-module.html#setDefaultPrivacyList">setDefaultPrivacyList()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.features_nb-module.html">nbxmpp.features_nb</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_BAD_FORMAT">STREAM_BAD_FORMAT</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.Message-class.html#setBody">setBody()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.Message-class.html">Message</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.proxy_connectors.SOCKS5Connector-class.html">SOCKS5Connector</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.proxy_connectors-module.html">nbxmpp.proxy_connectors</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.protocol.SystemShutdown-class.html">SystemShutdown</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.DataField-class.html#setDesc">setDesc()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.DataField-class.html">DataField</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#STREAM_BAD_FORMAT">STREAM_BAD_FORMAT</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.JID-class.html#setDomain">setDomain()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol.JID-class.html">JID</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp-module.html#STREAM_BAD_NAMESPACE_PREFIX">STREAM_BAD_NAMESPACE_PREFIX</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp-module.html">nbxmpp</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml.Node-class.html#setData">setData()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml.Node-class.html">Node</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.tls_nb.NonBlockingTLS-class.html#ssl_h_bits">ssl_h_bits</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.tls_nb.NonBlockingTLS-class.html">NonBlockingTLS</a>)</span></td>
<td width="33%" class="link-index">&nbsp;</td>
</tr>
</table>
@@ -2345,22 +2202,15 @@
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.simplexml-module.html#XML2Node">XML2Node()</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml-module.html">nbxmpp.simplexml</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol.XMLNotWellFormed-class.html">XMLNotWellFormed</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
+<td width="33%" class="link-index"><a href="nbxmpp.simplexml-module.html#XMLescape">XMLescape()</a><br />
+<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml-module.html">nbxmpp.simplexml</a>)</span></td>
<td width="33%" class="link-index"><a href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html">XMPPDispatcher</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.dispatcher_nb-module.html">nbxmpp.dispatcher_nb</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="nbxmpp.dispatcher_nb-module.html#XML_DECLARATION">XML_DECLARATION</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.dispatcher_nb-module.html">nbxmpp.dispatcher_nb</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#xmpp_stanza_error_conditions">xmpp_stanza_error_conditions</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="nbxmpp.simplexml-module.html#XMLescape">XMLescape()</a><br />
-<span class="index-where">(in&nbsp;<a href="nbxmpp.simplexml-module.html">nbxmpp.simplexml</a>)</span></td>
-<td width="33%" class="link-index"><a href="nbxmpp.protocol-module.html#xmpp_stream_error_conditions">xmpp_stream_error_conditions</a><br />
+<td width="33%" class="link-index"><a href="nbxmpp.protocol.XMLNotWellFormed-class.html">XMLNotWellFormed</a><br />
<span class="index-where">(in&nbsp;<a href="nbxmpp.protocol-module.html">nbxmpp.protocol</a>)</span></td>
<td width="33%" class="link-index">&nbsp;</td>
</tr>
@@ -2817,7 +2667,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/module-tree.html b/doc/apidocs/module-tree.html
index 46a8e91..60789d0 100644
--- a/doc/apidocs/module-tree.html
+++ b/doc/apidocs/module-tree.html
@@ -126,7 +126,7 @@ for SOCKS5 proxy...)</em> </li>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp-module.html b/doc/apidocs/nbxmpp-module.html
index 832a908..58b2abb 100644
--- a/doc/apidocs/nbxmpp-module.html
+++ b/doc/apidocs/nbxmpp-module.html
@@ -138,450 +138,70 @@ for SOCKS5 proxy...)</em> </li>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp-module.html#ERRORS" class="summary-name">ERRORS</a> = <code title="{'urn:ietf:params:xml:ns:xmpp-sasl aborted': ['',
- '',
- 'The receiving entity ac\
-knowledges an &lt;abort/&gt; element sent by the initiating entity; sent in \
-reply to the &lt;abort/&gt; element.'],
- 'urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding': ['',
- '',
- 'The data pro\
-..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl aborted</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_BAD_REQUEST" class="summary-name">ERR_BAD_REQUEST</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas bad-request'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas bad-req</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_CONFLICT" class="summary-name">ERR_CONFLICT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas conflict'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas conflict</code><code class="variable-quote">'</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_FEATURE_NOT_IMPLEMENTED" class="summary-name">ERR_FEATURE_NOT_IMPLEMENTED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas feature-not-implemented'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sta</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_FORBIDDEN" class="summary-name">ERR_FORBIDDEN</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas forbidden'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas forbidden</code><code class="variable-quote">'</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_GONE" class="summary-name">ERR_GONE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas gone'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas gone</code><code class="variable-quote">'</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_INTERNAL_SERVER_ERROR" class="summary-name">ERR_INTERNAL_SERVER_ERROR</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas internal-server-error'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_ITEM_NOT_FOUND" class="summary-name">ERR_ITEM_NOT_FOUND</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas item-not-found'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas item</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_JID_MALFORMED" class="summary-name">ERR_JID_MALFORMED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas jid-malformed'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas jid-m</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_NOT_ACCEPTABLE" class="summary-name">ERR_NOT_ACCEPTABLE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas not-acceptable'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_NOT_ALLOWED" class="summary-name">ERR_NOT_ALLOWED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas not-allowed'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-all</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_NOT_AUTHORIZED" class="summary-name">ERR_NOT_AUTHORIZED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas not-authorized'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_PAYMENT_REQUIRED" class="summary-name">ERR_PAYMENT_REQUIRED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas payment-required'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas pa</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_RECIPIENT_UNAVAILABLE" class="summary-name">ERR_RECIPIENT_UNAVAILABLE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas recipient-unavailable'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_REDIRECT" class="summary-name">ERR_REDIRECT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas redirect'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas redirect</code><code class="variable-quote">'</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_REGISTRATION_REQUIRED" class="summary-name">ERR_REGISTRATION_REQUIRED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas registration-required'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_REMOTE_SERVER_NOT_FOUND" class="summary-name">ERR_REMOTE_SERVER_NOT_FOUND</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-not-found'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sta</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_REMOTE_SERVER_TIMEOUT" class="summary-name">ERR_REMOTE_SERVER_TIMEOUT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-timeout'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_RESOURCE_CONSTRAINT" class="summary-name">ERR_RESOURCE_CONSTRAINT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas resource-constraint'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_SERVICE_UNAVAILABLE" class="summary-name">ERR_SERVICE_UNAVAILABLE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas service-unavailable'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_SUBSCRIPTION_REQUIRED" class="summary-name">ERR_SUBSCRIPTION_REQUIRED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas subscription-required'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_UNDEFINED_CONDITION" class="summary-name">ERR_UNDEFINED_CONDITION</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas undefined-condition'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#ERR_UNEXPECTED_REQUEST" class="summary-name">ERR_UNEXPECTED_REQUEST</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas unexpected-request'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas </code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#SASL_ABORTED" class="summary-name">SASL_ABORTED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl aborted'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl aborted</code><code class="variable-quote">'</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#SASL_INCORRECT_ENCODING" class="summary-name">SASL_INCORRECT_ENCODING</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl in</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#SASL_INVALID_AUTHZID" class="summary-name">SASL_INVALID_AUTHZID</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl invalid-authzid'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl inval</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#SASL_INVALID_MECHANISM" class="summary-name">SASL_INVALID_MECHANISM</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl invalid-mechanism'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl inv</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#SASL_MECHANISM_TOO_WEAK" class="summary-name">SASL_MECHANISM_TOO_WEAK</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl mechanism-too-weak'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl me</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#SASL_NOT_AUTHORIZED" class="summary-name">SASL_NOT_AUTHORIZED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl not-authorized'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl not-au</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#SASL_TEMPORARY_AUTH_FAILURE" class="summary-name">SASL_TEMPORARY_AUTH_FAILURE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl temporary-auth-failure'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sas</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_BAD_FORMAT" class="summary-name">STREAM_BAD_FORMAT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams bad-format'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams bad-f</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_BAD_NAMESPACE_PREFIX" class="summary-name">STREAM_BAD_NAMESPACE_PREFIX</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams bad-namespace-prefix'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-str</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_CONFLICT" class="summary-name">STREAM_CONFLICT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams conflict'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams conflict</code><code class="variable-quote">'</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_CONNECTION_TIMEOUT" class="summary-name">STREAM_CONNECTION_TIMEOUT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams connection-timeout'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-strea</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_HOST_GONE" class="summary-name">STREAM_HOST_GONE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams host-gone'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams host-g</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_HOST_UNKNOWN" class="summary-name">STREAM_HOST_UNKNOWN</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams host-unknown'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams hos</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_IMPROPER_ADDRESSING" class="summary-name">STREAM_IMPROPER_ADDRESSING</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams improper-addressing'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_INTERNAL_SERVER_ERROR" class="summary-name">STREAM_INTERNAL_SERVER_ERROR</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams internal-server-error'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-st</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_INVALID_FROM" class="summary-name">STREAM_INVALID_FROM</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams invalid-from'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams inv</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_INVALID_ID" class="summary-name">STREAM_INVALID_ID</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams invalid-id'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams inval</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_INVALID_NAMESPACE" class="summary-name">STREAM_INVALID_NAMESPACE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams invalid-namespace'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stream</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_INVALID_XML" class="summary-name">STREAM_INVALID_XML</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams invalid-xml'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams inva</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_NOT_AUTHORIZED" class="summary-name">STREAM_NOT_AUTHORIZED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams not-authorized'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams n</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_POLICY_VIOLATION" class="summary-name">STREAM_POLICY_VIOLATION</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams policy-violation'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_REMOTE_CONNECTION_FAILED" class="summary-name">STREAM_REMOTE_CONNECTION_FAILED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams remote-connection-failed'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_RESOURCE_CONSTRAINT" class="summary-name">STREAM_RESOURCE_CONSTRAINT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams resource-constraint'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_RESTRICTED_XML" class="summary-name">STREAM_RESTRICTED_XML</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams restricted-xml'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams r</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_SEE_OTHER_HOST" class="summary-name">STREAM_SEE_OTHER_HOST</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams see-other-host'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams s</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_SYSTEM_SHUTDOWN" class="summary-name">STREAM_SYSTEM_SHUTDOWN</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams system-shutdown'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams </code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_UNDEFINED_CONDITION" class="summary-name">STREAM_UNDEFINED_CONDITION</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams undefined-condition'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_UNSUPPORTED_ENCODING" class="summary-name">STREAM_UNSUPPORTED_ENCODING</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams unsupported-encoding'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-str</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_UNSUPPORTED_STANZA_TYPE" class="summary-name">STREAM_UNSUPPORTED_STANZA_TYPE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams unsupported-stanza-type'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_UNSUPPORTED_VERSION" class="summary-name">STREAM_UNSUPPORTED_VERSION</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams unsupported-version'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#STREAM_XML_NOT_WELL_FORMED" class="summary-name">STREAM_XML_NOT_WELL_FORMED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams xml-not-well-formed'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
<a href="nbxmpp-module.html#__package__" class="summary-name">__package__</a> = <code title="'nbxmpp'"><code class="variable-quote">'</code><code class="variable-string">nbxmpp</code><code class="variable-quote">'</code></code>
</td>
</tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp-module.html#name" class="summary-name">name</a> = <code title="'SASL_TEMPORARY_AUTH_FAILURE'"><code class="variable-quote">'</code><code class="variable-string">SASL_TEMPORARY_AUTH_FAILURE</code><code class="variable-quote">'</code></code>
- </td>
- </tr>
</table>
<p class="indent-wrapped-lines"><b>Imports:</b>
<span title="nbxmpp.protocol.NS_MUC_ADMIN">NS_MUC_ADMIN</span>,
+ <span title="nbxmpp.protocol.STREAM_NOT_AUTHORIZED">STREAM_NOT_AUTHORIZED</span>,
<span title="nbxmpp.protocol.NS_FILE">NS_FILE</span>,
<a href="nbxmpp.protocol.Error-class.html" title="nbxmpp.protocol.Error">Error</a>,
<span title="nbxmpp.protocol.NS_PUBSUB_EVENT">NS_PUBSUB_EVENT</span>,
<span title="nbxmpp.protocol.NS_RECEIPTS">NS_RECEIPTS</span>,
+ <span title="nbxmpp.protocol.STREAM_CONNECTION_TIMEOUT">STREAM_CONNECTION_TIMEOUT</span>,
+ <span title="nbxmpp.protocol.STREAM_IMPROPER_ADDRESSING">STREAM_IMPROPER_ADDRESSING</span>,
<span title="nbxmpp.protocol.NS_PING">NS_PING</span>,
+ <span title="nbxmpp.protocol.ERR_GONE">ERR_GONE</span>,
<a href="nbxmpp.protocol.Conflict-class.html" title="nbxmpp.protocol.Conflict">Conflict</a>,
<span title="nbxmpp.protocol.NS_PHYSLOC">NS_PHYSLOC</span>,
<span title="nbxmpp.protocol.NS_CHATTING">NS_CHATTING</span>,
+ <span title="nbxmpp.protocol.ERR_CONFLICT">ERR_CONFLICT</span>,
<span title="nbxmpp.protocol.NS_COMPRESS">NS_COMPRESS</span>,
<span title="nbxmpp.protocol.NS_HASHES_SHA1">NS_HASHES_SHA1</span>,
<span title="nbxmpp.protocol.NS_AGENTS">NS_AGENTS</span>,
<span title="nbxmpp.protocol.NS_CAPTCHA">NS_CAPTCHA</span>,
<span title="nbxmpp.protocol.NS_MOOD">NS_MOOD</span>,
+ <span title="nbxmpp.protocol.ERR_NOT_AUTHORIZED">ERR_NOT_AUTHORIZED</span>,
<a href="nbxmpp.protocol.UnsupportedVersion-class.html" title="nbxmpp.protocol.UnsupportedVersion">UnsupportedVersion</a>,
<span title="nbxmpp.protocol.NS_BROWSING">NS_BROWSING</span>,
+ <span title="nbxmpp.protocol.ERR_INTERNAL_SERVER_ERROR">ERR_INTERNAL_SERVER_ERROR</span>,
<a href="nbxmpp.protocol.HostUnknown-class.html" title="nbxmpp.protocol.HostUnknown">HostUnknown</a>,
+ <span title="nbxmpp.protocol.SASL_INCORRECT_ENCODING">SASL_INCORRECT_ENCODING</span>,
<span title="nbxmpp.protocol.NS_MUC_OWNER">NS_MUC_OWNER</span>,
<span title="nbxmpp.protocol.NS_ACTIVITY">NS_ACTIVITY</span>,
<span title="nbxmpp.protocol.NS_ARCHIVE_MANUAL">NS_ARCHIVE_MANUAL</span>,
<span title="nbxmpp.protocol.NS_JINGLE_RTP_AUDIO">NS_JINGLE_RTP_AUDIO</span>,
<span title="nbxmpp.protocol.string">string</span>,
<span title="nbxmpp.protocol.NS_PRESENCE">NS_PRESENCE</span>,
+ <span title="nbxmpp.protocol.STREAM_INTERNAL_SERVER_ERROR">STREAM_INTERNAL_SERVER_ERROR</span>,
<span title="nbxmpp.protocol.NS_CHATSTATES">NS_CHATSTATES</span>,
<span title="nbxmpp.protocol.NS_LAST">NS_LAST</span>,
+ <span title="nbxmpp.protocol.ERR_REDIRECT">ERR_REDIRECT</span>,
<a href="nbxmpp.protocol-module.html#isErrorNode" title="nbxmpp.protocol.isErrorNode">isErrorNode</a>,
<a href="nbxmpp.protocol.Acks-class.html" title="nbxmpp.protocol.Acks">Acks</a>,
<span title="nbxmpp.protocol.NS_GROUPCHAT">NS_GROUPCHAT</span>,
<a href="nbxmpp.protocol.Protocol-class.html" title="nbxmpp.protocol.Protocol">Protocol</a>,
+ <span title="nbxmpp.protocol.ERR_FEATURE_NOT_IMPLEMENTED">ERR_FEATURE_NOT_IMPLEMENTED</span>,
<span title="nbxmpp.protocol.NS_GATEWAY">NS_GATEWAY</span>,
<span title="nbxmpp.protocol.NS_DISCO_ITEMS">NS_DISCO_ITEMS</span>,
- <span title="nbxmpp.protocol.NS_BOOKMARKS">NS_BOOKMARKS</span>,
+ <span title="nbxmpp.protocol.NS_MUC_CONFIG">NS_MUC_CONFIG</span>,
<a href="nbxmpp.protocol.ConnectionTimeout-class.html" title="nbxmpp.protocol.ConnectionTimeout">ConnectionTimeout</a>,
<span title="nbxmpp.protocol.NS_BIND">NS_BIND</span>,
<span title="nbxmpp.protocol.NS_JINGLE_ERRORS">NS_JINGLE_ERRORS</span>,
<span title="nbxmpp.protocol.NS_XMPP_STREAMS">NS_XMPP_STREAMS</span>,
<span title="nbxmpp.protocol.NS_IQ">NS_IQ</span>,
+ <span title="nbxmpp.protocol.ERR_RESOURCE_CONSTRAINT">ERR_RESOURCE_CONSTRAINT</span>,
<span title="nbxmpp.protocol.NS_CLIENT">NS_CLIENT</span>,
<span title="nbxmpp.protocol.NS_FORWARD">NS_FORWARD</span>,
+ <span title="nbxmpp.protocol.SASL_INVALID_AUTHZID">SASL_INVALID_AUTHZID</span>,
<span title="nbxmpp.protocol.NS_EVENT">NS_EVENT</span>,
+ <span title="nbxmpp.protocol.STREAM_POLICY_VIOLATION">STREAM_POLICY_VIOLATION</span>,
<span title="nbxmpp.protocol.NS_JINGLE_IBB">NS_JINGLE_IBB</span>,
<span title="nbxmpp.protocol.NS_DATA_LAYOUT">NS_DATA_LAYOUT</span>,
<span title="nbxmpp.protocol.NS_TUNE">NS_TUNE</span>,
<a href="nbxmpp.protocol.InvalidID-class.html" title="nbxmpp.protocol.InvalidID">InvalidID</a>,
<span title="nbxmpp.protocol.stream_exceptions">stream_exceptions</span>,
- <span title="nbxmpp.protocol.xmpp_stanza_error_conditions">xmpp_stanza_error_conditions</span>,
<span title="nbxmpp.protocol.NS_HASHES_SHA256">NS_HASHES_SHA256</span>,
<span title="nbxmpp.protocol.NS_CARBONS">NS_CARBONS</span>,
<span title="nbxmpp.protocol.NS_ROSTER">NS_ROSTER</span>,
@@ -591,47 +211,63 @@ reply to the &lt;abort/&gt; element.'],
<span title="nbxmpp.protocol.NS_TIME_REVISED">NS_TIME_REVISED</span>,
<a href="nbxmpp.protocol.UnsupportedStanzaType-class.html" title="nbxmpp.protocol.UnsupportedStanzaType">UnsupportedStanzaType</a>,
<span title="nbxmpp.protocol.NS_MUC_UNIQUE">NS_MUC_UNIQUE</span>,
+ <span title="nbxmpp.protocol.ERR_SERVICE_UNAVAILABLE">ERR_SERVICE_UNAVAILABLE</span>,
<span title="nbxmpp.protocol.NS_PUBKEY_PUBKEY">NS_PUBKEY_PUBKEY</span>,
<span title="nbxmpp.protocol.NS_AMP">NS_AMP</span>,
+ <span title="nbxmpp.protocol.STREAM_UNDEFINED_CONDITION">STREAM_UNDEFINED_CONDITION</span>,
<span title="nbxmpp.protocol.NS_CONFERENCE">NS_CONFERENCE</span>,
+ <span title="nbxmpp.protocol.NS_MAM">NS_MAM</span>,
<span title="nbxmpp.protocol.NS_DISCO">NS_DISCO</span>,
<span title="nbxmpp.protocol.NS_RSM">NS_RSM</span>,
+ <span title="nbxmpp.protocol.NS_BLOCKING">NS_BLOCKING</span>,
+ <span title="nbxmpp.protocol.ERRORS">ERRORS</span>,
<span title="nbxmpp.protocol.NS_STREAM">NS_STREAM</span>,
<span title="nbxmpp.protocol.NS_HASHES">NS_HASHES</span>,
<a href="nbxmpp.protocol.HostGone-class.html" title="nbxmpp.protocol.HostGone">HostGone</a>,
+ <a href="nbxmpp.protocol.RemoteConnectionFailed-class.html" title="nbxmpp.protocol.RemoteConnectionFailed">RemoteConnectionFailed</a>,
<span title="nbxmpp.protocol.NS_ESESSION">NS_ESESSION</span>,
<a href="nbxmpp.protocol.NotAuthorized-class.html" title="nbxmpp.protocol.NotAuthorized">NotAuthorized</a>,
- <a href="nbxmpp.protocol.XMLNotWellFormed-class.html" title="nbxmpp.protocol.XMLNotWellFormed">XMLNotWellFormed</a>,
+ <span title="nbxmpp.protocol.STREAM_BAD_FORMAT">STREAM_BAD_FORMAT</span>,
<span title="nbxmpp.protocol.NS_JINGLE_FILE_TRANSFER">NS_JINGLE_FILE_TRANSFER</span>,
<span title="nbxmpp.protocol.NS_LOCATION">NS_LOCATION</span>,
<span title="nbxmpp.protocol.NS_ARCHIVE_AUTO">NS_ARCHIVE_AUTO</span>,
<span title="nbxmpp.protocol.NS_DIALBACK">NS_DIALBACK</span>,
+ <span title="nbxmpp.protocol.SASL_ABORTED">SASL_ABORTED</span>,
<span title="nbxmpp.protocol.NS_AUTH">NS_AUTH</span>,
- <span title="nbxmpp.protocol.NS_MUC_CONFIG">NS_MUC_CONFIG</span>,
+ <a href="nbxmpp.protocol.BadFormat-class.html" title="nbxmpp.protocol.BadFormat">BadFormat</a>,
+ <span title="nbxmpp.protocol.NS_BOOKMARKS">NS_BOOKMARKS</span>,
<span title="nbxmpp.protocol.NS_VCARD">NS_VCARD</span>,
+ <span title="nbxmpp.protocol.STREAM_HOST_GONE">STREAM_HOST_GONE</span>,
<a href="nbxmpp.protocol.DataForm-class.html" title="nbxmpp.protocol.DataForm">DataForm</a>,
+ <span title="nbxmpp.protocol.ERR_REMOTE_SERVER_NOT_FOUND">ERR_REMOTE_SERVER_NOT_FOUND</span>,
<span title="nbxmpp.protocol.NS_XHTML">NS_XHTML</span>,
+ <a href="nbxmpp.protocol.JID-class.html" title="nbxmpp.protocol.JID">JID</a>,
<a href="nbxmpp.protocol.InvalidXML-class.html" title="nbxmpp.protocol.InvalidXML">InvalidXML</a>,
<span title="nbxmpp.protocol.NS_SI">NS_SI</span>,
<a href="nbxmpp.protocol.PolicyViolation-class.html" title="nbxmpp.protocol.PolicyViolation">PolicyViolation</a>,
<span title="nbxmpp.protocol.NS_SASL">NS_SASL</span>,
<span title="nbxmpp.protocol.NS_JINGLE_RAW_UDP">NS_JINGLE_RAW_UDP</span>,
<span title="nbxmpp.protocol.NS_SESSION">NS_SESSION</span>,
+ <span title="nbxmpp.protocol.STREAM_INVALID_FROM">STREAM_INVALID_FROM</span>,
<a href="nbxmpp.protocol.StreamError-class.html" title="nbxmpp.protocol.StreamError">StreamError</a>,
<span title="nbxmpp.protocol.NS_CAPS">NS_CAPS</span>,
<span title="nbxmpp.protocol.NS_PUBSUB_OWNER">NS_PUBSUB_OWNER</span>,
<span title="nbxmpp.protocol.NS_HASHES_SHA512">NS_HASHES_SHA512</span>,
<span title="nbxmpp.protocol.NS_AMP_ERRORS">NS_AMP_ERRORS</span>,
<span title="nbxmpp.protocol.NS_BROWSE">NS_BROWSE</span>,
+ <span title="nbxmpp.protocol.NS_CORRECT">NS_CORRECT</span>,
<span title="nbxmpp.protocol.NS_ROSTERX">NS_ROSTERX</span>,
+ <span title="nbxmpp.protocol.ERR_UNDEFINED_CONDITION">ERR_UNDEFINED_CONDITION</span>,
<span title="nbxmpp.protocol.NS_TLS">NS_TLS</span>,
<span title="nbxmpp.protocol.NS_ATTENTION">NS_ATTENTION</span>,
<span title="nbxmpp.protocol.NS_DATA">NS_DATA</span>,
<span title="nbxmpp.protocol.NS_SERVER">NS_SERVER</span>,
<a href="nbxmpp.protocol.ImproperAddressing-class.html" title="nbxmpp.protocol.ImproperAddressing">ImproperAddressing</a>,
+ <span title="nbxmpp.protocol.ERR_REMOTE_SERVER_TIMEOUT">ERR_REMOTE_SERVER_TIMEOUT</span>,
<span title="nbxmpp.protocol.NS_JINGLE_ICE_UDP">NS_JINGLE_ICE_UDP</span>,
<span title="nbxmpp.protocol.NS_IBB">NS_IBB</span>,
<a href="nbxmpp.protocol.DataField-class.html" title="nbxmpp.protocol.DataField">DataField</a>,
+ <span title="nbxmpp.protocol.ERR_REGISTRATION_REQUIRED">ERR_REGISTRATION_REQUIRED</span>,
<span title="nbxmpp.protocol.NS_TIME">NS_TIME</span>,
<span title="nbxmpp.protocol.NS_PROFILE">NS_PROFILE</span>,
<a href="nbxmpp.protocol.Message-class.html" title="nbxmpp.protocol.Message">Message</a>,
@@ -643,6 +279,8 @@ reply to the &lt;abort/&gt; element.'],
<span title="nbxmpp.protocol.NS_CONDITIONS">NS_CONDITIONS</span>,
<a href="nbxmpp.protocol.UnsupportedEncoding-class.html" title="nbxmpp.protocol.UnsupportedEncoding">UnsupportedEncoding</a>,
<span title="nbxmpp.protocol.NS_FEATURE">NS_FEATURE</span>,
+ <span title="nbxmpp.protocol.STREAM_UNSUPPORTED_VERSION">STREAM_UNSUPPORTED_VERSION</span>,
+ <span title="nbxmpp.protocol.SASL_NOT_AUTHORIZED">SASL_NOT_AUTHORIZED</span>,
<a href="nbxmpp.protocol.SeeOtherHost-class.html" title="nbxmpp.protocol.SeeOtherHost">SeeOtherHost</a>,
<a href="nbxmpp.simplexml.Node-class.html" title="nbxmpp.protocol.Node">Node</a>,
<span title="nbxmpp.protocol.NS_JINGLE_RTP">NS_JINGLE_RTP</span>,
@@ -651,22 +289,30 @@ reply to the &lt;abort/&gt; element.'],
<span title="nbxmpp.protocol.NS_ARCHIVE_MANAGE">NS_ARCHIVE_MANAGE</span>,
<span title="nbxmpp.protocol.NS_SSN">NS_SSN</span>,
<span title="nbxmpp.protocol.NS_DELAY2">NS_DELAY2</span>,
+ <span title="nbxmpp.protocol.SASL_MECHANISM_TOO_WEAK">SASL_MECHANISM_TOO_WEAK</span>,
<a href="nbxmpp.protocol.InvalidNamespace-class.html" title="nbxmpp.protocol.InvalidNamespace">InvalidNamespace</a>,
<span title="nbxmpp.protocol.NS_COMPONENT_1">NS_COMPONENT_1</span>,
<a href="nbxmpp.protocol.Iq-class.html" title="nbxmpp.protocol.Iq">Iq</a>,
<span title="nbxmpp.protocol.NS_ARCHIVE_PREF">NS_ARCHIVE_PREF</span>,
<a href="nbxmpp.protocol.Hashes-class.html" title="nbxmpp.protocol.Hashes">Hashes</a>,
+ <span title="nbxmpp.protocol.ERR_JID_MALFORMED">ERR_JID_MALFORMED</span>,
+ <span title="nbxmpp.protocol.STREAM_INVALID_XML">STREAM_INVALID_XML</span>,
<span title="nbxmpp.protocol.NS_INVISIBLE">NS_INVISIBLE</span>,
<span title="nbxmpp.protocol.NS_JINGLE_RTP_VIDEO">NS_JINGLE_RTP_VIDEO</span>,
<span title="nbxmpp.protocol.NS_PRIVATE">NS_PRIVATE</span>,
<span title="nbxmpp.protocol.NS_VERSION">NS_VERSION</span>,
+ <span title="nbxmpp.protocol.STREAM_UNSUPPORTED_ENCODING">STREAM_UNSUPPORTED_ENCODING</span>,
+ <span title="nbxmpp.protocol.ERR_NOT_ALLOWED">ERR_NOT_ALLOWED</span>,
<span title="nbxmpp.protocol.NS_GAMING">NS_GAMING</span>,
<span title="nbxmpp.protocol.NS_OFFLINE">NS_OFFLINE</span>,
+ <span title="nbxmpp.protocol.STREAM_SYSTEM_SHUTDOWN">STREAM_SYSTEM_SHUTDOWN</span>,
<span title="nbxmpp.protocol.NS_MUC_USER">NS_MUC_USER</span>,
<span title="nbxmpp.protocol.NS_VCARD_UPDATE">NS_VCARD_UPDATE</span>,
<span title="nbxmpp.protocol.NS_ATOM">NS_ATOM</span>,
<a href="nbxmpp.protocol-module.html#ascii_upper" title="nbxmpp.protocol.ascii_upper">ascii_upper</a>,
<span title="nbxmpp.protocol.NS_STREAMS">NS_STREAMS</span>,
+ <span title="nbxmpp.protocol.STREAM_HOST_UNKNOWN">STREAM_HOST_UNKNOWN</span>,
+ <span title="nbxmpp.protocol.ERR_BAD_REQUEST">ERR_BAD_REQUEST</span>,
<span title="nbxmpp.protocol.hashlib">hashlib</span>,
<span title="nbxmpp.protocol.NS_GTALKSETTING">NS_GTALKSETTING</span>,
<a href="nbxmpp.protocol.InvalidFrom-class.html" title="nbxmpp.protocol.InvalidFrom">InvalidFrom</a>,
@@ -676,52 +322,68 @@ reply to the &lt;abort/&gt; element.'],
<span title="nbxmpp.protocol.NS_STANZA_CRYPTO">NS_STANZA_CRYPTO</span>,
<span title="nbxmpp.protocol.NS_SIGNED">NS_SIGNED</span>,
<span title="nbxmpp.protocol.NS_NICK">NS_NICK</span>,
+ <span title="nbxmpp.protocol.ERR_PAYMENT_REQUIRED">ERR_PAYMENT_REQUIRED</span>,
<span title="nbxmpp.protocol.NS_PUBSUB">NS_PUBSUB</span>,
<span title="nbxmpp.protocol.NS_MESSAGE">NS_MESSAGE</span>,
<span title="nbxmpp.protocol.NS_JINGLE_XTLS">NS_JINGLE_XTLS</span>,
<span title="nbxmpp.protocol.NS_DATA_MEDIA">NS_DATA_MEDIA</span>,
+ <span title="nbxmpp.protocol.STREAM_XML_NOT_WELL_FORMED">STREAM_XML_NOT_WELL_FORMED</span>,
+ <a href="nbxmpp.protocol.XMLNotWellFormed-class.html" title="nbxmpp.protocol.XMLNotWellFormed">XMLNotWellFormed</a>,
<span title="nbxmpp.protocol.NS_REGISTER">NS_REGISTER</span>,
- <a href="nbxmpp.protocol.JID-class.html" title="nbxmpp.protocol.JID">JID</a>,
+ <span title="nbxmpp.protocol.STREAM_SEE_OTHER_HOST">STREAM_SEE_OTHER_HOST</span>,
<span title="nbxmpp.protocol.NS_BYTESTREAM">NS_BYTESTREAM</span>,
<span title="nbxmpp.protocol.NS_DELAY">NS_DELAY</span>,
<span title="nbxmpp.protocol.NS_VACATION">NS_VACATION</span>,
<span title="nbxmpp.protocol.NS_PUBSUB_PUBLISH_OPTIONS">NS_PUBSUB_PUBLISH_OPTIONS</span>,
+ <span title="nbxmpp.protocol.STREAM_BAD_NAMESPACE_PREFIX">STREAM_BAD_NAMESPACE_PREFIX</span>,
<span title="nbxmpp.protocol.NS_GEOLOC">NS_GEOLOC</span>,
<span title="nbxmpp.protocol.NS_ARCHIVE">NS_ARCHIVE</span>,
<span title="nbxmpp.protocol.NS_ROSTERNOTES">NS_ROSTERNOTES</span>,
<span title="nbxmpp.protocol.NS_SI_PUB">NS_SI_PUB</span>,
<span title="nbxmpp.protocol.NS_DATA_VALIDATE">NS_DATA_VALIDATE</span>,
+ <span title="nbxmpp.protocol.ERR_RECIPIENT_UNAVAILABLE">ERR_RECIPIENT_UNAVAILABLE</span>,
<span title="nbxmpp.protocol.NS_ESESSION_INIT">NS_ESESSION_INIT</span>,
+ <span title="nbxmpp.protocol.SASL_TEMPORARY_AUTH_FAILURE">SASL_TEMPORARY_AUTH_FAILURE</span>,
<span title="nbxmpp.protocol.NS_PUBKEY_REVOKE">NS_PUBKEY_REVOKE</span>,
<span title="nbxmpp.protocol.NS_JINGLE_BYTESTREAM">NS_JINGLE_BYTESTREAM</span>,
<a href="nbxmpp.simplexml.NodeBuilder-class.html" title="nbxmpp.protocol.NodeBuilder">NodeBuilder</a>,
- <span title="nbxmpp.protocol.xmpp_stream_error_conditions">xmpp_stream_error_conditions</span>,
+ <span title="nbxmpp.protocol.SASL_INVALID_MECHANISM">SASL_INVALID_MECHANISM</span>,
<span title="nbxmpp.protocol.NS_ROSTER_VER">NS_ROSTER_VER</span>,
<span title="nbxmpp.protocol.NS_VIEWING">NS_VIEWING</span>,
<span title="nbxmpp.protocol.NS_COMMANDS">NS_COMMANDS</span>,
<span title="nbxmpp.protocol.NS_AVATAR">NS_AVATAR</span>,
<a href="nbxmpp.protocol.NodeProcessed-class.html" title="nbxmpp.protocol.NodeProcessed">NodeProcessed</a>,
<a href="nbxmpp.protocol.Presence-class.html" title="nbxmpp.protocol.Presence">Presence</a>,
+ <span title="nbxmpp.protocol.STREAM_CONFLICT">STREAM_CONFLICT</span>,
<a href="nbxmpp.protocol.ResourceConstraint-class.html" title="nbxmpp.protocol.ResourceConstraint">ResourceConstraint</a>,
+ <span title="nbxmpp.protocol.STREAM_RESOURCE_CONSTRAINT">STREAM_RESOURCE_CONSTRAINT</span>,
<span title="nbxmpp.protocol.NS_STREAM_MGMT">NS_STREAM_MGMT</span>,
- <a href="nbxmpp.protocol.RemoteConnectionFailed-class.html" title="nbxmpp.protocol.RemoteConnectionFailed">RemoteConnectionFailed</a>,
+ <span title="nbxmpp.protocol.ERR_UNEXPECTED_REQUEST">ERR_UNEXPECTED_REQUEST</span>,
<span title="nbxmpp.protocol.time">time</span>,
+ <span title="nbxmpp.protocol.NS_X_OOB">NS_X_OOB</span>,
+ <span title="nbxmpp.protocol.ERR_SUBSCRIPTION_REQUIRED">ERR_SUBSCRIPTION_REQUIRED</span>,
+ <span title="nbxmpp.protocol.ERR_ITEM_NOT_FOUND">ERR_ITEM_NOT_FOUND</span>,
+ <span title="nbxmpp.protocol.STREAM_INVALID_NAMESPACE">STREAM_INVALID_NAMESPACE</span>,
<span title="nbxmpp.protocol.NS_SEARCH">NS_SEARCH</span>,
+ <span title="nbxmpp.protocol.STREAM_REMOTE_CONNECTION_FAILED">STREAM_REMOTE_CONNECTION_FAILED</span>,
<a href="nbxmpp.protocol.BOSHBody-class.html" title="nbxmpp.protocol.BOSHBody">BOSHBody</a>,
<span title="nbxmpp.protocol.NS_ADDRESS">NS_ADDRESS</span>,
<span title="nbxmpp.protocol.NS_COMPONENT_ACCEPT">NS_COMPONENT_ACCEPT</span>,
+ <span title="nbxmpp.protocol.STREAM_INVALID_ID">STREAM_INVALID_ID</span>,
<a href="nbxmpp.protocol.RestrictedXML-class.html" title="nbxmpp.protocol.RestrictedXML">RestrictedXML</a>,
<span title="nbxmpp.protocol.NS_SECLABEL_CATALOG">NS_SECLABEL_CATALOG</span>,
+ <span title="nbxmpp.protocol.STREAM_RESTRICTED_XML">STREAM_RESTRICTED_XML</span>,
<span title="nbxmpp.protocol.NS_DISCO_INFO">NS_DISCO_INFO</span>,
- <span title="nbxmpp.protocol.sasl_error_conditions">sasl_error_conditions</span>,
- <a href="nbxmpp.protocol.BadFormat-class.html" title="nbxmpp.protocol.BadFormat">BadFormat</a>,
+ <span title="nbxmpp.protocol.STREAM_UNSUPPORTED_STANZA_TYPE">STREAM_UNSUPPORTED_STANZA_TYPE</span>,
<a href="nbxmpp.protocol.InternalServerError-class.html" title="nbxmpp.protocol.InternalServerError">InternalServerError</a>,
<span title="nbxmpp.protocol.NS_PUBKEY_ATTEST">NS_PUBKEY_ATTEST</span>,
<span title="nbxmpp.protocol.NS_MUC">NS_MUC</span>,
+ <span title="nbxmpp.protocol.ERR_NOT_ACCEPTABLE">ERR_NOT_ACCEPTABLE</span>,
<span title="nbxmpp.protocol.NS_JINGLE">NS_JINGLE</span>,
<span title="nbxmpp.protocol.NS_BOB">NS_BOB</span>,
<span title="nbxmpp.protocol.NS_HASHES_MD5">NS_HASHES_MD5</span>,
<span title="nbxmpp.protocol.NS_HTTP_AUTH">NS_HTTP_AUTH</span>,
+ <span title="nbxmpp.protocol.ERR_FORBIDDEN">ERR_FORBIDDEN</span>,
<a href="nbxmpp.protocol.ErrorNode-class.html" title="nbxmpp.protocol.ErrorNode">ErrorNode</a>,
<a href="nbxmpp.simplexml-module.html" title="nbxmpp.simplexml">simplexml</a>,
<a href="nbxmpp.protocol-module.html" title="nbxmpp.protocol">protocol</a>,
@@ -759,986 +421,6 @@ reply to the &lt;abort/&gt; element.'],
</td>
</tr>
</table>
-<a name="ERRORS"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERRORS</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl aborted</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">The receiving entity ac</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">knowledges an &lt;abort/&gt; element sent by the initiating entity; sent in </code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">reply to the &lt;abort/&gt; element.</code><code class="variable-quote">'</code><code class="variable-group">]</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">The data pro</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-ellipsis">...</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_BAD_REQUEST"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_BAD_REQUEST</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas bad-request</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_CONFLICT"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_CONFLICT</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas conflict</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_FEATURE_NOT_IMPLEMENTED"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_FEATURE_NOT_IMPLEMENTED</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas feature-not-implemented</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_FORBIDDEN"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_FORBIDDEN</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas forbidden</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_GONE"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_GONE</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas gone</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_INTERNAL_SERVER_ERROR"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_INTERNAL_SERVER_ERROR</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas internal-server-error</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_ITEM_NOT_FOUND"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_ITEM_NOT_FOUND</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas item-not-found</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_JID_MALFORMED"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_JID_MALFORMED</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas jid-malformed</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_NOT_ACCEPTABLE"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_NOT_ACCEPTABLE</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-acceptable</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_NOT_ALLOWED"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_NOT_ALLOWED</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-allowed</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_NOT_AUTHORIZED"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_NOT_AUTHORIZED</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-authorized</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_PAYMENT_REQUIRED"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_PAYMENT_REQUIRED</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas payment-required</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_RECIPIENT_UNAVAILABLE"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_RECIPIENT_UNAVAILABLE</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas recipient-unavailable</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_REDIRECT"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_REDIRECT</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas redirect</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_REGISTRATION_REQUIRED"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_REGISTRATION_REQUIRED</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas registration-required</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_REMOTE_SERVER_NOT_FOUND"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_REMOTE_SERVER_NOT_FOUND</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas remote-server-not-found</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_REMOTE_SERVER_TIMEOUT"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_REMOTE_SERVER_TIMEOUT</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas remote-server-timeout</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_RESOURCE_CONSTRAINT"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_RESOURCE_CONSTRAINT</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas resource-constraint</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_SERVICE_UNAVAILABLE"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_SERVICE_UNAVAILABLE</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas service-unavailable</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_SUBSCRIPTION_REQUIRED"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_SUBSCRIPTION_REQUIRED</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas subscription-required</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_UNDEFINED_CONDITION"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_UNDEFINED_CONDITION</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas undefined-condition</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="ERR_UNEXPECTED_REQUEST"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">ERR_UNEXPECTED_REQUEST</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas unexpected-request</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="SASL_ABORTED"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">SASL_ABORTED</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl aborted</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="SASL_INCORRECT_ENCODING"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">SASL_INCORRECT_ENCODING</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="SASL_INVALID_AUTHZID"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">SASL_INVALID_AUTHZID</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl invalid-authzid</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="SASL_INVALID_MECHANISM"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">SASL_INVALID_MECHANISM</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl invalid-mechanism</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="SASL_MECHANISM_TOO_WEAK"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">SASL_MECHANISM_TOO_WEAK</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl mechanism-too-weak</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="SASL_NOT_AUTHORIZED"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">SASL_NOT_AUTHORIZED</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl not-authorized</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="SASL_TEMPORARY_AUTH_FAILURE"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">SASL_TEMPORARY_AUTH_FAILURE</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl temporary-auth-failure</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_BAD_FORMAT"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_BAD_FORMAT</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams bad-format</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_BAD_NAMESPACE_PREFIX"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_BAD_NAMESPACE_PREFIX</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams bad-namespace-prefix</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_CONFLICT"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_CONFLICT</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams conflict</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_CONNECTION_TIMEOUT"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_CONNECTION_TIMEOUT</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams connection-timeout</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_HOST_GONE"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_HOST_GONE</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams host-gone</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_HOST_UNKNOWN"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_HOST_UNKNOWN</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams host-unknown</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_IMPROPER_ADDRESSING"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_IMPROPER_ADDRESSING</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams improper-addressing</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_INTERNAL_SERVER_ERROR"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_INTERNAL_SERVER_ERROR</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams internal-server-error</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_INVALID_FROM"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_INVALID_FROM</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams invalid-from</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_INVALID_ID"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_INVALID_ID</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams invalid-id</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_INVALID_NAMESPACE"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_INVALID_NAMESPACE</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams invalid-namespace</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_INVALID_XML"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_INVALID_XML</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams invalid-xml</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_NOT_AUTHORIZED"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_NOT_AUTHORIZED</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams not-authorized</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_POLICY_VIOLATION"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_POLICY_VIOLATION</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams policy-violation</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_REMOTE_CONNECTION_FAILED"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_REMOTE_CONNECTION_FAILED</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams remote-connection-failed</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_RESOURCE_CONSTRAINT"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_RESOURCE_CONSTRAINT</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams resource-constraint</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_RESTRICTED_XML"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_RESTRICTED_XML</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams restricted-xml</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_SEE_OTHER_HOST"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_SEE_OTHER_HOST</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams see-other-host</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_SYSTEM_SHUTDOWN"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_SYSTEM_SHUTDOWN</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams system-shutdown</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_UNDEFINED_CONDITION"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_UNDEFINED_CONDITION</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams undefined-condition</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_UNSUPPORTED_ENCODING"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_UNSUPPORTED_ENCODING</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams unsupported-encoding</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_UNSUPPORTED_STANZA_TYPE"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_UNSUPPORTED_STANZA_TYPE</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams unsupported-stanza-type</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_UNSUPPORTED_VERSION"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_UNSUPPORTED_VERSION</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams unsupported-version</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_XML_NOT_WELL_FORMED"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_XML_NOT_WELL_FORMED</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams xml-not-well-formed</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
<a name="__package__"></a>
<div>
<table class="details" border="1" cellpadding="3"
@@ -1757,24 +439,6 @@ reply to the &lt;abort/&gt; element.'],
</dl>
</td></tr></table>
</div>
-<a name="name"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">name</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">SASL_TEMPORARY_AUTH_FAILURE</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
@@ -1807,7 +471,7 @@ reply to the &lt;abort/&gt; element.'],
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp-pysrc.html b/doc/apidocs/nbxmpp-pysrc.html
index 76893e3..925072f 100644
--- a/doc/apidocs/nbxmpp-pysrc.html
+++ b/doc/apidocs/nbxmpp-pysrc.html
@@ -126,7 +126,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:09 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.auth_nb-module.html b/doc/apidocs/nbxmpp.auth_nb-module.html
index cd593eb..c8275f2 100644
--- a/doc/apidocs/nbxmpp.auth_nb-module.html
+++ b/doc/apidocs/nbxmpp.auth_nb-module.html
@@ -704,7 +704,7 @@ False
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.auth_nb-pysrc.html b/doc/apidocs/nbxmpp.auth_nb-pysrc.html
index 1de3c33..2158d17 100644
--- a/doc/apidocs/nbxmpp.auth_nb-pysrc.html
+++ b/doc/apidocs/nbxmpp.auth_nb-pysrc.html
@@ -1164,13 +1164,14 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L692"></a><tt class="py-lineno">692</tt> <tt class="py-line"> <tt class="py-name">sm</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">_caller</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt> </tt>
<a name="L693"></a><tt class="py-lineno">693</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">supports_sm</tt><tt class="py-op">:</tt> </tt>
<a name="L694"></a><tt class="py-lineno">694</tt> <tt class="py-line"> <tt class="py-comment"># starts negociation</tt> </tt>
-<a name="L695"></a><tt class="py-lineno">695</tt> <tt class="py-line"> <tt class="py-name">sm</tt><tt class="py-op">.</tt><tt id="link-296" class="py-name" targets="Method nbxmpp.smacks.Smacks.set_owner()=nbxmpp.smacks.Smacks-class.html#set_owner"><a title="nbxmpp.smacks.Smacks.set_owner" class="py-name" href="#" onclick="return doclink('link-296', 'set_owner', 'link-296');">set_owner</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">)</tt> </tt>
-<a name="L696"></a><tt class="py-lineno">696</tt> <tt class="py-line"> <tt class="py-name">sm</tt><tt class="py-op">.</tt><tt id="link-297" class="py-name" targets="Method nbxmpp.smacks.Smacks.negociate()=nbxmpp.smacks.Smacks-class.html#negociate"><a title="nbxmpp.smacks.Smacks.negociate" class="py-name" href="#" onclick="return doclink('link-297', 'negociate', 'link-297');">negociate</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L697"></a><tt class="py-lineno">697</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-298" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-298', 'Dispatcher', 'link-38');">Dispatcher</a></tt><tt class="py-op">.</tt><tt class="py-name">sm</tt> <tt class="py-op">=</tt> <tt class="py-name">sm</tt> </tt>
-<a name="L698"></a><tt class="py-lineno">698</tt> <tt class="py-line"> </tt>
-<a name="L699"></a><tt class="py-lineno">699</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'session'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L700"></a><tt class="py-lineno">700</tt> <tt class="py-line"> <tt class="py-comment"># Server don't want us to initialize a session</tt> </tt>
-<a name="L701"></a><tt class="py-lineno">701</tt> <tt class="py-line"> <tt id="link-299" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L695"></a><tt class="py-lineno">695</tt> <tt class="py-line"> <tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">supports_sm</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L696"></a><tt class="py-lineno">696</tt> <tt class="py-line"> <tt class="py-name">sm</tt><tt class="py-op">.</tt><tt id="link-296" class="py-name" targets="Method nbxmpp.smacks.Smacks.set_owner()=nbxmpp.smacks.Smacks-class.html#set_owner"><a title="nbxmpp.smacks.Smacks.set_owner" class="py-name" href="#" onclick="return doclink('link-296', 'set_owner', 'link-296');">set_owner</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">)</tt> </tt>
+<a name="L697"></a><tt class="py-lineno">697</tt> <tt class="py-line"> <tt class="py-name">sm</tt><tt class="py-op">.</tt><tt id="link-297" class="py-name" targets="Method nbxmpp.smacks.Smacks.negociate()=nbxmpp.smacks.Smacks-class.html#negociate"><a title="nbxmpp.smacks.Smacks.negociate" class="py-name" href="#" onclick="return doclink('link-297', 'negociate', 'link-297');">negociate</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L698"></a><tt class="py-lineno">698</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-298" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-298', 'Dispatcher', 'link-38');">Dispatcher</a></tt><tt class="py-op">.</tt><tt class="py-name">sm</tt> <tt class="py-op">=</tt> <tt class="py-name">sm</tt> </tt>
+<a name="L699"></a><tt class="py-lineno">699</tt> <tt class="py-line"> </tt>
+<a name="L700"></a><tt class="py-lineno">700</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'session'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L701"></a><tt class="py-lineno">701</tt> <tt class="py-line"> <tt class="py-comment"># Server don't want us to initialize a session</tt> </tt>
+<a name="L702"></a><tt class="py-lineno">702</tt> <tt class="py-line"> <tt id="link-299" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1182,14 +1183,14 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-299', 'log', 'link-20');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'No session required.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L702"></a><tt class="py-lineno">702</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_bound</tt><tt class="py-op">(</tt><tt class="py-string">'ok'</tt><tt class="py-op">)</tt> </tt>
-<a name="L703"></a><tt class="py-lineno">703</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L704"></a><tt class="py-lineno">704</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-300" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.SendAndWaitForResponse" class="py-name" href="#" onclick="return doclink('link-300', 'SendAndWaitForResponse', 'link-216');">SendAndWaitForResponse</a></tt><tt class="py-op">(</tt><tt id="link-301" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-301', 'Protocol', 'link-13');">Protocol</a></tt><tt class="py-op">(</tt><tt class="py-string">'iq'</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-string">'set'</tt><tt class="py-op">,</tt> </tt>
-<a name="L705"></a><tt class="py-lineno">705</tt> <tt class="py-line"> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt id="link-302" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-302', 'Node', 'link-9');">Node</a></tt><tt class="py-op">(</tt><tt class="py-string">'session'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'xmlns'</tt><tt class="py-op">:</tt><tt id="link-303" class="py-name"><a title="nbxmpp.protocol.NS_SESSION" class="py-name" href="#" onclick="return doclink('link-303', 'NS_SESSION', 'link-2');">NS_SESSION</a></tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L706"></a><tt class="py-lineno">706</tt> <tt class="py-line"> <tt class="py-name">func</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-304" class="py-name" targets="Method nbxmpp.auth_nb.NonBlockingBind._on_session()=nbxmpp.auth_nb.NonBlockingBind-class.html#_on_session"><a title="nbxmpp.auth_nb.NonBlockingBind._on_session" class="py-name" href="#" onclick="return doclink('link-304', '_on_session', 'link-304');">_on_session</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L707"></a><tt class="py-lineno">707</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L708"></a><tt class="py-lineno">708</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
-<a name="L709"></a><tt class="py-lineno">709</tt> <tt class="py-line"> <tt id="link-305" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L703"></a><tt class="py-lineno">703</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_bound</tt><tt class="py-op">(</tt><tt class="py-string">'ok'</tt><tt class="py-op">)</tt> </tt>
+<a name="L704"></a><tt class="py-lineno">704</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L705"></a><tt class="py-lineno">705</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-300" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.SendAndWaitForResponse" class="py-name" href="#" onclick="return doclink('link-300', 'SendAndWaitForResponse', 'link-216');">SendAndWaitForResponse</a></tt><tt class="py-op">(</tt><tt id="link-301" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-301', 'Protocol', 'link-13');">Protocol</a></tt><tt class="py-op">(</tt><tt class="py-string">'iq'</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-string">'set'</tt><tt class="py-op">,</tt> </tt>
+<a name="L706"></a><tt class="py-lineno">706</tt> <tt class="py-line"> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt id="link-302" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-302', 'Node', 'link-9');">Node</a></tt><tt class="py-op">(</tt><tt class="py-string">'session'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'xmlns'</tt><tt class="py-op">:</tt><tt id="link-303" class="py-name"><a title="nbxmpp.protocol.NS_SESSION" class="py-name" href="#" onclick="return doclink('link-303', 'NS_SESSION', 'link-2');">NS_SESSION</a></tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L707"></a><tt class="py-lineno">707</tt> <tt class="py-line"> <tt class="py-name">func</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-304" class="py-name" targets="Method nbxmpp.auth_nb.NonBlockingBind._on_session()=nbxmpp.auth_nb.NonBlockingBind-class.html#_on_session"><a title="nbxmpp.auth_nb.NonBlockingBind._on_session" class="py-name" href="#" onclick="return doclink('link-304', '_on_session', 'link-304');">_on_session</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L708"></a><tt class="py-lineno">708</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L709"></a><tt class="py-lineno">709</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
+<a name="L710"></a><tt class="py-lineno">710</tt> <tt class="py-line"> <tt id="link-305" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1201,9 +1202,9 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-305', 'log', 'link-20');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Binding failed: %s.'</tt> <tt class="py-op">%</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt id="link-306" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-306', 'getTag', 'link-65');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L710"></a><tt class="py-lineno">710</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_bound</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L711"></a><tt class="py-lineno">711</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L712"></a><tt class="py-lineno">712</tt> <tt class="py-line"> <tt id="link-307" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L711"></a><tt class="py-lineno">711</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_bound</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L712"></a><tt class="py-lineno">712</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L713"></a><tt class="py-lineno">713</tt> <tt class="py-line"> <tt id="link-307" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1215,13 +1216,13 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-307', 'log', 'link-20');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Binding failed: timeout expired.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L713"></a><tt class="py-lineno">713</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_bound</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L714"></a><tt class="py-lineno">714</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBind._on_session"></a><div id="NonBlockingBind._on_session-def"><a name="L715"></a><tt class="py-lineno">715</tt> <a class="py-toggle" href="#" id="NonBlockingBind._on_session-toggle" onclick="return toggle('NonBlockingBind._on_session');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.auth_nb.NonBlockingBind-class.html#_on_session">_on_session</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBind._on_session-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBind._on_session-expanded"><a name="L716"></a><tt class="py-lineno">716</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-308" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+<a name="L714"></a><tt class="py-lineno">714</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_bound</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L715"></a><tt class="py-lineno">715</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBind._on_session"></a><div id="NonBlockingBind._on_session-def"><a name="L716"></a><tt class="py-lineno">716</tt> <a class="py-toggle" href="#" id="NonBlockingBind._on_session-toggle" onclick="return toggle('NonBlockingBind._on_session');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.auth_nb.NonBlockingBind-class.html#_on_session">_on_session</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBind._on_session-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBind._on_session-expanded"><a name="L717"></a><tt class="py-lineno">717</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-308" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-308', 'onreceive', 'link-277');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L717"></a><tt class="py-lineno">717</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-309" class="py-name"><a title="nbxmpp.protocol.isResultNode" class="py-name" href="#" onclick="return doclink('link-309', 'isResultNode', 'link-11');">isResultNode</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L718"></a><tt class="py-lineno">718</tt> <tt class="py-line"> <tt id="link-310" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L718"></a><tt class="py-lineno">718</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-309" class="py-name"><a title="nbxmpp.protocol.isResultNode" class="py-name" href="#" onclick="return doclink('link-309', 'isResultNode', 'link-11');">isResultNode</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L719"></a><tt class="py-lineno">719</tt> <tt class="py-line"> <tt id="link-310" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1233,10 +1234,10 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-310', 'log', 'link-20');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Successfully opened session.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L719"></a><tt class="py-lineno">719</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L720"></a><tt class="py-lineno">720</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_bound</tt><tt class="py-op">(</tt><tt class="py-string">'ok'</tt><tt class="py-op">)</tt> </tt>
-<a name="L721"></a><tt class="py-lineno">721</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L722"></a><tt class="py-lineno">722</tt> <tt class="py-line"> <tt id="link-311" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L720"></a><tt class="py-lineno">720</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L721"></a><tt class="py-lineno">721</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_bound</tt><tt class="py-op">(</tt><tt class="py-string">'ok'</tt><tt class="py-op">)</tt> </tt>
+<a name="L722"></a><tt class="py-lineno">722</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L723"></a><tt class="py-lineno">723</tt> <tt class="py-line"> <tt id="link-311" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1248,9 +1249,9 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-311', 'log', 'link-20');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Session open failed.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L723"></a><tt class="py-lineno">723</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L724"></a><tt class="py-lineno">724</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_bound</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L725"></a><tt class="py-lineno">725</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L724"></a><tt class="py-lineno">724</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L725"></a><tt class="py-lineno">725</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_bound</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L726"></a><tt class="py-lineno">726</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -1288,7 +1289,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.auth_nb.NonBlockingBind-class.html b/doc/apidocs/nbxmpp.auth_nb.NonBlockingBind-class.html
index 5a942c7..b8d44b6 100644
--- a/doc/apidocs/nbxmpp.auth_nb.NonBlockingBind-class.html
+++ b/doc/apidocs/nbxmpp.auth_nb.NonBlockingBind-class.html
@@ -64,16 +64,16 @@
<h1 class="epydoc">Class NonBlockingBind</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.auth_nb-pysrc.html#NonBlockingBind">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_a" name="uml_class_diagram_for_nbxmpp_a">
-<area shape="rect" id="node0" href="nbxmpp.auth_nb.NonBlockingBind-class.html#__init__" title="nbxmpp.auth_nb.NonBlockingBind.__init__" alt="" coords="17,153,389,172"/>
-<area shape="rect" id="node0" href="nbxmpp.auth_nb.NonBlockingBind-class.html#plugin" title="Start resource binding, if allowed at this time. Used internally." alt="" coords="17,172,389,191"/>
-<area shape="rect" id="node0" href="nbxmpp.auth_nb.NonBlockingBind-class.html#FeaturesHandler" title="Determine if server supports resource binding and set some internal attributes accordingly." alt="" coords="17,191,389,209"/>
-<area shape="rect" id="node0" href="nbxmpp.auth_nb.NonBlockingBind-class.html#plugout" title="Remove Bind handler from owner&#39;s dispatcher. Used internally" alt="" coords="17,209,389,228"/>
-<area shape="rect" id="node0" href="nbxmpp.auth_nb.NonBlockingBind-class.html#NonBlockingBind" title="Perform binding. Use provided resource name or random (if not provided)." alt="" coords="17,228,389,247"/>
+<area shape="rect" id="node0" href="nbxmpp.auth_nb.NonBlockingBind-class.html#__init__" title="nbxmpp.auth_nb.NonBlockingBind.__init__" alt="" coords="17,153,388,172"/>
+<area shape="rect" id="node0" href="nbxmpp.auth_nb.NonBlockingBind-class.html#plugin" title="Start resource binding, if allowed at this time. Used internally." alt="" coords="17,172,388,191"/>
+<area shape="rect" id="node0" href="nbxmpp.auth_nb.NonBlockingBind-class.html#FeaturesHandler" title="Determine if server supports resource binding and set some internal attributes accordingly." alt="" coords="17,191,388,209"/>
+<area shape="rect" id="node0" href="nbxmpp.auth_nb.NonBlockingBind-class.html#plugout" title="Remove Bind handler from owner&#39;s dispatcher. Used internally" alt="" coords="17,209,388,228"/>
+<area shape="rect" id="node0" href="nbxmpp.auth_nb.NonBlockingBind-class.html#NonBlockingBind" title="Perform binding. Use provided resource name or random (if not provided)." alt="" coords="17,228,388,247"/>
<area shape="rect" id="node1" href="nbxmpp.auth_nb.NonBlockingBind-class.html" title="Bind some JID to the current connection to allow router know of our location. Must be plugged after successful SASL auth" alt="" coords="5,121,400,253"/>
-<area shape="rect" id="node1" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="91,39,316,57"/>
-<area shape="rect" id="node1" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="91,57,316,76"/>
-<area shape="rect" id="node1" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="91,76,316,95"/>
-<area shape="rect" id="node2" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="79,6,327,101"/>
+<area shape="rect" id="node1" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="89,39,315,57"/>
+<area shape="rect" id="node1" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="89,57,315,76"/>
+<area shape="rect" id="node1" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="89,76,315,95"/>
+<area shape="rect" id="node2" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="77,6,325,101"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_a.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_a" ismap="ismap" class="graph-without-title" />
</center>
@@ -453,7 +453,7 @@ attributes accordingly.</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.auth_nb.NonBlockingNonSASL-class.html b/doc/apidocs/nbxmpp.auth_nb.NonBlockingNonSASL-class.html
index f515bf5..4690a7d 100644
--- a/doc/apidocs/nbxmpp.auth_nb.NonBlockingNonSASL-class.html
+++ b/doc/apidocs/nbxmpp.auth_nb.NonBlockingNonSASL-class.html
@@ -64,9 +64,9 @@
<h1 class="epydoc">Class NonBlockingNonSASL</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.auth_nb-pysrc.html#NonBlockingNonSASL">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_a_2" name="uml_class_diagram_for_nbxmpp_a_2">
-<area shape="rect" id="node2" href="nbxmpp.auth_nb.NonBlockingNonSASL-class.html#__init__" title="Caches username, password and resource for auth" alt="" coords="17,153,332,172"/>
-<area shape="rect" id="node2" href="nbxmpp.auth_nb.NonBlockingNonSASL-class.html#plugin" title="Determine the best auth method (digest/0k/plain) and use it for auth. Returns used method name on success. Used internally" alt="" coords="17,172,332,191"/>
-<area shape="rect" id="node1" href="nbxmpp.auth_nb.NonBlockingNonSASL-class.html" title="Implements old Non&#45;SASL (JEP&#45;0078) authentication used in jabberd1.4 and transport authentication" alt="" coords="5,121,344,197"/>
+<area shape="rect" id="node2" href="nbxmpp.auth_nb.NonBlockingNonSASL-class.html#__init__" title="Caches username, password and resource for auth" alt="" coords="17,153,331,172"/>
+<area shape="rect" id="node2" href="nbxmpp.auth_nb.NonBlockingNonSASL-class.html#plugin" title="Determine the best auth method (digest/0k/plain) and use it for auth. Returns used method name on success. Used internally" alt="" coords="17,172,331,191"/>
+<area shape="rect" id="node1" href="nbxmpp.auth_nb.NonBlockingNonSASL-class.html" title="Implements old Non&#45;SASL (JEP&#45;0078) authentication used in jabberd1.4 and transport authentication" alt="" coords="5,121,341,197"/>
<area shape="rect" id="node3" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="61,39,287,57"/>
<area shape="rect" id="node3" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="61,57,287,76"/>
<area shape="rect" id="node3" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="61,76,287,95"/>
@@ -379,7 +379,7 @@ Returns used method name on success. Used internally
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.auth_nb.SASL-class.html b/doc/apidocs/nbxmpp.auth_nb.SASL-class.html
index 12d650c..2b96dce 100644
--- a/doc/apidocs/nbxmpp.auth_nb.SASL-class.html
+++ b/doc/apidocs/nbxmpp.auth_nb.SASL-class.html
@@ -64,19 +64,19 @@
<h1 class="epydoc">Class SASL</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.auth_nb-pysrc.html#SASL">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_a_3" name="uml_class_diagram_for_nbxmpp_a_3">
-<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#__init__" title="nbxmpp.auth_nb.SASL.__init__" alt="" coords="17,153,301,172"/>
-<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#plugin" title="nbxmpp.auth_nb.SASL.plugin" alt="" coords="17,172,301,191"/>
-<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#plugout" title="Remove SASL handlers from owner&#39;s dispatcher. Used internally" alt="" coords="17,191,301,209"/>
-<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#auth" title="Start authentication. Result can be obtained via &quot;SASL.startsasl&quot; attribute and will be either SASL_SUCCESS or SASL_FAILURE" alt="" coords="17,209,301,228"/>
-<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#FeaturesHandler" title="Used to determine if server supports SASL auth. Used internally" alt="" coords="17,228,301,247"/>
-<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#MechanismHandler" title="nbxmpp.auth_nb.SASL.MechanismHandler" alt="" coords="17,247,301,265"/>
-<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#SASLHandler" title="Perform next SASL auth step. Used internally" alt="" coords="17,265,301,284"/>
-<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#set_password" title="nbxmpp.auth_nb.SASL.set_password" alt="" coords="17,284,301,303"/>
+<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#__init__" title="nbxmpp.auth_nb.SASL.__init__" alt="" coords="17,153,300,172"/>
+<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#plugin" title="nbxmpp.auth_nb.SASL.plugin" alt="" coords="17,172,300,191"/>
+<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#plugout" title="Remove SASL handlers from owner&#39;s dispatcher. Used internally" alt="" coords="17,191,300,209"/>
+<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#auth" title="Start authentication. Result can be obtained via &quot;SASL.startsasl&quot; attribute and will be either SASL_SUCCESS or SASL_FAILURE" alt="" coords="17,209,300,228"/>
+<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#FeaturesHandler" title="Used to determine if server supports SASL auth. Used internally" alt="" coords="17,228,300,247"/>
+<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#MechanismHandler" title="nbxmpp.auth_nb.SASL.MechanismHandler" alt="" coords="17,247,300,265"/>
+<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#SASLHandler" title="Perform next SASL auth step. Used internally" alt="" coords="17,265,300,284"/>
+<area shape="rect" id="node4" href="nbxmpp.auth_nb.SASL-class.html#set_password" title="nbxmpp.auth_nb.SASL.set_password" alt="" coords="17,284,300,303"/>
<area shape="rect" id="node1" href="nbxmpp.auth_nb.SASL-class.html" title="Implements SASL authentication. Can be plugged into NonBlockingClient to start authentication" alt="" coords="5,121,312,309"/>
-<area shape="rect" id="node5" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="47,39,272,57"/>
-<area shape="rect" id="node5" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="47,57,272,76"/>
-<area shape="rect" id="node5" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="47,76,272,95"/>
-<area shape="rect" id="node2" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="35,6,283,101"/>
+<area shape="rect" id="node5" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="45,39,271,57"/>
+<area shape="rect" id="node5" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="45,57,271,76"/>
+<area shape="rect" id="node5" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="45,76,271,95"/>
+<area shape="rect" id="node2" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="33,6,281,101"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_a_3.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_a_3" ismap="ismap" class="graph-without-title" />
</center>
@@ -556,7 +556,7 @@ calls.</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.bosh-module.html b/doc/apidocs/nbxmpp.bosh-module.html
index 57bd31b..900e404 100644
--- a/doc/apidocs/nbxmpp.bosh-module.html
+++ b/doc/apidocs/nbxmpp.bosh-module.html
@@ -402,7 +402,7 @@ logging.getLogger('nbxmpp.bosh')
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.bosh-pysrc.html b/doc/apidocs/nbxmpp.bosh-pysrc.html
index f6e3ca2..3a29027 100644
--- a/doc/apidocs/nbxmpp.bosh-pysrc.html
+++ b/doc/apidocs/nbxmpp.bosh-pysrc.html
@@ -203,56 +203,62 @@ nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onc
<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-name">host</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt> <tt class="py-op">=</tt> <tt id="link-22" class="py-name"><a title="nbxmpp.transports_nb.urisplit" class="py-name" href="#" onclick="return doclink('link-22', 'urisplit', 'link-7');">urisplit</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_uri</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'xmpp_server'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">host</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt> </tt>
<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'credentials'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_creds</tt> </tt>
-</div><a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.connect"></a><div id="NonBlockingBOSH.connect-def"><a name="L92"></a><tt class="py-lineno"> 92</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.connect-toggle" onclick="return toggle('NonBlockingBOSH.connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#connect">connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">conn_5tuple</tt><tt class="py-op">,</tt> <tt class="py-param">on_connect</tt><tt class="py-op">,</tt> <tt class="py-param">on_connect_failure</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.connect-expanded"><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt id="link-23" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-23', 'NonBlockingTransport', 'link-1');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.connect()=nbxmpp.bosh.NonBlockingBOSH-class.html#connect,Method nbxmpp.client_nb.NonBlockingClient.connect()=nbxmpp.client_nb.NonBlockingClient-class.html#connect,Method nbxmpp.transports_nb.NonBlockingTCP.connect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#connect,Method nbxmpp.transports_nb.NonBlockingTransport.connect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#connect"><a title="nbxmpp.bosh.NonBlockingBOSH.connect
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-comment"># ssl variables</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_fingerprint_sha1</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_certificate</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_errnum</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_cert_pem</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.connect"></a><div id="NonBlockingBOSH.connect-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.connect-toggle" onclick="return toggle('NonBlockingBOSH.connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#connect">connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">conn_5tuple</tt><tt class="py-op">,</tt> <tt class="py-param">on_connect</tt><tt class="py-op">,</tt> <tt class="py-param">on_connect_failure</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.connect-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt id="link-23" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-23', 'NonBlockingTransport', 'link-1');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.connect()=nbxmpp.bosh.NonBlockingBOSH-class.html#connect,Method nbxmpp.client_nb.NonBlockingClient.connect()=nbxmpp.client_nb.NonBlockingClient-class.html#connect,Method nbxmpp.transports_nb.NonBlockingTCP.connect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#connect,Method nbxmpp.transports_nb.NonBlockingTransport.connect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#connect"><a title="nbxmpp.bosh.NonBlockingBOSH.connect
nbxmpp.client_nb.NonBlockingClient.connect
nbxmpp.transports_nb.NonBlockingTCP.connect
nbxmpp.transports_nb.NonBlockingTransport.connect" class="py-name" href="#" onclick="return doclink('link-24', 'connect', 'link-24');">connect</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">conn_5tuple</tt><tt class="py-op">,</tt> <tt class="py-name">on_connect</tt><tt class="py-op">,</tt> <tt class="py-name">on_connect_failure</tt><tt class="py-op">)</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">global</tt> <tt id="link-25" class="py-name"><a title="nbxmpp.bosh.FAKE_DESCRIPTOR" class="py-name" href="#" onclick="return doclink('link-25', 'FAKE_DESCRIPTOR', 'link-17');">FAKE_DESCRIPTOR</a></tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt id="link-26" class="py-name"><a title="nbxmpp.bosh.FAKE_DESCRIPTOR" class="py-name" href="#" onclick="return doclink('link-26', 'FAKE_DESCRIPTOR', 'link-17');">FAKE_DESCRIPTOR</a></tt> <tt class="py-op">=</tt> <tt id="link-27" class="py-name"><a title="nbxmpp.bosh.FAKE_DESCRIPTOR" class="py-name" href="#" onclick="return doclink('link-27', 'FAKE_DESCRIPTOR', 'link-17');">FAKE_DESCRIPTOR</a></tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="nbxmpp.bosh.FAKE_DESCRIPTOR" class="py-name" href="#" onclick="return doclink('link-28', 'FAKE_DESCRIPTOR', 'link-17');">FAKE_DESCRIPTOR</a></tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prio_bosh_stanzas</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key_stack</tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name" targets="Class nbxmpp.bosh.KeyStack=nbxmpp.bosh.KeyStack-class.html"><a title="nbxmpp.bosh.KeyStack" class="py-name" href="#" onclick="return doclink('link-29', 'KeyStack', 'link-29');">KeyStack</a></tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="nbxmpp.bosh.KEY_COUNT" class="py-name" href="#" onclick="return doclink('link-30', 'KEY_COUNT', 'link-16');">KEY_COUNT</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack_checker</tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name" targets="Class nbxmpp.bosh.AckChecker=nbxmpp.bosh.AckChecker-class.html"><a title="nbxmpp.bosh.AckChecker" class="py-name" href="#" onclick="return doclink('link-31', 'AckChecker', 'link-31');">AckChecker</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">after_init</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.get_new_http_socket()=nbxmpp.bosh.NonBlockingBOSH-class.html#get_new_http_socket"><a title="nbxmpp.bosh.NonBlockingBOSH.get_new_http_socket" class="py-name" href="#" onclick="return doclink('link-32', 'get_new_http_socket', 'link-32');">get_new_http_socket</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTransport._tcp_connecting_started()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_tcp_connecting_started"><a title="nbxmpp.transports_nb.NonBlockingTransport._tcp_connecting_started" class="py-name" href="#" onclick="return doclink('link-33', '_tcp_connecting_started', 'link-33');">_tcp_connecting_started</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.connect
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">global</tt> <tt id="link-25" class="py-name"><a title="nbxmpp.bosh.FAKE_DESCRIPTOR" class="py-name" href="#" onclick="return doclink('link-25', 'FAKE_DESCRIPTOR', 'link-17');">FAKE_DESCRIPTOR</a></tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt id="link-26" class="py-name"><a title="nbxmpp.bosh.FAKE_DESCRIPTOR" class="py-name" href="#" onclick="return doclink('link-26', 'FAKE_DESCRIPTOR', 'link-17');">FAKE_DESCRIPTOR</a></tt> <tt class="py-op">=</tt> <tt id="link-27" class="py-name"><a title="nbxmpp.bosh.FAKE_DESCRIPTOR" class="py-name" href="#" onclick="return doclink('link-27', 'FAKE_DESCRIPTOR', 'link-17');">FAKE_DESCRIPTOR</a></tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="nbxmpp.bosh.FAKE_DESCRIPTOR" class="py-name" href="#" onclick="return doclink('link-28', 'FAKE_DESCRIPTOR', 'link-17');">FAKE_DESCRIPTOR</a></tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prio_bosh_stanzas</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key_stack</tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name" targets="Class nbxmpp.bosh.KeyStack=nbxmpp.bosh.KeyStack-class.html"><a title="nbxmpp.bosh.KeyStack" class="py-name" href="#" onclick="return doclink('link-29', 'KeyStack', 'link-29');">KeyStack</a></tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="nbxmpp.bosh.KEY_COUNT" class="py-name" href="#" onclick="return doclink('link-30', 'KEY_COUNT', 'link-16');">KEY_COUNT</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack_checker</tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name" targets="Class nbxmpp.bosh.AckChecker=nbxmpp.bosh.AckChecker-class.html"><a title="nbxmpp.bosh.AckChecker" class="py-name" href="#" onclick="return doclink('link-31', 'AckChecker', 'link-31');">AckChecker</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">after_init</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.get_new_http_socket()=nbxmpp.bosh.NonBlockingBOSH-class.html#get_new_http_socket"><a title="nbxmpp.bosh.NonBlockingBOSH.get_new_http_socket" class="py-name" href="#" onclick="return doclink('link-32', 'get_new_http_socket', 'link-32');">get_new_http_socket</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTransport._tcp_connecting_started()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_tcp_connecting_started"><a title="nbxmpp.transports_nb.NonBlockingTransport._tcp_connecting_started" class="py-name" href="#" onclick="return doclink('link-33', '_tcp_connecting_started', 'link-33');">_tcp_connecting_started</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.connect
nbxmpp.client_nb.NonBlockingClient.connect
nbxmpp.transports_nb.NonBlockingTCP.connect
nbxmpp.transports_nb.NonBlockingTransport.connect" class="py-name" href="#" onclick="return doclink('link-34', 'connect', 'link-24');">connect</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">conn_5tuple</tt> <tt class="py-op">=</tt> <tt class="py-name">conn_5tuple</tt><tt class="py-op">,</tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-name">on_connect</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH._on_connect()=nbxmpp.bosh.NonBlockingBOSH-class.html#_on_connect,Method nbxmpp.client_nb.NonBlockingClient._on_connect()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_connect,Method nbxmpp.transports_nb.NonBlockingTCP._on_connect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_on_connect,Method nbxmpp.transports_nb.NonBlockingTransport._on_connect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_on_connect"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">conn_5tuple</tt> <tt class="py-op">=</tt> <tt class="py-name">conn_5tuple</tt><tt class="py-op">,</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">on_connect</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH._on_connect()=nbxmpp.bosh.NonBlockingBOSH-class.html#_on_connect,Method nbxmpp.client_nb.NonBlockingClient._on_connect()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_connect,Method nbxmpp.transports_nb.NonBlockingTCP._on_connect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_on_connect,Method nbxmpp.transports_nb.NonBlockingTransport._on_connect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_on_connect"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
nbxmpp.client_nb.NonBlockingClient._on_connect
nbxmpp.transports_nb.NonBlockingTCP._on_connect
nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-35', '_on_connect', 'link-35');">_on_connect</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">on_connect_failure</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_on_connect_failure"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-36', '_on_connect_failure', 'link-36');">_on_connect_failure</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH._on_connect"></a><div id="NonBlockingBOSH._on_connect-def"><a name="L114"></a><tt class="py-lineno">114</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH._on_connect-toggle" onclick="return toggle('NonBlockingBOSH._on_connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#_on_connect">_on_connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH._on_connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH._on_connect-expanded"><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">peerhost</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">peerhost</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt id="link-37" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-37', 'NonBlockingTransport', 'link-1');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">on_connect_failure</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_on_connect_failure"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-36', '_on_connect_failure', 'link-36');">_on_connect_failure</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH._on_connect"></a><div id="NonBlockingBOSH._on_connect-def"><a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH._on_connect-toggle" onclick="return toggle('NonBlockingBOSH._on_connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#_on_connect">_on_connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH._on_connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH._on_connect-expanded"><a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">peerhost</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">peerhost</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt id="link-37" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-37', 'NonBlockingTransport', 'link-1');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
nbxmpp.client_nb.NonBlockingClient._on_connect
nbxmpp.transports_nb.NonBlockingTCP._on_connect
nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-38', '_on_connect', 'link-35');">_on_connect</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.set_timeout"></a><div id="NonBlockingBOSH.set_timeout-def"><a name="L121"></a><tt class="py-lineno">121</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.set_timeout-toggle" onclick="return toggle('NonBlockingBOSH.set_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#set_timeout">set_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.set_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.set_timeout-expanded"><a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTransport.get_state()=nbxmpp.transports_nb.NonBlockingTransport-class.html#get_state"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-39', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt id="link-40" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-40', 'DISCONNECTED', 'link-5');">DISCONNECTED</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">!=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt id="link-41" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-41', 'NonBlockingTransport', 'link-1');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.set_timeout()=nbxmpp.bosh.NonBlockingBOSH-class.html#set_timeout,Method nbxmpp.transports_nb.NonBlockingTCP.set_timeout()=nbxmpp.transports_nb.NonBlockingTCP-class.html#set_timeout,Method nbxmpp.transports_nb.NonBlockingTransport.set_timeout()=nbxmpp.transports_nb.NonBlockingTransport-class.html#set_timeout"><a title="nbxmpp.bosh.NonBlockingBOSH.set_timeout
+</div><a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.set_timeout"></a><div id="NonBlockingBOSH.set_timeout-def"><a name="L127"></a><tt class="py-lineno">127</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.set_timeout-toggle" onclick="return toggle('NonBlockingBOSH.set_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#set_timeout">set_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.set_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.set_timeout-expanded"><a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTransport.get_state()=nbxmpp.transports_nb.NonBlockingTransport-class.html#get_state"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-39', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt id="link-40" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-40', 'DISCONNECTED', 'link-5');">DISCONNECTED</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">!=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt id="link-41" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-41', 'NonBlockingTransport', 'link-1');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.set_timeout()=nbxmpp.bosh.NonBlockingBOSH-class.html#set_timeout,Method nbxmpp.transports_nb.NonBlockingTCP.set_timeout()=nbxmpp.transports_nb.NonBlockingTCP-class.html#set_timeout,Method nbxmpp.transports_nb.NonBlockingTransport.set_timeout()=nbxmpp.transports_nb.NonBlockingTransport-class.html#set_timeout"><a title="nbxmpp.bosh.NonBlockingBOSH.set_timeout
nbxmpp.transports_nb.NonBlockingTCP.set_timeout
nbxmpp.transports_nb.NonBlockingTransport.set_timeout" class="py-name" href="#" onclick="return doclink('link-42', 'set_timeout', 'link-42');">set_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt id="link-43" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt id="link-43" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -264,15 +270,15 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-43', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'set_timeout: TIMEOUT NOT SET: state is %s, fd is %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-44', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.on_http_request_possible"></a><div id="NonBlockingBOSH.on_http_request_possible-def"><a name="L127"></a><tt class="py-lineno">127</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.on_http_request_possible-toggle" onclick="return toggle('NonBlockingBOSH.on_http_request_possible');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_http_request_possible">on_http_request_possible</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.on_http_request_possible-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.on_http_request_possible-expanded"><a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-docstring"> Called when HTTP request it's possible to send a HTTP request. It can be when</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> socket is connected or when HTTP response arrived</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"> There should be always one pending request to BOSH CM.</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt id="link-45" class="py-name"><a title="nbxmpp.auth_nb.log
+</div><a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.on_http_request_possible"></a><div id="NonBlockingBOSH.on_http_request_possible-def"><a name="L133"></a><tt class="py-lineno">133</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.on_http_request_possible-toggle" onclick="return toggle('NonBlockingBOSH.on_http_request_possible');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_http_request_possible">on_http_request_possible</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.on_http_request_possible-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.on_http_request_possible-expanded"><a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"><tt class="py-docstring"> Called when HTTP request it's possible to send a HTTP request. It can be when</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"><tt class="py-docstring"> socket is connected or when HTTP response arrived</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> There should be always one pending request to BOSH CM.</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt id="link-45" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -284,84 +290,84 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-45', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'on_http_req possible, state:\n%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.get_current_state()=nbxmpp.bosh.NonBlockingBOSH-class.html#get_current_state"><a title="nbxmpp.bosh.NonBlockingBOSH.get_current_state" class="py-name" href="#" onclick="return doclink('link-46', 'get_current_state', 'link-46');">get_current_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-47', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt id="link-48" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-48', 'DISCONNECTED', 'link-5');">DISCONNECTED</a></tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-comment">#Hack for making the non-secure warning dialog work</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">got_features</tt><tt class="py-op">:</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">,</tt> <tt class="py-string">'NonBlockingNonSASL'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">,</tt> <tt class="py-string">'SASL'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.send_BOSH()=nbxmpp.bosh.NonBlockingBOSH-class.html#send_BOSH"><a title="nbxmpp.bosh.NonBlockingBOSH.send_BOSH" class="py-name" href="#" onclick="return doclink('link-49', 'send_BOSH', 'link-49');">send_BOSH</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-comment"># If we already got features and no auth module was plugged yet, we are</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-comment"># probably waiting for confirmation of the "not-secure-connection" dialog.</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-comment"># We don't send HTTP request in that case.</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-comment"># see http://lists.jabber.ru/pipermail/ejabberd/2008-August/004027.html</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send_BOSH" class="py-name" href="#" onclick="return doclink('link-50', 'send_BOSH', 'link-49');">send_BOSH</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.get_socket_in"></a><div id="NonBlockingBOSH.get_socket_in-def"><a name="L152"></a><tt class="py-lineno">152</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.get_socket_in-toggle" onclick="return toggle('NonBlockingBOSH.get_socket_in');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#get_socket_in">get_socket_in</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">state</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.get_socket_in-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.get_socket_in-expanded"><a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> Get sockets in desired state</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">:</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-51', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt class="py-name">state</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.get_free_socket"></a><div id="NonBlockingBOSH.get_free_socket-def"><a name="L161"></a><tt class="py-lineno">161</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.get_free_socket-toggle" onclick="return toggle('NonBlockingBOSH.get_free_socket');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#get_free_socket">get_free_socket</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.get_free_socket-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.get_free_socket-expanded"><a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> Select and returns socket eligible for sending a data to</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_pipelining</tt><tt class="py-op">:</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.get_socket_in()=nbxmpp.bosh.NonBlockingBOSH-class.html#get_socket_in"><a title="nbxmpp.bosh.NonBlockingBOSH.get_socket_in" class="py-name" href="#" onclick="return doclink('link-52', 'get_socket_in', 'link-52');">get_socket_in</a></tt><tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="nbxmpp.transports_nb.CONNECTED" class="py-name" href="#" onclick="return doclink('link-53', 'CONNECTED', 'link-3');">CONNECTED</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-name">last_recv_time</tt><tt class="py-op">,</tt> <tt class="py-name">tmpsock</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">:</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-comment"># we're interested only in CONNECTED socket with no requests pending</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-54', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt id="link-55" class="py-name"><a title="nbxmpp.transports_nb.CONNECTED" class="py-name" href="#" onclick="return doclink('link-55', 'CONNECTED', 'link-3');">CONNECTED</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">pending_requests</tt><tt class="py-op">==</tt><tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-comment"># if there's more of them, we want the one with the least recent data receive</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-comment"># (lowest last_recv_time)</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">last_recv_time</tt><tt class="py-op">==</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">last_recv_time</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">last_recv_time</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">last_recv_time</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">last_recv_time</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-name">tmpsock</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tmpsock</tt><tt class="py-op">:</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tmpsock</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.send_BOSH"></a><div id="NonBlockingBOSH.send_BOSH-def"><a name="L183"></a><tt class="py-lineno">183</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.send_BOSH-toggle" onclick="return toggle('NonBlockingBOSH.send_BOSH');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#send_BOSH">send_BOSH</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.send_BOSH-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.send_BOSH-expanded"><a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"><tt class="py-docstring"> Tries to send a stanza in payload by appeding it to a buffer and plugging a</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"><tt class="py-docstring"> free socket for writing.</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-name">total_pending_reqs</tt> <tt class="py-op">=</tt> <tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">pending_requests</tt> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-comment"># when called after HTTP response (Payload=None) and when there are already</tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-comment"># some pending requests and no data to send, or when the socket is</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-comment"># disconnected, we do nothing</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">payload</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> \ </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">total_pending_reqs</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt> <tt class="py-keyword">and</tt> \ </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt> <tt class="py-op">==</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-keyword">and</tt> \ </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prio_bosh_stanzas</tt> <tt class="py-op">==</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> \ </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-56', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt id="link-57" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-57', 'DISCONNECTED', 'link-5');">DISCONNECTED</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-comment"># Add xmlns to stanza to help ejabberd server</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">payload</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">,</tt> <tt id="link-58" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-58', 'Protocol', 'link-11');">Protocol</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Method nbxmpp.simplexml.Node.getNamespace()=nbxmpp.simplexml.Node-class.html#getNamespace"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-59', 'getNamespace', 'link-59');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method nbxmpp.simplexml.Node.setNamespace()=nbxmpp.simplexml.Node-class.html#setNamespace"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-60', 'setNamespace', 'link-60');">setNamespace</a></tt><tt class="py-op">(</tt><tt id="link-61" class="py-name"><a title="nbxmpp.protocol.NS_CLIENT" class="py-name" href="#" onclick="return doclink('link-61', 'NS_CLIENT', 'link-12');">NS_CLIENT</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-comment"># now the payload is put to buffer and will be sent at some point</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.append_stanza()=nbxmpp.bosh.NonBlockingBOSH-class.html#append_stanza"><a title="nbxmpp.bosh.NonBlockingBOSH.append_stanza" class="py-name" href="#" onclick="return doclink('link-62', 'append_stanza', 'link-62');">append_stanza</a></tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-comment"># if we're about to make more requests than allowed, we don't send - stanzas will be</tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-comment"># sent after HTTP response from CM, exception is when we're disconnecting - then we</tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-comment"># send anyway</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">total_pending_reqs</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_requests</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-63', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">!=</tt><tt id="link-64" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTING" class="py-name" href="#" onclick="return doclink('link-64', 'DISCONNECTING', 'link-6');">DISCONNECTING</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt id="link-65" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-47', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt id="link-48" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-48', 'DISCONNECTED', 'link-5');">DISCONNECTED</a></tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-comment">#Hack for making the non-secure warning dialog work</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">got_features</tt><tt class="py-op">:</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">,</tt> <tt class="py-string">'NonBlockingNonSASL'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">,</tt> <tt class="py-string">'SASL'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.send_BOSH()=nbxmpp.bosh.NonBlockingBOSH-class.html#send_BOSH"><a title="nbxmpp.bosh.NonBlockingBOSH.send_BOSH" class="py-name" href="#" onclick="return doclink('link-49', 'send_BOSH', 'link-49');">send_BOSH</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-comment"># If we already got features and no auth module was plugged yet, we are</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-comment"># probably waiting for confirmation of the "not-secure-connection" dialog.</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-comment"># We don't send HTTP request in that case.</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-comment"># see http://lists.jabber.ru/pipermail/ejabberd/2008-August/004027.html</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send_BOSH" class="py-name" href="#" onclick="return doclink('link-50', 'send_BOSH', 'link-49');">send_BOSH</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.get_socket_in"></a><div id="NonBlockingBOSH.get_socket_in-def"><a name="L158"></a><tt class="py-lineno">158</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.get_socket_in-toggle" onclick="return toggle('NonBlockingBOSH.get_socket_in');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#get_socket_in">get_socket_in</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">state</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.get_socket_in-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.get_socket_in-expanded"><a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> Get sockets in desired state</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">:</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-51', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt class="py-name">state</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.get_free_socket"></a><div id="NonBlockingBOSH.get_free_socket-def"><a name="L167"></a><tt class="py-lineno">167</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.get_free_socket-toggle" onclick="return toggle('NonBlockingBOSH.get_free_socket');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#get_free_socket">get_free_socket</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.get_free_socket-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.get_free_socket-expanded"><a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> Select and returns socket eligible for sending a data to</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_pipelining</tt><tt class="py-op">:</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.get_socket_in()=nbxmpp.bosh.NonBlockingBOSH-class.html#get_socket_in"><a title="nbxmpp.bosh.NonBlockingBOSH.get_socket_in" class="py-name" href="#" onclick="return doclink('link-52', 'get_socket_in', 'link-52');">get_socket_in</a></tt><tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="nbxmpp.transports_nb.CONNECTED" class="py-name" href="#" onclick="return doclink('link-53', 'CONNECTED', 'link-3');">CONNECTED</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">last_recv_time</tt><tt class="py-op">,</tt> <tt class="py-name">tmpsock</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">:</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-comment"># we're interested only in CONNECTED socket with no requests pending</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-54', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt id="link-55" class="py-name"><a title="nbxmpp.transports_nb.CONNECTED" class="py-name" href="#" onclick="return doclink('link-55', 'CONNECTED', 'link-3');">CONNECTED</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">pending_requests</tt><tt class="py-op">==</tt><tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-comment"># if there's more of them, we want the one with the least recent data receive</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-comment"># (lowest last_recv_time)</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">last_recv_time</tt><tt class="py-op">==</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">last_recv_time</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">last_recv_time</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">last_recv_time</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">last_recv_time</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-name">tmpsock</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tmpsock</tt><tt class="py-op">:</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tmpsock</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.send_BOSH"></a><div id="NonBlockingBOSH.send_BOSH-def"><a name="L189"></a><tt class="py-lineno">189</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.send_BOSH-toggle" onclick="return toggle('NonBlockingBOSH.send_BOSH');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#send_BOSH">send_BOSH</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.send_BOSH-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.send_BOSH-expanded"><a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"><tt class="py-docstring"> Tries to send a stanza in payload by appeding it to a buffer and plugging a</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"><tt class="py-docstring"> free socket for writing.</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">total_pending_reqs</tt> <tt class="py-op">=</tt> <tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">pending_requests</tt> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-comment"># when called after HTTP response (Payload=None) and when there are already</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-comment"># some pending requests and no data to send, or when the socket is</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-comment"># disconnected, we do nothing</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">payload</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> \ </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-name">total_pending_reqs</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt> <tt class="py-keyword">and</tt> \ </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt> <tt class="py-op">==</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-keyword">and</tt> \ </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prio_bosh_stanzas</tt> <tt class="py-op">==</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> \ </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-56', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt id="link-57" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-57', 'DISCONNECTED', 'link-5');">DISCONNECTED</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-comment"># Add xmlns to stanza to help ejabberd server</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">payload</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">,</tt> <tt id="link-58" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-58', 'Protocol', 'link-11');">Protocol</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Method nbxmpp.simplexml.Node.getNamespace()=nbxmpp.simplexml.Node-class.html#getNamespace"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-59', 'getNamespace', 'link-59');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method nbxmpp.simplexml.Node.setNamespace()=nbxmpp.simplexml.Node-class.html#setNamespace"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-60', 'setNamespace', 'link-60');">setNamespace</a></tt><tt class="py-op">(</tt><tt id="link-61" class="py-name"><a title="nbxmpp.protocol.NS_CLIENT" class="py-name" href="#" onclick="return doclink('link-61', 'NS_CLIENT', 'link-12');">NS_CLIENT</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-comment"># now the payload is put to buffer and will be sent at some point</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.append_stanza()=nbxmpp.bosh.NonBlockingBOSH-class.html#append_stanza"><a title="nbxmpp.bosh.NonBlockingBOSH.append_stanza" class="py-name" href="#" onclick="return doclink('link-62', 'append_stanza', 'link-62');">append_stanza</a></tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-comment"># if we're about to make more requests than allowed, we don't send - stanzas will be</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-comment"># sent after HTTP response from CM, exception is when we're disconnecting - then we</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-comment"># send anyway</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">total_pending_reqs</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_requests</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-63', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">!=</tt><tt id="link-64" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTING" class="py-name" href="#" onclick="return doclink('link-64', 'DISCONNECTING', 'link-6');">DISCONNECTING</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt id="link-65" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -373,40 +379,40 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-65', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'attemp to make more requests than allowed by Connection Manager:\n%s'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.get_current_state" class="py-name" href="#" onclick="return doclink('link-66', 'get_current_state', 'link-46');">get_current_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> </tt>
-<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-comment"># when there's free CONNECTED socket, we plug it for write and the data will</tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-comment"># be sent when write is possible</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.get_free_socket()=nbxmpp.bosh.NonBlockingBOSH-class.html#get_free_socket"><a title="nbxmpp.bosh.NonBlockingBOSH.get_free_socket" class="py-name" href="#" onclick="return doclink('link-67', 'get_free_socket', 'link-67');">get_free_socket</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.plug_socket()=nbxmpp.bosh.NonBlockingBOSH-class.html#plug_socket"><a title="nbxmpp.bosh.NonBlockingBOSH.plug_socket" class="py-name" href="#" onclick="return doclink('link-68', 'plug_socket', 'link-68');">plug_socket</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.get_current_state" class="py-name" href="#" onclick="return doclink('link-66', 'get_current_state', 'link-46');">get_current_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-comment"># if there is a connecting socket, we just wait for when it connects,</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-comment"># payload will be sent in a sec when the socket connects</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.get_socket_in" class="py-name" href="#" onclick="return doclink('link-69', 'get_socket_in', 'link-52');">get_socket_in</a></tt><tt class="py-op">(</tt><tt id="link-70" class="py-name"><a title="nbxmpp.transports_nb.CONNECTING" class="py-name" href="#" onclick="return doclink('link-70', 'CONNECTING', 'link-4');">CONNECTING</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-comment"># being here means there are either DISCONNECTED sockets or all sockets are</tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-comment"># CONNECTED with too many pending requests</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.get_socket_in" class="py-name" href="#" onclick="return doclink('link-71', 'get_socket_in', 'link-52');">get_socket_in</a></tt><tt class="py-op">(</tt><tt id="link-72" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-72', 'DISCONNECTED', 'link-5');">DISCONNECTED</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-comment"># if we have DISCONNECTED socket, lets connect it and plug for send</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.connect_and_flush()=nbxmpp.bosh.NonBlockingBOSH-class.html#connect_and_flush"><a title="nbxmpp.bosh.NonBlockingBOSH.connect_and_flush" class="py-name" href="#" onclick="return doclink('link-73', 'connect_and_flush', 'link-73');">connect_and_flush</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-comment"># otherwise create and connect a new one</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-name">ss</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.get_new_http_socket" class="py-name" href="#" onclick="return doclink('link-74', 'get_new_http_socket', 'link-32');">get_new_http_socket</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">ss</tt><tt class="py-op">)</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.connect_and_flush" class="py-name" href="#" onclick="return doclink('link-75', 'connect_and_flush', 'link-73');">connect_and_flush</a></tt><tt class="py-op">(</tt><tt class="py-name">ss</tt><tt class="py-op">)</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-</div><a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.plug_socket"></a><div id="NonBlockingBOSH.plug_socket-def"><a name="L240"></a><tt class="py-lineno">240</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.plug_socket-toggle" onclick="return toggle('NonBlockingBOSH.plug_socket');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#plug_socket">plug_socket</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.plug_socket-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.plug_socket-expanded"><a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.get_free_socket" class="py-name" href="#" onclick="return doclink('link-76', 'get_free_socket', 'link-67');">get_free_socket</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP._plug_idle()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_plug_idle"><a title="nbxmpp.transports_nb.NonBlockingTCP._plug_idle" class="py-name" href="#" onclick="return doclink('link-77', '_plug_idle', 'link-77');">_plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">writable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt id="link-78" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-comment"># when there's free CONNECTED socket, we plug it for write and the data will</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-comment"># be sent when write is possible</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.get_free_socket()=nbxmpp.bosh.NonBlockingBOSH-class.html#get_free_socket"><a title="nbxmpp.bosh.NonBlockingBOSH.get_free_socket" class="py-name" href="#" onclick="return doclink('link-67', 'get_free_socket', 'link-67');">get_free_socket</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.plug_socket()=nbxmpp.bosh.NonBlockingBOSH-class.html#plug_socket"><a title="nbxmpp.bosh.NonBlockingBOSH.plug_socket" class="py-name" href="#" onclick="return doclink('link-68', 'plug_socket', 'link-68');">plug_socket</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-comment"># if there is a connecting socket, we just wait for when it connects,</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-comment"># payload will be sent in a sec when the socket connects</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.get_socket_in" class="py-name" href="#" onclick="return doclink('link-69', 'get_socket_in', 'link-52');">get_socket_in</a></tt><tt class="py-op">(</tt><tt id="link-70" class="py-name"><a title="nbxmpp.transports_nb.CONNECTING" class="py-name" href="#" onclick="return doclink('link-70', 'CONNECTING', 'link-4');">CONNECTING</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-comment"># being here means there are either DISCONNECTED sockets or all sockets are</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-comment"># CONNECTED with too many pending requests</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.get_socket_in" class="py-name" href="#" onclick="return doclink('link-71', 'get_socket_in', 'link-52');">get_socket_in</a></tt><tt class="py-op">(</tt><tt id="link-72" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-72', 'DISCONNECTED', 'link-5');">DISCONNECTED</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-comment"># if we have DISCONNECTED socket, lets connect it and plug for send</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.connect_and_flush()=nbxmpp.bosh.NonBlockingBOSH-class.html#connect_and_flush"><a title="nbxmpp.bosh.NonBlockingBOSH.connect_and_flush" class="py-name" href="#" onclick="return doclink('link-73', 'connect_and_flush', 'link-73');">connect_and_flush</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-comment"># otherwise create and connect a new one</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">ss</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.get_new_http_socket" class="py-name" href="#" onclick="return doclink('link-74', 'get_new_http_socket', 'link-32');">get_new_http_socket</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">ss</tt><tt class="py-op">)</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.connect_and_flush" class="py-name" href="#" onclick="return doclink('link-75', 'connect_and_flush', 'link-73');">connect_and_flush</a></tt><tt class="py-op">(</tt><tt class="py-name">ss</tt><tt class="py-op">)</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+</div><a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.plug_socket"></a><div id="NonBlockingBOSH.plug_socket-def"><a name="L246"></a><tt class="py-lineno">246</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.plug_socket-toggle" onclick="return toggle('NonBlockingBOSH.plug_socket');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#plug_socket">plug_socket</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.plug_socket-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.plug_socket-expanded"><a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.get_free_socket" class="py-name" href="#" onclick="return doclink('link-76', 'get_free_socket', 'link-67');">get_free_socket</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">:</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP._plug_idle()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_plug_idle"><a title="nbxmpp.transports_nb.NonBlockingTCP._plug_idle" class="py-name" href="#" onclick="return doclink('link-77', '_plug_idle', 'link-77');">_plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">writable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt id="link-78" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -418,37 +424,37 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-78', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'=====!!!!!!!!====&gt; Couldn\'t get free socket in plug_socket())'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.build_stanza"></a><div id="NonBlockingBOSH.build_stanza-def"><a name="L248"></a><tt class="py-lineno">248</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.build_stanza-toggle" onclick="return toggle('NonBlockingBOSH.build_stanza');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#build_stanza">build_stanza</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.build_stanza-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.build_stanza-expanded"><a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"><tt class="py-docstring"> Build a BOSH body tag from data in buffers and adds key, rid and ack</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"><tt class="py-docstring"> attributes to it</tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"> This method is called from _do_send() of underlying transport. This is to</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"> ensure rid and keys will be processed in correct order. If I generate</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"><tt class="py-docstring"> them before plugging a socket for write (and did it for two sockets/HTTP</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"><tt class="py-docstring"> connections) in parallel, they might be sent in wrong order, which</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"><tt class="py-docstring"> results in violating the BOSH session and server-side disconnect.</tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prio_bosh_stanzas</tt><tt class="py-op">:</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">add_payload</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prio_bosh_stanzas</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">add_payload</tt><tt class="py-op">:</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Method nbxmpp.simplexml.Node.setPayload()=nbxmpp.simplexml.Node-class.html#setPayload"><a title="nbxmpp.simplexml.Node.setPayload" class="py-name" href="#" onclick="return doclink('link-79', 'setPayload', 'link-79');">setPayload</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt><tt class="py-op">)</tt> </tt>
-<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.boshify_stanzas()=nbxmpp.bosh.NonBlockingBOSH-class.html#boshify_stanzas"><a title="nbxmpp.bosh.NonBlockingBOSH.boshify_stanzas" class="py-name" href="#" onclick="return doclink('link-80', 'boshify_stanzas', 'link-80');">boshify_stanzas</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt><tt class="py-op">)</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack_checker</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name" targets="Method nbxmpp.bosh.AckChecker.backup_stanza()=nbxmpp.bosh.AckChecker-class.html#backup_stanza"><a title="nbxmpp.bosh.AckChecker.backup_stanza" class="py-name" href="#" onclick="return doclink('link-81', 'backup_stanza', 'link-81');">backup_stanza</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">)</tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">newkey</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key_stack</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name" targets="Method nbxmpp.bosh.KeyStack.get()=nbxmpp.bosh.KeyStack-class.html#get"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-82', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt><tt class="py-op">:</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name" targets="Method nbxmpp.simplexml.Node.setAttr()=nbxmpp.simplexml.Node-class.html#setAttr"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-83', 'setAttr', 'link-83');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'key'</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">newkey</tt><tt class="py-op">:</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-84', 'setAttr', 'link-83');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'newkey'</tt><tt class="py-op">,</tt> <tt class="py-name">newkey</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.build_stanza"></a><div id="NonBlockingBOSH.build_stanza-def"><a name="L254"></a><tt class="py-lineno">254</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.build_stanza-toggle" onclick="return toggle('NonBlockingBOSH.build_stanza');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#build_stanza">build_stanza</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.build_stanza-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.build_stanza-expanded"><a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"><tt class="py-docstring"> Build a BOSH body tag from data in buffers and adds key, rid and ack</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"><tt class="py-docstring"> attributes to it</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"><tt class="py-docstring"> This method is called from _do_send() of underlying transport. This is to</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"><tt class="py-docstring"> ensure rid and keys will be processed in correct order. If I generate</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"><tt class="py-docstring"> them before plugging a socket for write (and did it for two sockets/HTTP</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"><tt class="py-docstring"> connections) in parallel, they might be sent in wrong order, which</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"><tt class="py-docstring"> results in violating the BOSH session and server-side disconnect.</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prio_bosh_stanzas</tt><tt class="py-op">:</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">add_payload</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prio_bosh_stanzas</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">add_payload</tt><tt class="py-op">:</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Method nbxmpp.simplexml.Node.setPayload()=nbxmpp.simplexml.Node-class.html#setPayload"><a title="nbxmpp.simplexml.Node.setPayload" class="py-name" href="#" onclick="return doclink('link-79', 'setPayload', 'link-79');">setPayload</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt><tt class="py-op">)</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.boshify_stanzas()=nbxmpp.bosh.NonBlockingBOSH-class.html#boshify_stanzas"><a title="nbxmpp.bosh.NonBlockingBOSH.boshify_stanzas" class="py-name" href="#" onclick="return doclink('link-80', 'boshify_stanzas', 'link-80');">boshify_stanzas</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt><tt class="py-op">)</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack_checker</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name" targets="Method nbxmpp.bosh.AckChecker.backup_stanza()=nbxmpp.bosh.AckChecker-class.html#backup_stanza"><a title="nbxmpp.bosh.AckChecker.backup_stanza" class="py-name" href="#" onclick="return doclink('link-81', 'backup_stanza', 'link-81');">backup_stanza</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">)</tt> </tt>
<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt id="link-85" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">newkey</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key_stack</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name" targets="Method nbxmpp.bosh.KeyStack.get()=nbxmpp.bosh.KeyStack-class.html#get"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-82', 'get', 'link-82');">get</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt><tt class="py-op">:</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name" targets="Method nbxmpp.simplexml.Node.setAttr()=nbxmpp.simplexml.Node-class.html#setAttr"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-83', 'setAttr', 'link-83');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'key'</tt><tt class="py-op">,</tt> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">newkey</tt><tt class="py-op">:</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-84', 'setAttr', 'link-83');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'newkey'</tt><tt class="py-op">,</tt> <tt class="py-name">newkey</tt><tt class="py-op">)</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt id="link-85" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -460,12 +466,12 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-85', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'sending msg with rid=%s to sock %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method nbxmpp.simplexml.Node.getAttr()=nbxmpp.simplexml.Node-class.html#getAttr"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-86', 'getAttr', 'link-86');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'rid'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">socket</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.renew_bosh_wait_timeout()=nbxmpp.bosh.NonBlockingBOSH-class.html#renew_bosh_wait_timeout"><a title="nbxmpp.bosh.NonBlockingBOSH.renew_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-87', 'renew_bosh_wait_timeout', 'link-87');">renew_bosh_wait_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_wait</tt> <tt class="py-op">+</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">stanza</tt> </tt>
-</div><a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.on_bosh_wait_timeout"></a><div id="NonBlockingBOSH.on_bosh_wait_timeout-def"><a name="L282"></a><tt class="py-lineno">282</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.on_bosh_wait_timeout-toggle" onclick="return toggle('NonBlockingBOSH.on_bosh_wait_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_bosh_wait_timeout">on_bosh_wait_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.on_bosh_wait_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.on_bosh_wait_timeout-expanded"><a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt id="link-88" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.renew_bosh_wait_timeout()=nbxmpp.bosh.NonBlockingBOSH-class.html#renew_bosh_wait_timeout"><a title="nbxmpp.bosh.NonBlockingBOSH.renew_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-87', 'renew_bosh_wait_timeout', 'link-87');">renew_bosh_wait_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_wait</tt> <tt class="py-op">+</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">stanza</tt> </tt>
+</div><a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.on_bosh_wait_timeout"></a><div id="NonBlockingBOSH.on_bosh_wait_timeout-def"><a name="L288"></a><tt class="py-lineno">288</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.on_bosh_wait_timeout-toggle" onclick="return toggle('NonBlockingBOSH.on_bosh_wait_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_bosh_wait_timeout">on_bosh_wait_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.on_bosh_wait_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.on_bosh_wait_timeout-expanded"><a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt id="link-88" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -477,31 +483,31 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-88', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Connection Manager didn\'t respond within %s + 3 seconds --&gt; forcing disconnect'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_wait</tt><tt class="py-op">)</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.disconnect()=nbxmpp.bosh.NonBlockingBOSH-class.html#disconnect,Method nbxmpp.client_nb.NonBlockingClient.disconnect()=nbxmpp.client_nb.NonBlockingClient-class.html#disconnect,Method nbxmpp.transports_nb.NonBlockingTCP.disconnect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#disconnect,Method nbxmpp.transports_nb.NonBlockingTransport.disconnect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#disconnect"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.disconnect()=nbxmpp.bosh.NonBlockingBOSH-class.html#disconnect,Method nbxmpp.client_nb.NonBlockingClient.disconnect()=nbxmpp.client_nb.NonBlockingClient-class.html#disconnect,Method nbxmpp.transports_nb.NonBlockingTCP.disconnect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#disconnect,Method nbxmpp.transports_nb.NonBlockingTransport.disconnect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#disconnect"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-89', 'disconnect', 'link-89');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.renew_bosh_wait_timeout"></a><div id="NonBlockingBOSH.renew_bosh_wait_timeout-def"><a name="L287"></a><tt class="py-lineno">287</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.renew_bosh_wait_timeout-toggle" onclick="return toggle('NonBlockingBOSH.renew_bosh_wait_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#renew_bosh_wait_timeout">renew_bosh_wait_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.renew_bosh_wait_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.renew_bosh_wait_timeout-expanded"><a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">wait_cb_time</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.remove_bosh_wait_timeout()=nbxmpp.bosh.NonBlockingBOSH-class.html#remove_bosh_wait_timeout"><a title="nbxmpp.bosh.NonBlockingBOSH.remove_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-90', 'remove_bosh_wait_timeout', 'link-90');">remove_bosh_wait_timeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-name">sched_time</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-91', 'idlequeue', 'link-21');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-92" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.set_alarm()=nbxmpp.idlequeue.IdleQueue-class.html#set_alarm"><a title="nbxmpp.idlequeue.IdleQueue.set_alarm" class="py-name" href="#" onclick="return doclink('link-92', 'set_alarm', 'link-92');">set_alarm</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.on_bosh_wait_timeout()=nbxmpp.bosh.NonBlockingBOSH-class.html#on_bosh_wait_timeout"><a title="nbxmpp.bosh.NonBlockingBOSH.on_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-93', 'on_bosh_wait_timeout', 'link-93');">on_bosh_wait_timeout</a></tt><tt class="py-op">,</tt> <tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
-<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">wait_cb_time</tt> <tt class="py-op">=</tt> <tt class="py-name">sched_time</tt> </tt>
-</div><a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.remove_bosh_wait_timeout"></a><div id="NonBlockingBOSH.remove_bosh_wait_timeout-def"><a name="L293"></a><tt class="py-lineno">293</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.remove_bosh_wait_timeout-toggle" onclick="return toggle('NonBlockingBOSH.remove_bosh_wait_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#remove_bosh_wait_timeout">remove_bosh_wait_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.remove_bosh_wait_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.remove_bosh_wait_timeout-expanded"><a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-94', 'idlequeue', 'link-21');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-95" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.remove_alarm()=nbxmpp.idlequeue.IdleQueue-class.html#remove_alarm"><a title="nbxmpp.idlequeue.IdleQueue.remove_alarm" class="py-name" href="#" onclick="return doclink('link-95', 'remove_alarm', 'link-95');">remove_alarm</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.on_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-96', 'on_bosh_wait_timeout', 'link-93');">on_bosh_wait_timeout</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">wait_cb_time</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.on_persistent_fallback"></a><div id="NonBlockingBOSH.on_persistent_fallback-def"><a name="L298"></a><tt class="py-lineno">298</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.on_persistent_fallback-toggle" onclick="return toggle('NonBlockingBOSH.on_persistent_fallback');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_persistent_fallback">on_persistent_fallback</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.on_persistent_fallback-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.on_persistent_fallback-expanded"><a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"><tt class="py-docstring"> Called from underlying transport when server closes TCP connection</tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"><tt class="py-docstring"> :param socket: disconnected transport object</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">http_persistent</tt><tt class="py-op">:</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt id="link-97" class="py-name"><a title="nbxmpp.auth_nb.log
+</div><a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.renew_bosh_wait_timeout"></a><div id="NonBlockingBOSH.renew_bosh_wait_timeout-def"><a name="L293"></a><tt class="py-lineno">293</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.renew_bosh_wait_timeout-toggle" onclick="return toggle('NonBlockingBOSH.renew_bosh_wait_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#renew_bosh_wait_timeout">renew_bosh_wait_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.renew_bosh_wait_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.renew_bosh_wait_timeout-expanded"><a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">wait_cb_time</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.remove_bosh_wait_timeout()=nbxmpp.bosh.NonBlockingBOSH-class.html#remove_bosh_wait_timeout"><a title="nbxmpp.bosh.NonBlockingBOSH.remove_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-90', 'remove_bosh_wait_timeout', 'link-90');">remove_bosh_wait_timeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">sched_time</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-91', 'idlequeue', 'link-21');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-92" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.set_alarm()=nbxmpp.idlequeue.IdleQueue-class.html#set_alarm"><a title="nbxmpp.idlequeue.IdleQueue.set_alarm" class="py-name" href="#" onclick="return doclink('link-92', 'set_alarm', 'link-92');">set_alarm</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.on_bosh_wait_timeout()=nbxmpp.bosh.NonBlockingBOSH-class.html#on_bosh_wait_timeout"><a title="nbxmpp.bosh.NonBlockingBOSH.on_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-93', 'on_bosh_wait_timeout', 'link-93');">on_bosh_wait_timeout</a></tt><tt class="py-op">,</tt> <tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">wait_cb_time</tt> <tt class="py-op">=</tt> <tt class="py-name">sched_time</tt> </tt>
+</div><a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.remove_bosh_wait_timeout"></a><div id="NonBlockingBOSH.remove_bosh_wait_timeout-def"><a name="L299"></a><tt class="py-lineno">299</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.remove_bosh_wait_timeout-toggle" onclick="return toggle('NonBlockingBOSH.remove_bosh_wait_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#remove_bosh_wait_timeout">remove_bosh_wait_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.remove_bosh_wait_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.remove_bosh_wait_timeout-expanded"><a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-94', 'idlequeue', 'link-21');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-95" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.remove_alarm()=nbxmpp.idlequeue.IdleQueue-class.html#remove_alarm"><a title="nbxmpp.idlequeue.IdleQueue.remove_alarm" class="py-name" href="#" onclick="return doclink('link-95', 'remove_alarm', 'link-95');">remove_alarm</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.on_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-96', 'on_bosh_wait_timeout', 'link-93');">on_bosh_wait_timeout</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">wait_cb_time</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.on_persistent_fallback"></a><div id="NonBlockingBOSH.on_persistent_fallback-def"><a name="L304"></a><tt class="py-lineno">304</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.on_persistent_fallback-toggle" onclick="return toggle('NonBlockingBOSH.on_persistent_fallback');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_persistent_fallback">on_persistent_fallback</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.on_persistent_fallback-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.on_persistent_fallback-expanded"><a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"><tt class="py-docstring"> Called from underlying transport when server closes TCP connection</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"><tt class="py-docstring"> :param socket: disconnected transport object</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">http_persistent</tt><tt class="py-op">:</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt id="link-97" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -513,54 +519,54 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-97', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'Fallback to nonpersistent HTTP (no pipelining as well)'</tt><tt class="py-op">)</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">http_persistent</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_persistent</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_pipelining</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">http_persistent</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_persistent</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_pipelining</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-98', 'disconnect', 'link-89');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-name">do_callback</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.connect_and_flush" class="py-name" href="#" onclick="return doclink('link-99', 'connect_and_flush', 'link-73');">connect_and_flush</a></tt><tt class="py-op">(</tt><tt class="py-name">socket</tt><tt class="py-op">)</tt> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.connect_and_flush" class="py-name" href="#" onclick="return doclink('link-99', 'connect_and_flush', 'link-73');">connect_and_flush</a></tt><tt class="py-op">(</tt><tt class="py-name">socket</tt><tt class="py-op">)</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-100', 'disconnect', 'link-89');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> </tt>
-<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> </tt>
-<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.handle_body_attrs"></a><div id="NonBlockingBOSH.handle_body_attrs-def"><a name="L316"></a><tt class="py-lineno">316</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.handle_body_attrs-toggle" onclick="return toggle('NonBlockingBOSH.handle_body_attrs');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#handle_body_attrs">handle_body_attrs</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza_attrs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.handle_body_attrs-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.handle_body_attrs-expanded"><a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"><tt class="py-docstring"> Called for each incoming body stanza from dispatcher. Checks body</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"><tt class="py-docstring"> attributes.</tt> </tt>
-<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.remove_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-101', 'remove_bosh_wait_timeout', 'link-90');">remove_bosh_wait_timeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">after_init</tt><tt class="py-op">:</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'sid'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-comment"># session ID should be only in init response</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_sid</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'sid'</tt><tt class="py-op">]</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'requests'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_requests</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'requests'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'wait'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_wait</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'wait'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">after_init</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'ack'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'ack'</tt><tt class="py-op">]</tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack_checker</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name" targets="Method nbxmpp.bosh.AckChecker.process_incoming_ack()=nbxmpp.bosh.AckChecker-class.html#process_incoming_ack"><a title="nbxmpp.bosh.AckChecker.process_incoming_ack" class="py-name" href="#" onclick="return doclink('link-102', 'process_incoming_ack', 'link-102');">process_incoming_ack</a></tt><tt class="py-op">(</tt><tt class="py-name">ack</tt><tt class="py-op">=</tt><tt class="py-name">ack</tt><tt class="py-op">,</tt> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">current_recv_socket</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.handle_body_attrs"></a><div id="NonBlockingBOSH.handle_body_attrs-def"><a name="L322"></a><tt class="py-lineno">322</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.handle_body_attrs-toggle" onclick="return toggle('NonBlockingBOSH.handle_body_attrs');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#handle_body_attrs">handle_body_attrs</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza_attrs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.handle_body_attrs-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.handle_body_attrs-expanded"><a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"><tt class="py-docstring"> Called for each incoming body stanza from dispatcher. Checks body</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"><tt class="py-docstring"> attributes.</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.remove_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-101', 'remove_bosh_wait_timeout', 'link-90');">remove_bosh_wait_timeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">after_init</tt><tt class="py-op">:</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'sid'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-comment"># session ID should be only in init response</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_sid</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'sid'</tt><tt class="py-op">]</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'requests'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_requests</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'requests'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'wait'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_wait</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'wait'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">after_init</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'terminate'</tt><tt class="py-op">,</tt> <tt class="py-string">'terminal'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-name">condition</tt> <tt class="py-op">=</tt> <tt class="py-string">'n/a'</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'condition'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-name">condition</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'condition'</tt><tt class="py-op">]</tt> </tt>
-<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">condition</tt> <tt class="py-op">==</tt> <tt class="py-string">'n/a'</tt><tt class="py-op">:</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt id="link-103" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'ack'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'ack'</tt><tt class="py-op">]</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack_checker</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name" targets="Method nbxmpp.bosh.AckChecker.process_incoming_ack()=nbxmpp.bosh.AckChecker-class.html#process_incoming_ack"><a title="nbxmpp.bosh.AckChecker.process_incoming_ack" class="py-name" href="#" onclick="return doclink('link-102', 'process_incoming_ack', 'link-102');">process_incoming_ack</a></tt><tt class="py-op">(</tt><tt class="py-name">ack</tt><tt class="py-op">=</tt><tt class="py-name">ack</tt><tt class="py-op">,</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">current_recv_socket</tt><tt class="py-op">)</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'terminate'</tt><tt class="py-op">,</tt> <tt class="py-string">'terminal'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-name">condition</tt> <tt class="py-op">=</tt> <tt class="py-string">'n/a'</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'condition'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-name">condition</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'condition'</tt><tt class="py-op">]</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">condition</tt> <tt class="py-op">==</tt> <tt class="py-string">'n/a'</tt><tt class="py-op">:</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt id="link-103" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -572,8 +578,8 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-103', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Received sesion-ending terminating stanza'</tt><tt class="py-op">)</tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt id="link-104" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt id="link-104" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -585,65 +591,65 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-104', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Received terminating stanza: %s - %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">condition</tt><tt class="py-op">,</tt> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt id="link-105" class="py-name" targets="Variable nbxmpp.bosh.bosh_errors=nbxmpp.bosh-module.html#bosh_errors"><a title="nbxmpp.bosh.bosh_errors" class="py-name" href="#" onclick="return doclink('link-105', 'bosh_errors', 'link-105');">bosh_errors</a></tt><tt class="py-op">[</tt><tt class="py-name">condition</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt id="link-105" class="py-name" targets="Variable nbxmpp.bosh.bosh_errors=nbxmpp.bosh-module.html#bosh_errors"><a title="nbxmpp.bosh.bosh_errors" class="py-name" href="#" onclick="return doclink('link-105', 'bosh_errors', 'link-105');">bosh_errors</a></tt><tt class="py-op">[</tt><tt class="py-name">condition</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-106', 'disconnect', 'link-89');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> </tt>
-<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'error'</tt><tt class="py-op">:</tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-comment"># recoverable error</tt> </tt>
-<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-</div><a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.append_stanza"></a><div id="NonBlockingBOSH.append_stanza-def"><a name="L360"></a><tt class="py-lineno">360</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.append_stanza-toggle" onclick="return toggle('NonBlockingBOSH.append_stanza');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#append_stanza">append_stanza</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.append_stanza-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.append_stanza-expanded"><a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"><tt class="py-docstring"> Append stanza to a buffer to send</tt> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">:</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-comment"># stanza is tuple of BOSH stanza and bool value for whether to add payload</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prio_bosh_stanzas</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-comment"># stanza is XMPP stanza. Will be boshified before send.</tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> </tt>
-<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.send"></a><div id="NonBlockingBOSH.send-def"><a name="L373"></a><tt class="py-lineno">373</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.send-toggle" onclick="return toggle('NonBlockingBOSH.send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#send">send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">now</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.send-expanded"><a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send_BOSH" class="py-name" href="#" onclick="return doclink('link-107', 'send_BOSH', 'link-49');">send_BOSH</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> </tt>
-<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.get_current_state"></a><div id="NonBlockingBOSH.get_current_state-def"><a name="L378"></a><tt class="py-lineno">378</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.get_current_state-toggle" onclick="return toggle('NonBlockingBOSH.get_current_state');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#get_current_state">get_current_state</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.get_current_state-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.get_current_state-expanded"><a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-string">'------ SOCKET_ID\tSOCKET_STATE\tPENDING_REQS\n'</tt> </tt>
-<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">:</tt> </tt>
-<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s------ %s\t%s\t%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-108', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">pending_requests</tt><tt class="py-op">)</tt> </tt>
-<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s------ prio stanzas: %s, queued XMPP stanzas: %s, not_acked stanzas: %s'</tt> \ </tt>
-<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prio_bosh_stanzas</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt><tt class="py-op">,</tt> </tt>
-<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack_checker</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name" targets="Method nbxmpp.bosh.AckChecker.get_not_acked_rids()=nbxmpp.bosh.AckChecker-class.html#get_not_acked_rids"><a title="nbxmpp.bosh.AckChecker.get_not_acked_rids" class="py-name" href="#" onclick="return doclink('link-109', 'get_not_acked_rids', 'link-109');">get_not_acked_rids</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">t</tt> </tt>
-</div><a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> </tt>
-<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.connect_and_flush"></a><div id="NonBlockingBOSH.connect_and_flush-def"><a name="L388"></a><tt class="py-lineno">388</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.connect_and_flush-toggle" onclick="return toggle('NonBlockingBOSH.connect_and_flush');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#connect_and_flush">connect_and_flush</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.connect_and_flush-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.connect_and_flush-expanded"><a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.connect
+<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'error'</tt><tt class="py-op">:</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-comment"># recoverable error</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+</div><a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.append_stanza"></a><div id="NonBlockingBOSH.append_stanza-def"><a name="L366"></a><tt class="py-lineno">366</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.append_stanza-toggle" onclick="return toggle('NonBlockingBOSH.append_stanza');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#append_stanza">append_stanza</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.append_stanza-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.append_stanza-expanded"><a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"><tt class="py-docstring"> Append stanza to a buffer to send</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">:</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-comment"># stanza is tuple of BOSH stanza and bool value for whether to add payload</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prio_bosh_stanzas</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-comment"># stanza is XMPP stanza. Will be boshified before send.</tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.send"></a><div id="NonBlockingBOSH.send-def"><a name="L379"></a><tt class="py-lineno">379</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.send-toggle" onclick="return toggle('NonBlockingBOSH.send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#send">send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">now</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.send-expanded"><a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send_BOSH" class="py-name" href="#" onclick="return doclink('link-107', 'send_BOSH', 'link-49');">send_BOSH</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.get_current_state"></a><div id="NonBlockingBOSH.get_current_state-def"><a name="L384"></a><tt class="py-lineno">384</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.get_current_state-toggle" onclick="return toggle('NonBlockingBOSH.get_current_state');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#get_current_state">get_current_state</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.get_current_state-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.get_current_state-expanded"><a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-string">'------ SOCKET_ID\tSOCKET_STATE\tPENDING_REQS\n'</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">:</tt> </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s------ %s\t%s\t%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-108', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">pending_requests</tt><tt class="py-op">)</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s------ prio stanzas: %s, queued XMPP stanzas: %s, not_acked stanzas: %s'</tt> \ </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prio_bosh_stanzas</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stanza_buffer</tt><tt class="py-op">,</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack_checker</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name" targets="Method nbxmpp.bosh.AckChecker.get_not_acked_rids()=nbxmpp.bosh.AckChecker-class.html#get_not_acked_rids"><a title="nbxmpp.bosh.AckChecker.get_not_acked_rids" class="py-name" href="#" onclick="return doclink('link-109', 'get_not_acked_rids', 'link-109');">get_not_acked_rids</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">t</tt> </tt>
+</div><a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.connect_and_flush"></a><div id="NonBlockingBOSH.connect_and_flush-def"><a name="L394"></a><tt class="py-lineno">394</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.connect_and_flush-toggle" onclick="return toggle('NonBlockingBOSH.connect_and_flush');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#connect_and_flush">connect_and_flush</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.connect_and_flush-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.connect_and_flush-expanded"><a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.connect
nbxmpp.client_nb.NonBlockingClient.connect
nbxmpp.transports_nb.NonBlockingTCP.connect
nbxmpp.transports_nb.NonBlockingTransport.connect" class="py-name" href="#" onclick="return doclink('link-110', 'connect', 'link-24');">connect</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-name">conn_5tuple</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">conn_5tuple</tt><tt class="py-op">,</tt> </tt>
-<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">on_connect</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible()=nbxmpp.bosh.NonBlockingBOSH-class.html#on_http_request_possible"><a title="nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible" class="py-name" href="#" onclick="return doclink('link-111', 'on_http_request_possible', 'link-111');">on_http_request_possible</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-name">on_connect_failure</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> <tt class="py-name">conn_5tuple</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">conn_5tuple</tt><tt class="py-op">,</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-name">on_connect</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible()=nbxmpp.bosh.NonBlockingBOSH-class.html#on_http_request_possible"><a title="nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible" class="py-name" href="#" onclick="return doclink('link-111', 'on_http_request_possible', 'link-111');">on_http_request_possible</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-name">on_connect_failure</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-112', 'disconnect', 'link-89');">disconnect</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> </tt>
-<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.boshify_stanzas"></a><div id="NonBlockingBOSH.boshify_stanzas-def"><a name="L395"></a><tt class="py-lineno">395</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.boshify_stanzas-toggle" onclick="return toggle('NonBlockingBOSH.boshify_stanzas');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#boshify_stanzas">boshify_stanzas</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanzas</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">body_attrs</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.boshify_stanzas-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.boshify_stanzas-expanded"><a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"><tt class="py-docstring"> Wraps zero to many stanzas by body tag with xmlns and sid</tt> </tt>
-<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt id="link-113" class="py-name"><a title="nbxmpp.auth_nb.log
+</div><a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.boshify_stanzas"></a><div id="NonBlockingBOSH.boshify_stanzas-def"><a name="L401"></a><tt class="py-lineno">401</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.boshify_stanzas-toggle" onclick="return toggle('NonBlockingBOSH.boshify_stanzas');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#boshify_stanzas">boshify_stanzas</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanzas</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">body_attrs</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.boshify_stanzas-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.boshify_stanzas-expanded"><a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"><tt class="py-docstring"> Wraps zero to many stanzas by body tag with xmlns and sid</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt id="link-113" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -655,202 +661,202 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-113', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'boshify_staza - type is: %s, stanza is %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">stanzas</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">stanzas</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt id="link-114" class="py-name"><a title="nbxmpp.protocol.BOSHBody" class="py-name" href="#" onclick="return doclink('link-114', 'BOSHBody', 'link-10');">BOSHBody</a></tt><tt class="py-op">(</tt><tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'sid'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_sid</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="nbxmpp.simplexml.Node.setPayload" class="py-name" href="#" onclick="return doclink('link-115', 'setPayload', 'link-79');">setPayload</a></tt><tt class="py-op">(</tt><tt class="py-name">stanzas</tt><tt class="py-op">)</tt> </tt>
-<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt> </tt>
-</div><a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.send_init"></a><div id="NonBlockingBOSH.send_init-def"><a name="L405"></a><tt class="py-lineno">405</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.send_init-toggle" onclick="return toggle('NonBlockingBOSH.send_init');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#send_init">send_init</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">after_SASL</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.send_init-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.send_init-expanded"><a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">after_SASL</tt><tt class="py-op">:</tt> </tt>
-<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-116" class="py-name"><a title="nbxmpp.protocol.BOSHBody" class="py-name" href="#" onclick="return doclink('link-116', 'BOSHBody', 'link-10');">BOSHBody</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt> <tt class="py-string">'to'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_to</tt><tt class="py-op">,</tt> </tt>
-<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-string">'sid'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_sid</tt><tt class="py-op">,</tt> </tt>
-<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-string">'xml:lang'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_xml_lang</tt><tt class="py-op">,</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-string">'xmpp:restart'</tt><tt class="py-op">:</tt> <tt class="py-string">'true'</tt><tt class="py-op">,</tt> </tt>
-<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-string">'secure'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_secure</tt><tt class="py-op">,</tt> </tt>
-<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-string">'xmlns:xmpp'</tt><tt class="py-op">:</tt> <tt class="py-string">'urn:xmpp:xbosh'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-117" class="py-name"><a title="nbxmpp.protocol.BOSHBody" class="py-name" href="#" onclick="return doclink('link-117', 'BOSHBody', 'link-10');">BOSHBody</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt> <tt class="py-string">'content'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_content</tt><tt class="py-op">,</tt> </tt>
-<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-string">'hold'</tt><tt class="py-op">:</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_hold</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-string">'route'</tt><tt class="py-op">:</tt> <tt class="py-string">'xmpp:%s:%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">route_host</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">route_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-string">'to'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_to</tt><tt class="py-op">,</tt> </tt>
-<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-string">'wait'</tt><tt class="py-op">:</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_wait</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-string">'xml:lang'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_xml_lang</tt><tt class="py-op">,</tt> </tt>
-<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-string">'xmpp:version'</tt><tt class="py-op">:</tt> <tt class="py-string">'1.0'</tt><tt class="py-op">,</tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-string">'ver'</tt><tt class="py-op">:</tt> <tt class="py-string">'1.6'</tt><tt class="py-op">,</tt> </tt>
-<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-string">'xmlns:xmpp'</tt><tt class="py-op">:</tt> <tt class="py-string">'urn:xmpp:xbosh'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send_BOSH" class="py-name" href="#" onclick="return doclink('link-118', 'send_BOSH', 'link-49');">send_BOSH</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.start_disconnect"></a><div id="NonBlockingBOSH.start_disconnect-def"><a name="L427"></a><tt class="py-lineno">427</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.start_disconnect-toggle" onclick="return toggle('NonBlockingBOSH.start_disconnect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#start_disconnect">start_disconnect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.start_disconnect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.start_disconnect-expanded"><a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt id="link-119" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-119', 'NonBlockingTransport', 'link-1');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-120" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.start_disconnect()=nbxmpp.bosh.NonBlockingBOSH-class.html#start_disconnect,Method nbxmpp.transports_nb.NonBlockingTCP.start_disconnect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#start_disconnect,Method nbxmpp.transports_nb.NonBlockingTransport.start_disconnect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#start_disconnect"><a title="nbxmpp.bosh.NonBlockingBOSH.start_disconnect
+<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt id="link-114" class="py-name"><a title="nbxmpp.protocol.BOSHBody" class="py-name" href="#" onclick="return doclink('link-114', 'BOSHBody', 'link-10');">BOSHBody</a></tt><tt class="py-op">(</tt><tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'sid'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_sid</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="nbxmpp.simplexml.Node.setPayload" class="py-name" href="#" onclick="return doclink('link-115', 'setPayload', 'link-79');">setPayload</a></tt><tt class="py-op">(</tt><tt class="py-name">stanzas</tt><tt class="py-op">)</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt> </tt>
+</div><a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.send_init"></a><div id="NonBlockingBOSH.send_init-def"><a name="L411"></a><tt class="py-lineno">411</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.send_init-toggle" onclick="return toggle('NonBlockingBOSH.send_init');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#send_init">send_init</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">after_SASL</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.send_init-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.send_init-expanded"><a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">after_SASL</tt><tt class="py-op">:</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-116" class="py-name"><a title="nbxmpp.protocol.BOSHBody" class="py-name" href="#" onclick="return doclink('link-116', 'BOSHBody', 'link-10');">BOSHBody</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt> <tt class="py-string">'to'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_to</tt><tt class="py-op">,</tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-string">'sid'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_sid</tt><tt class="py-op">,</tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-string">'xml:lang'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_xml_lang</tt><tt class="py-op">,</tt> </tt>
+<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-string">'xmpp:restart'</tt><tt class="py-op">:</tt> <tt class="py-string">'true'</tt><tt class="py-op">,</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-string">'secure'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_secure</tt><tt class="py-op">,</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-string">'xmlns:xmpp'</tt><tt class="py-op">:</tt> <tt class="py-string">'urn:xmpp:xbosh'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-117" class="py-name"><a title="nbxmpp.protocol.BOSHBody" class="py-name" href="#" onclick="return doclink('link-117', 'BOSHBody', 'link-10');">BOSHBody</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt> <tt class="py-string">'content'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_content</tt><tt class="py-op">,</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-string">'hold'</tt><tt class="py-op">:</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_hold</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-string">'route'</tt><tt class="py-op">:</tt> <tt class="py-string">'xmpp:%s:%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">route_host</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">route_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-string">'to'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_to</tt><tt class="py-op">,</tt> </tt>
+<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-string">'wait'</tt><tt class="py-op">:</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_wait</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-string">'xml:lang'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_xml_lang</tt><tt class="py-op">,</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-string">'xmpp:version'</tt><tt class="py-op">:</tt> <tt class="py-string">'1.0'</tt><tt class="py-op">,</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-string">'ver'</tt><tt class="py-op">:</tt> <tt class="py-string">'1.6'</tt><tt class="py-op">,</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-string">'xmlns:xmpp'</tt><tt class="py-op">:</tt> <tt class="py-string">'urn:xmpp:xbosh'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send_BOSH" class="py-name" href="#" onclick="return doclink('link-118', 'send_BOSH', 'link-49');">send_BOSH</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.start_disconnect"></a><div id="NonBlockingBOSH.start_disconnect-def"><a name="L433"></a><tt class="py-lineno">433</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.start_disconnect-toggle" onclick="return toggle('NonBlockingBOSH.start_disconnect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#start_disconnect">start_disconnect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.start_disconnect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.start_disconnect-expanded"><a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt id="link-119" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-119', 'NonBlockingTransport', 'link-1');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-120" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.start_disconnect()=nbxmpp.bosh.NonBlockingBOSH-class.html#start_disconnect,Method nbxmpp.transports_nb.NonBlockingTCP.start_disconnect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#start_disconnect,Method nbxmpp.transports_nb.NonBlockingTransport.start_disconnect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#start_disconnect"><a title="nbxmpp.bosh.NonBlockingBOSH.start_disconnect
nbxmpp.transports_nb.NonBlockingTCP.start_disconnect
nbxmpp.transports_nb.NonBlockingTransport.start_disconnect" class="py-name" href="#" onclick="return doclink('link-120', 'start_disconnect', 'link-120');">start_disconnect</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.renew_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-121', 'renew_bosh_wait_timeout', 'link-87');">renew_bosh_wait_timeout</a></tt><tt class="py-op">(</tt><tt id="link-122" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECT_TIMEOUT_SECONDS" class="py-name" href="#" onclick="return doclink('link-122', 'DISCONNECT_TIMEOUT_SECONDS', 'link-8');">DISCONNECT_TIMEOUT_SECONDS</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send_BOSH" class="py-name" href="#" onclick="return doclink('link-123', 'send_BOSH', 'link-49');">send_BOSH</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt id="link-124" class="py-name"><a title="nbxmpp.protocol.BOSHBody" class="py-name" href="#" onclick="return doclink('link-124', 'BOSHBody', 'link-10');">BOSHBody</a></tt><tt class="py-op">(</tt><tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'sid'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_sid</tt><tt class="py-op">,</tt> <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'terminate'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.get_new_http_socket"></a><div id="NonBlockingBOSH.get_new_http_socket-def"><a name="L434"></a><tt class="py-lineno">434</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.get_new_http_socket-toggle" onclick="return toggle('NonBlockingBOSH.get_new_http_socket');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#get_new_http_socket">get_new_http_socket</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.get_new_http_socket-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.get_new_http_socket-expanded"><a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-name">http_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'http_uri'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-string">'http_version'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_version</tt><tt class="py-op">,</tt> </tt>
-<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-string">'http_persistent'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_persistent</tt><tt class="py-op">,</tt> </tt>
-<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-string">'add_proxy_headers'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">over_proxy</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">estabilish_tls</tt><tt class="py-op">}</tt> </tt>
-<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">use_proxy_auth</tt><tt class="py-op">:</tt> </tt>
-<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'proxy_user'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'proxy_pass'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_creds</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> </tt>
-<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingHTTPBOSH" class="py-name" href="#" onclick="return doclink('link-125', 'NonBlockingHTTPBOSH', 'link-2');">NonBlockingHTTPBOSH</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt id="link-126" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-126', 'raise_event', 'link-20');">raise_event</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-127', 'raise_event', 'link-20');">raise_event</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-name">on_disconnect</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.renew_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-121', 'renew_bosh_wait_timeout', 'link-87');">renew_bosh_wait_timeout</a></tt><tt class="py-op">(</tt><tt id="link-122" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECT_TIMEOUT_SECONDS" class="py-name" href="#" onclick="return doclink('link-122', 'DISCONNECT_TIMEOUT_SECONDS', 'link-8');">DISCONNECT_TIMEOUT_SECONDS</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send_BOSH" class="py-name" href="#" onclick="return doclink('link-123', 'send_BOSH', 'link-49');">send_BOSH</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt id="link-124" class="py-name"><a title="nbxmpp.protocol.BOSHBody" class="py-name" href="#" onclick="return doclink('link-124', 'BOSHBody', 'link-10');">BOSHBody</a></tt><tt class="py-op">(</tt><tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'sid'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_sid</tt><tt class="py-op">,</tt> <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'terminate'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.get_new_http_socket"></a><div id="NonBlockingBOSH.get_new_http_socket-def"><a name="L440"></a><tt class="py-lineno">440</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.get_new_http_socket-toggle" onclick="return toggle('NonBlockingBOSH.get_new_http_socket');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#get_new_http_socket">get_new_http_socket</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.get_new_http_socket-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.get_new_http_socket-expanded"><a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-name">http_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'http_uri'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">bosh_uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-string">'http_version'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_version</tt><tt class="py-op">,</tt> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-string">'http_persistent'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_persistent</tt><tt class="py-op">,</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-string">'add_proxy_headers'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">over_proxy</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">estabilish_tls</tt><tt class="py-op">}</tt> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">use_proxy_auth</tt><tt class="py-op">:</tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'proxy_user'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'proxy_pass'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_creds</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingHTTPBOSH" class="py-name" href="#" onclick="return doclink('link-125', 'NonBlockingHTTPBOSH', 'link-2');">NonBlockingHTTPBOSH</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt id="link-126" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-126', 'raise_event', 'link-20');">raise_event</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-127', 'raise_event', 'link-20');">raise_event</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-name">on_disconnect</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-128', 'disconnect', 'link-89');">disconnect</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt id="link-129" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-129', 'idlequeue', 'link-21');">idlequeue</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-130', 'idlequeue', 'link-21');">idlequeue</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-name">estabilish_tls</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">estabilish_tls</tt><tt class="py-op">,</tt> </tt>
-<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-name">certs</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">certs</tt><tt class="py-op">,</tt> </tt>
-<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> <tt id="link-131" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible" class="py-name" href="#" onclick="return doclink('link-131', 'on_http_request_possible', 'link-111');">on_http_request_possible</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible" class="py-name" href="#" onclick="return doclink('link-132', 'on_http_request_possible', 'link-111');">on_http_request_possible</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-name">http_dict</tt> <tt class="py-op">=</tt> <tt class="py-name">http_dict</tt><tt class="py-op">,</tt> </tt>
-<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-name">proxy_dict</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">,</tt> </tt>
-<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt id="link-133" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.on_persistent_fallback()=nbxmpp.bosh.NonBlockingBOSH-class.html#on_persistent_fallback"><a title="nbxmpp.bosh.NonBlockingBOSH.on_persistent_fallback" class="py-name" href="#" onclick="return doclink('link-133', 'on_persistent_fallback', 'link-133');">on_persistent_fallback</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.on_persistent_fallback" class="py-name" href="#" onclick="return doclink('link-134', 'on_persistent_fallback', 'link-133');">on_persistent_fallback</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> </tt>
-<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.onreceive()=nbxmpp.bosh.NonBlockingBOSH-class.html#onreceive,Method nbxmpp.transports_nb.NonBlockingTransport.onreceive()=nbxmpp.transports_nb.NonBlockingTransport-class.html#onreceive"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt id="link-129" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-129', 'idlequeue', 'link-21');">idlequeue</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-130', 'idlequeue', 'link-21');">idlequeue</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-name">estabilish_tls</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">estabilish_tls</tt><tt class="py-op">,</tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-name">certs</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">certs</tt><tt class="py-op">,</tt> </tt>
+<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt id="link-131" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible" class="py-name" href="#" onclick="return doclink('link-131', 'on_http_request_possible', 'link-111');">on_http_request_possible</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible" class="py-name" href="#" onclick="return doclink('link-132', 'on_http_request_possible', 'link-111');">on_http_request_possible</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"> <tt class="py-name">http_dict</tt> <tt class="py-op">=</tt> <tt class="py-name">http_dict</tt><tt class="py-op">,</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-name">proxy_dict</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">,</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt id="link-133" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.on_persistent_fallback()=nbxmpp.bosh.NonBlockingBOSH-class.html#on_persistent_fallback"><a title="nbxmpp.bosh.NonBlockingBOSH.on_persistent_fallback" class="py-name" href="#" onclick="return doclink('link-133', 'on_persistent_fallback', 'link-133');">on_persistent_fallback</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.on_persistent_fallback" class="py-name" href="#" onclick="return doclink('link-134', 'on_persistent_fallback', 'link-133');">on_persistent_fallback</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.onreceive()=nbxmpp.bosh.NonBlockingBOSH-class.html#onreceive,Method nbxmpp.transports_nb.NonBlockingTransport.onreceive()=nbxmpp.transports_nb.NonBlockingTransport-class.html#onreceive"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-135', 'onreceive', 'link-135');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.on_received_http()=nbxmpp.bosh.NonBlockingBOSH-class.html#on_received_http"><a title="nbxmpp.bosh.NonBlockingBOSH.on_received_http" class="py-name" href="#" onclick="return doclink('link-136', 'on_received_http', 'link-136');">on_received_http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingHTTPBOSH.set_stanza_build_cb()=nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html#set_stanza_build_cb"><a title="nbxmpp.transports_nb.NonBlockingHTTPBOSH.set_stanza_build_cb" class="py-name" href="#" onclick="return doclink('link-137', 'set_stanza_build_cb', 'link-137');">set_stanza_build_cb</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.build_stanza()=nbxmpp.bosh.NonBlockingBOSH-class.html#build_stanza"><a title="nbxmpp.bosh.NonBlockingBOSH.build_stanza" class="py-name" href="#" onclick="return doclink('link-138', 'build_stanza', 'link-138');">build_stanza</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt> </tt>
-</div><a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> </tt>
-<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.onreceive"></a><div id="NonBlockingBOSH.onreceive-def"><a name="L458"></a><tt class="py-lineno">458</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.onreceive-toggle" onclick="return toggle('NonBlockingBOSH.onreceive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#onreceive">onreceive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">recv_handler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.onreceive-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.onreceive-expanded"><a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">recv_handler</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-name">recv_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name" targets="Class nbxmpp.dispatcher_nb.Dispatcher=nbxmpp.dispatcher_nb.Dispatcher-class.html"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-139', 'Dispatcher', 'link-139');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-140" class="py-name" targets="Method nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#ProcessNonBlocking,Method nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#ProcessNonBlocking"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
-nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-140', 'ProcessNonBlocking', 'link-140');">ProcessNonBlocking</a></tt> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">current_recv_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">recv_handler</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingHTTPBOSH.set_stanza_build_cb()=nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html#set_stanza_build_cb"><a title="nbxmpp.transports_nb.NonBlockingHTTPBOSH.set_stanza_build_cb" class="py-name" href="#" onclick="return doclink('link-137', 'set_stanza_build_cb', 'link-137');">set_stanza_build_cb</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.build_stanza()=nbxmpp.bosh.NonBlockingBOSH-class.html#build_stanza"><a title="nbxmpp.bosh.NonBlockingBOSH.build_stanza" class="py-name" href="#" onclick="return doclink('link-138', 'build_stanza', 'link-138');">build_stanza</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt> </tt>
</div><a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> </tt>
<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.on_received_http"></a><div id="NonBlockingBOSH.on_received_http-def"><a name="L464"></a><tt class="py-lineno">464</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.on_received_http-toggle" onclick="return toggle('NonBlockingBOSH.on_received_http');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_received_http">on_received_http</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.on_received_http-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.on_received_http-expanded"><a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">current_recv_socket</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt> </tt>
-<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">current_recv_handler</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> </tt>
-<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingBOSH.disconnect"></a><div id="NonBlockingBOSH.disconnect-def"><a name="L469"></a><tt class="py-lineno">469</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.disconnect-toggle" onclick="return toggle('NonBlockingBOSH.disconnect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#disconnect">disconnect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">do_callback</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingBOSH.disconnect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.disconnect-expanded"><a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.remove_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-141', 'remove_bosh_wait_timeout', 'link-90');">remove_bosh_wait_timeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-142', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-143" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-143', 'DISCONNECTED', 'link-5');">DISCONNECTED</a></tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> </tt>
-<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
-<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">:</tt> </tt>
-<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="NonBlockingBOSH.onreceive"></a><div id="NonBlockingBOSH.onreceive-def"><a name="L464"></a><tt class="py-lineno">464</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.onreceive-toggle" onclick="return toggle('NonBlockingBOSH.onreceive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#onreceive">onreceive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">recv_handler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.onreceive-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.onreceive-expanded"><a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">recv_handler</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-name">recv_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name" targets="Class nbxmpp.dispatcher_nb.Dispatcher=nbxmpp.dispatcher_nb.Dispatcher-class.html"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-139', 'Dispatcher', 'link-139');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-140" class="py-name" targets="Method nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#ProcessNonBlocking,Method nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#ProcessNonBlocking"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
+nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-140', 'ProcessNonBlocking', 'link-140');">ProcessNonBlocking</a></tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">current_recv_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">recv_handler</tt> </tt>
+</div><a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> </tt>
+<a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.on_received_http"></a><div id="NonBlockingBOSH.on_received_http-def"><a name="L470"></a><tt class="py-lineno">470</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.on_received_http-toggle" onclick="return toggle('NonBlockingBOSH.on_received_http');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_received_http">on_received_http</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.on_received_http-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.on_received_http-expanded"><a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">current_recv_socket</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt> </tt>
+<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">current_recv_handler</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingBOSH.disconnect"></a><div id="NonBlockingBOSH.disconnect-def"><a name="L475"></a><tt class="py-lineno">475</tt> <a class="py-toggle" href="#" id="NonBlockingBOSH.disconnect-toggle" onclick="return toggle('NonBlockingBOSH.disconnect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.NonBlockingBOSH-class.html#disconnect">disconnect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">do_callback</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingBOSH.disconnect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingBOSH.disconnect-expanded"><a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.remove_bosh_wait_timeout" class="py-name" href="#" onclick="return doclink('link-141', 'remove_bosh_wait_timeout', 'link-90');">remove_bosh_wait_timeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-142', 'get_state', 'link-39');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-143" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-143', 'DISCONNECTED', 'link-5');">DISCONNECTED</a></tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> </tt>
+<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_socks</tt><tt class="py-op">:</tt> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-144', 'disconnect', 'link-89');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-name">do_callback</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> <tt id="link-145" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-145', 'NonBlockingTransport', 'link-1');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt id="link-145" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-145', 'NonBlockingTransport', 'link-1');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-146', 'disconnect', 'link-89');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">do_callback</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> </tt>
-<a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> </tt>
-<a name="get_rand_number"></a><div id="get_rand_number-def"><a name="L478"></a><tt class="py-lineno">478</tt> <a class="py-toggle" href="#" id="get_rand_number-toggle" onclick="return toggle('get_rand_number');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh-module.html#get_rand_number">get_rand_number</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="get_rand_number-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_rand_number-expanded"><a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt class="py-comment"># with 50-bit random initial rid, session would have to go up</tt> </tt>
-<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt class="py-comment"># to 7881299347898368 messages to raise rid over 2**53</tt> </tt>
-<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-comment"># (see http://www.xmpp.org/extensions/xep-0124.html#rids)</tt> </tt>
-<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-comment"># it's also used for sequence key initialization</tt> </tt>
-<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">Random</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">seed</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">getrandbits</tt><tt class="py-op">(</tt><tt class="py-number">50</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> </tt>
-<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"> </tt>
-<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> </tt>
-<a name="AckChecker"></a><div id="AckChecker-def"><a name="L489"></a><tt class="py-lineno">489</tt> <a class="py-toggle" href="#" id="AckChecker-toggle" onclick="return toggle('AckChecker');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.bosh.AckChecker-class.html">AckChecker</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AckChecker-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AckChecker-expanded"><a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"><tt class="py-docstring"> Class for generating rids and generating and checking acknowledgements in</tt> </tt>
-<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"><tt class="py-docstring"> BOSH messages</tt> </tt>
-<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="AckChecker.__init__"></a><div id="AckChecker.__init__-def"><a name="L494"></a><tt class="py-lineno">494</tt> <a class="py-toggle" href="#" id="AckChecker.__init__-toggle" onclick="return toggle('AckChecker.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.AckChecker-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AckChecker.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AckChecker.__init__-expanded"><a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rid</tt> <tt class="py-op">=</tt> <tt id="link-147" class="py-name" targets="Function nbxmpp.bosh.get_rand_number()=nbxmpp.bosh-module.html#get_rand_number"><a title="nbxmpp.bosh.get_rand_number" class="py-name" href="#" onclick="return doclink('link-147', 'get_rand_number', 'link-147');">get_rand_number</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">last_rids</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">not_acked</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> </tt>
-<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"> </tt>
-<a name="AckChecker.get_not_acked_rids"></a><div id="AckChecker.get_not_acked_rids-def"><a name="L501"></a><tt class="py-lineno">501</tt> <a class="py-toggle" href="#" id="AckChecker.get_not_acked_rids-toggle" onclick="return toggle('AckChecker.get_not_acked_rids');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.AckChecker-class.html#get_not_acked_rids">get_not_acked_rids</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">rid</tt> <tt class="py-keyword">for</tt> <tt class="py-name">rid</tt><tt class="py-op">,</tt> <tt class="py-name">st</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">not_acked</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> </tt>
-<a name="AckChecker.backup_stanza"></a><div id="AckChecker.backup_stanza-def"><a name="L503"></a><tt class="py-lineno">503</tt> <a class="py-toggle" href="#" id="AckChecker.backup_stanza-toggle" onclick="return toggle('AckChecker.backup_stanza');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.AckChecker-class.html#backup_stanza">backup_stanza</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AckChecker.backup_stanza-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AckChecker.backup_stanza-expanded"><a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">pending_requests</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <tt class="py-name">rid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name" targets="Method nbxmpp.bosh.AckChecker.get_rid()=nbxmpp.bosh.AckChecker-class.html#get_rid"><a title="nbxmpp.bosh.AckChecker.get_rid" class="py-name" href="#" onclick="return doclink('link-148', 'get_rid', 'link-148');">get_rid</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">not_acked</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">rid</tt><tt class="py-op">,</tt> <tt class="py-name">stanza</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-149', 'setAttr', 'link-83');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'rid'</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">rid</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">last_rids</tt><tt class="py-op">[</tt><tt class="py-name">socket</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-name">rid</tt> </tt>
-<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"> </tt>
-<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rid</tt> <tt class="py-op">!=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-150', 'setAttr', 'link-83');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'ack'</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">stanza</tt> </tt>
-</div><a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> </tt>
-<a name="AckChecker.process_incoming_ack"></a><div id="AckChecker.process_incoming_ack-def"><a name="L514"></a><tt class="py-lineno">514</tt> <a class="py-toggle" href="#" id="AckChecker.process_incoming_ack-toggle" onclick="return toggle('AckChecker.process_incoming_ack');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.AckChecker-class.html#process_incoming_ack">process_incoming_ack</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">,</tt> <tt class="py-param">ack</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AckChecker.process_incoming_ack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AckChecker.process_incoming_ack-expanded"><a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">pending_requests</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ack</tt><tt class="py-op">:</tt> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">ack</tt><tt class="py-op">)</tt> </tt>
-<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">last_rids</tt><tt class="py-op">[</tt><tt class="py-name">socket</tt><tt class="py-op">]</tt> </tt>
-<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> </tt>
-<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">rid</tt> <tt class="py-keyword">for</tt> <tt class="py-name">rid</tt><tt class="py-op">,</tt> <tt class="py-name">st</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">not_acked</tt> <tt class="py-keyword">if</tt> <tt class="py-name">ack</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">rid</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">not_acked</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">not_acked</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> </tt>
-<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">ack</tt> </tt>
-</div><a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> </tt>
+</div></div><a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> </tt>
+<a name="get_rand_number"></a><div id="get_rand_number-def"><a name="L484"></a><tt class="py-lineno">484</tt> <a class="py-toggle" href="#" id="get_rand_number-toggle" onclick="return toggle('get_rand_number');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh-module.html#get_rand_number">get_rand_number</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="get_rand_number-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_rand_number-expanded"><a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-comment"># with 50-bit random initial rid, session would have to go up</tt> </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> <tt class="py-comment"># to 7881299347898368 messages to raise rid over 2**53</tt> </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"> <tt class="py-comment"># (see http://www.xmpp.org/extensions/xep-0124.html#rids)</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-comment"># it's also used for sequence key initialization</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">Random</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">seed</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">getrandbits</tt><tt class="py-op">(</tt><tt class="py-number">50</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> </tt>
+<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> </tt>
+<a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> </tt>
+<a name="AckChecker"></a><div id="AckChecker-def"><a name="L495"></a><tt class="py-lineno">495</tt> <a class="py-toggle" href="#" id="AckChecker-toggle" onclick="return toggle('AckChecker');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.bosh.AckChecker-class.html">AckChecker</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AckChecker-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AckChecker-expanded"><a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"><tt class="py-docstring"> Class for generating rids and generating and checking acknowledgements in</tt> </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"><tt class="py-docstring"> BOSH messages</tt> </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="AckChecker.__init__"></a><div id="AckChecker.__init__-def"><a name="L500"></a><tt class="py-lineno">500</tt> <a class="py-toggle" href="#" id="AckChecker.__init__-toggle" onclick="return toggle('AckChecker.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.AckChecker-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AckChecker.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AckChecker.__init__-expanded"><a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rid</tt> <tt class="py-op">=</tt> <tt id="link-147" class="py-name" targets="Function nbxmpp.bosh.get_rand_number()=nbxmpp.bosh-module.html#get_rand_number"><a title="nbxmpp.bosh.get_rand_number" class="py-name" href="#" onclick="return doclink('link-147', 'get_rand_number', 'link-147');">get_rand_number</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">last_rids</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">not_acked</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> </tt>
+<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> </tt>
+<a name="AckChecker.get_not_acked_rids"></a><div id="AckChecker.get_not_acked_rids-def"><a name="L507"></a><tt class="py-lineno">507</tt> <a class="py-toggle" href="#" id="AckChecker.get_not_acked_rids-toggle" onclick="return toggle('AckChecker.get_not_acked_rids');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.AckChecker-class.html#get_not_acked_rids">get_not_acked_rids</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">rid</tt> <tt class="py-keyword">for</tt> <tt class="py-name">rid</tt><tt class="py-op">,</tt> <tt class="py-name">st</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">not_acked</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> </tt>
+<a name="AckChecker.backup_stanza"></a><div id="AckChecker.backup_stanza-def"><a name="L509"></a><tt class="py-lineno">509</tt> <a class="py-toggle" href="#" id="AckChecker.backup_stanza-toggle" onclick="return toggle('AckChecker.backup_stanza');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.AckChecker-class.html#backup_stanza">backup_stanza</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AckChecker.backup_stanza-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AckChecker.backup_stanza-expanded"><a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">pending_requests</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt class="py-name">rid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name" targets="Method nbxmpp.bosh.AckChecker.get_rid()=nbxmpp.bosh.AckChecker-class.html#get_rid"><a title="nbxmpp.bosh.AckChecker.get_rid" class="py-name" href="#" onclick="return doclink('link-148', 'get_rid', 'link-148');">get_rid</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">not_acked</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">rid</tt><tt class="py-op">,</tt> <tt class="py-name">stanza</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-149', 'setAttr', 'link-83');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'rid'</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">rid</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">last_rids</tt><tt class="py-op">[</tt><tt class="py-name">socket</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-name">rid</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rid</tt> <tt class="py-op">!=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-150', 'setAttr', 'link-83');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'ack'</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">stanza</tt> </tt>
+</div><a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> </tt>
+<a name="AckChecker.process_incoming_ack"></a><div id="AckChecker.process_incoming_ack-def"><a name="L520"></a><tt class="py-lineno">520</tt> <a class="py-toggle" href="#" id="AckChecker.process_incoming_ack-toggle" onclick="return toggle('AckChecker.process_incoming_ack');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.AckChecker-class.html#process_incoming_ack">process_incoming_ack</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">socket</tt><tt class="py-op">,</tt> <tt class="py-param">ack</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AckChecker.process_incoming_ack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AckChecker.process_incoming_ack-expanded"><a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">pending_requests</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ack</tt><tt class="py-op">:</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">ack</tt><tt class="py-op">)</tt> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">last_rids</tt><tt class="py-op">[</tt><tt class="py-name">socket</tt><tt class="py-op">]</tt> </tt>
<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> </tt>
-<a name="AckChecker.get_rid"></a><div id="AckChecker.get_rid-def"><a name="L527"></a><tt class="py-lineno">527</tt> <a class="py-toggle" href="#" id="AckChecker.get_rid-toggle" onclick="return toggle('AckChecker.get_rid');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.AckChecker-class.html#get_rid">get_rid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AckChecker.get_rid-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AckChecker.get_rid-expanded"><a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rid</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rid</tt> </tt>
-</div></div><a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"> </tt>
-<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">rid</tt> <tt class="py-keyword">for</tt> <tt class="py-name">rid</tt><tt class="py-op">,</tt> <tt class="py-name">st</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">not_acked</tt> <tt class="py-keyword">if</tt> <tt class="py-name">ack</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">rid</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">not_acked</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">not_acked</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt class="py-name">ack</tt> </tt>
+</div><a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> </tt>
<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"> </tt>
-<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"> </tt>
-<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> </tt>
-<a name="KeyStack"></a><div id="KeyStack-def"><a name="L535"></a><tt class="py-lineno">535</tt> <a class="py-toggle" href="#" id="KeyStack-toggle" onclick="return toggle('KeyStack');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.bosh.KeyStack-class.html">KeyStack</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="KeyStack-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="KeyStack-expanded"><a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"><tt class="py-docstring"> Class implementing key sequences for BOSH messages</tt> </tt>
-<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="KeyStack.__init__"></a><div id="KeyStack.__init__-def"><a name="L539"></a><tt class="py-lineno">539</tt> <a class="py-toggle" href="#" id="KeyStack.__init__-toggle" onclick="return toggle('KeyStack.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.KeyStack-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">count</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="KeyStack.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KeyStack.__init__-expanded"><a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">count</tt> </tt>
-<a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.keys()=nbxmpp.roster_nb.NonBlockingRoster-class.html#keys"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-151', 'keys', 'link-151');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name" targets="Method nbxmpp.bosh.KeyStack.reset()=nbxmpp.bosh.KeyStack-class.html#reset"><a title="nbxmpp.bosh.KeyStack.reset" class="py-name" href="#" onclick="return doclink('link-152', 'reset', 'link-152');">reset</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">first_call</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-</div><a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"> </tt>
-<a name="KeyStack.reset"></a><div id="KeyStack.reset-def"><a name="L545"></a><tt class="py-lineno">545</tt> <a class="py-toggle" href="#" id="KeyStack.reset-toggle" onclick="return toggle('KeyStack.reset');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.KeyStack-class.html#reset">reset</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="KeyStack.reset-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KeyStack.reset-expanded"><a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"> <tt class="py-name">seed</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-153" class="py-name"><a title="nbxmpp.bosh.get_rand_number" class="py-name" href="#" onclick="return doclink('link-153', 'get_rand_number', 'link-147');">get_rand_number</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-154', 'keys', 'link-151');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">sha1</tt><tt class="py-op">(</tt><tt class="py-name">seed</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">hexdigest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">count</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"> <tt class="py-name">curr_seed</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-155', 'keys', 'link-151');">keys</a></tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
-<a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-156', 'keys', 'link-151');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">sha1</tt><tt class="py-op">(</tt><tt class="py-name">curr_seed</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">hexdigest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> </tt>
-<a name="KeyStack.get"></a><div id="KeyStack.get-def"><a name="L552"></a><tt class="py-lineno">552</tt> <a class="py-toggle" href="#" id="KeyStack.get-toggle" onclick="return toggle('KeyStack.get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.KeyStack-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="KeyStack.get-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KeyStack.get-expanded"><a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">first_call</tt><tt class="py-op">:</tt> </tt>
-<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">first_call</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-157', 'keys', 'link-151');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> </tt>
-<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-158', 'keys', 'link-151');">keys</a></tt><tt class="py-op">)</tt><tt class="py-op">&gt;</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-159', 'keys', 'link-151');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-name">last_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-160', 'keys', 'link-151');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="nbxmpp.bosh.KeyStack.reset" class="py-name" href="#" onclick="return doclink('link-161', 'reset', 'link-152');">reset</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> <tt class="py-name">new_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-162', 'keys', 'link-151');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">last_key</tt><tt class="py-op">,</tt> <tt class="py-name">new_key</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> </tt>
-<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"><tt class="py-comment"># http://www.xmpp.org/extensions/xep-0124.html#errorstatus-terminal</tt> </tt>
-<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"><tt id="link-163" class="py-name"><a title="nbxmpp.bosh.bosh_errors" class="py-name" href="#" onclick="return doclink('link-163', 'bosh_errors', 'link-105');">bosh_errors</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> <tt class="py-string">'n/a'</tt><tt class="py-op">:</tt> <tt class="py-string">'none or unknown condition in terminating body stanza'</tt><tt class="py-op">,</tt> </tt>
-<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt class="py-string">'bad-request'</tt><tt class="py-op">:</tt> <tt class="py-string">'The format of an HTTP header or binding element received from the client is unacceptable (e.g., syntax error), or Script Syntax is not supported.'</tt><tt class="py-op">,</tt> </tt>
-<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt class="py-string">'host-gone'</tt><tt class="py-op">:</tt> <tt class="py-string">'The target domain specified in the "to" attribute or the target host or port specified in the "route" attribute is no longer serviced by the connection manager.'</tt><tt class="py-op">,</tt> </tt>
-<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> <tt class="py-string">'host-unknown'</tt><tt class="py-op">:</tt> <tt class="py-string">'The target domain specified in the "to" attribute or the target host or port specified in the "route" attribute is unknown to the connection manager.'</tt><tt class="py-op">,</tt> </tt>
-<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> <tt class="py-string">'improper-addressing'</tt><tt class="py-op">:</tt> <tt class="py-string">'The initialization element lacks a "to" or "route" attribute (or the attribute has no value) but the connection manager requires one.'</tt><tt class="py-op">,</tt> </tt>
-<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> <tt class="py-string">'internal-server-error'</tt><tt class="py-op">:</tt> <tt class="py-string">'The connection manager has experienced an internal error that prevents it from servicing the request.'</tt><tt class="py-op">,</tt> </tt>
-<a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> <tt class="py-string">'item-not-found'</tt><tt class="py-op">:</tt> <tt class="py-string">'(1) "sid" is not valid, (2) "stream" is not valid, (3) "rid" is larger than the upper limit of the expected window, (4) connection manager is unable to resend response, (5) "key" sequence is invalid'</tt><tt class="py-op">,</tt> </tt>
-<a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> <tt class="py-string">'other-request'</tt><tt class="py-op">:</tt> <tt class="py-string">'Another request being processed at the same time as this request caused the session to terminate.'</tt><tt class="py-op">,</tt> </tt>
-<a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"> <tt class="py-string">'policy-violation'</tt><tt class="py-op">:</tt> <tt class="py-string">'The client has broken the session rules (polling too frequently, requesting too frequently, too many simultaneous requests).'</tt><tt class="py-op">,</tt> </tt>
-<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"> <tt class="py-string">'remote-connection-failed'</tt><tt class="py-op">:</tt> <tt class="py-string">'The connection manager was unable to connect to, or unable to connect securely to, or has lost its connection to, the server.'</tt><tt class="py-op">,</tt> </tt>
-<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt class="py-string">'remote-stream-error'</tt><tt class="py-op">:</tt> <tt class="py-string">'Encapsulates an error in the protocol being transported.'</tt><tt class="py-op">,</tt> </tt>
-<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> <tt class="py-string">'see-other-uri'</tt><tt class="py-op">:</tt> <tt class="py-string">'The connection manager does not operate at this URI (e.g., the connection manager accepts only SSL or TLS connections at some https: URI rather than the http: URI requested by the client). The client may try POSTing to the URI in the content of the &lt;uri/&gt; child element.'</tt><tt class="py-op">,</tt> </tt>
-<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"> <tt class="py-string">'system-shutdown'</tt><tt class="py-op">:</tt> <tt class="py-string">'The connection manager is being shut down. All active HTTP sessions are being terminated. No new sessions can be created.'</tt><tt class="py-op">,</tt> </tt>
-<a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt class="py-string">'undefined-condition'</tt><tt class="py-op">:</tt> <tt class="py-string">'The error is not one of those defined herein; the connection manager SHOULD include application-specific information in the content of the &lt;body/&gt; wrapper.'</tt> </tt>
-<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"><tt class="py-op">}</tt> </tt>
-<a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<a name="AckChecker.get_rid"></a><div id="AckChecker.get_rid-def"><a name="L533"></a><tt class="py-lineno">533</tt> <a class="py-toggle" href="#" id="AckChecker.get_rid-toggle" onclick="return toggle('AckChecker.get_rid');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.AckChecker-class.html#get_rid">get_rid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AckChecker.get_rid-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AckChecker.get_rid-expanded"><a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rid</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
+<a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rid</tt> </tt>
+</div></div><a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> </tt>
+<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"> </tt>
+<a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"> </tt>
+<a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"> </tt>
+<a name="KeyStack"></a><div id="KeyStack-def"><a name="L541"></a><tt class="py-lineno">541</tt> <a class="py-toggle" href="#" id="KeyStack-toggle" onclick="return toggle('KeyStack');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.bosh.KeyStack-class.html">KeyStack</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="KeyStack-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="KeyStack-expanded"><a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"><tt class="py-docstring"> Class implementing key sequences for BOSH messages</tt> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="KeyStack.__init__"></a><div id="KeyStack.__init__-def"><a name="L545"></a><tt class="py-lineno">545</tt> <a class="py-toggle" href="#" id="KeyStack.__init__-toggle" onclick="return toggle('KeyStack.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.KeyStack-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">count</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="KeyStack.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KeyStack.__init__-expanded"><a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">count</tt> <tt class="py-op">=</tt> <tt class="py-name">count</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.keys()=nbxmpp.roster_nb.NonBlockingRoster-class.html#keys"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-151', 'keys', 'link-151');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name" targets="Method nbxmpp.bosh.KeyStack.reset()=nbxmpp.bosh.KeyStack-class.html#reset"><a title="nbxmpp.bosh.KeyStack.reset" class="py-name" href="#" onclick="return doclink('link-152', 'reset', 'link-152');">reset</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">first_call</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"> </tt>
+<a name="KeyStack.reset"></a><div id="KeyStack.reset-def"><a name="L551"></a><tt class="py-lineno">551</tt> <a class="py-toggle" href="#" id="KeyStack.reset-toggle" onclick="return toggle('KeyStack.reset');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.KeyStack-class.html#reset">reset</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="KeyStack.reset-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KeyStack.reset-expanded"><a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"> <tt class="py-name">seed</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-153" class="py-name"><a title="nbxmpp.bosh.get_rand_number" class="py-name" href="#" onclick="return doclink('link-153', 'get_rand_number', 'link-147');">get_rand_number</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-154', 'keys', 'link-151');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">sha1</tt><tt class="py-op">(</tt><tt class="py-name">seed</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">hexdigest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">count</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-name">curr_seed</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-155', 'keys', 'link-151');">keys</a></tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-156', 'keys', 'link-151');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">sha1</tt><tt class="py-op">(</tt><tt class="py-name">curr_seed</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">hexdigest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> </tt>
+<a name="KeyStack.get"></a><div id="KeyStack.get-def"><a name="L558"></a><tt class="py-lineno">558</tt> <a class="py-toggle" href="#" id="KeyStack.get-toggle" onclick="return toggle('KeyStack.get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.bosh.KeyStack-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="KeyStack.get-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KeyStack.get-expanded"><a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">first_call</tt><tt class="py-op">:</tt> </tt>
+<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">first_call</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-157', 'keys', 'link-151');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> </tt>
+<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-158', 'keys', 'link-151');">keys</a></tt><tt class="py-op">)</tt><tt class="py-op">&gt;</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-159', 'keys', 'link-151');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> <tt class="py-name">last_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-160', 'keys', 'link-151');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="nbxmpp.bosh.KeyStack.reset" class="py-name" href="#" onclick="return doclink('link-161', 'reset', 'link-152');">reset</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt class="py-name">new_key</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-162', 'keys', 'link-151');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">last_key</tt><tt class="py-op">,</tt> <tt class="py-name">new_key</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> </tt>
+<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"><tt class="py-comment"># http://www.xmpp.org/extensions/xep-0124.html#errorstatus-terminal</tt> </tt>
+<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"><tt id="link-163" class="py-name"><a title="nbxmpp.bosh.bosh_errors" class="py-name" href="#" onclick="return doclink('link-163', 'bosh_errors', 'link-105');">bosh_errors</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> <tt class="py-string">'n/a'</tt><tt class="py-op">:</tt> <tt class="py-string">'none or unknown condition in terminating body stanza'</tt><tt class="py-op">,</tt> </tt>
+<a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> <tt class="py-string">'bad-request'</tt><tt class="py-op">:</tt> <tt class="py-string">'The format of an HTTP header or binding element received from the client is unacceptable (e.g., syntax error), or Script Syntax is not supported.'</tt><tt class="py-op">,</tt> </tt>
+<a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"> <tt class="py-string">'host-gone'</tt><tt class="py-op">:</tt> <tt class="py-string">'The target domain specified in the "to" attribute or the target host or port specified in the "route" attribute is no longer serviced by the connection manager.'</tt><tt class="py-op">,</tt> </tt>
+<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"> <tt class="py-string">'host-unknown'</tt><tt class="py-op">:</tt> <tt class="py-string">'The target domain specified in the "to" attribute or the target host or port specified in the "route" attribute is unknown to the connection manager.'</tt><tt class="py-op">,</tt> </tt>
+<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt class="py-string">'improper-addressing'</tt><tt class="py-op">:</tt> <tt class="py-string">'The initialization element lacks a "to" or "route" attribute (or the attribute has no value) but the connection manager requires one.'</tt><tt class="py-op">,</tt> </tt>
+<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> <tt class="py-string">'internal-server-error'</tt><tt class="py-op">:</tt> <tt class="py-string">'The connection manager has experienced an internal error that prevents it from servicing the request.'</tt><tt class="py-op">,</tt> </tt>
+<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"> <tt class="py-string">'item-not-found'</tt><tt class="py-op">:</tt> <tt class="py-string">'(1) "sid" is not valid, (2) "stream" is not valid, (3) "rid" is larger than the upper limit of the expected window, (4) connection manager is unable to resend response, (5) "key" sequence is invalid'</tt><tt class="py-op">,</tt> </tt>
+<a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt class="py-string">'other-request'</tt><tt class="py-op">:</tt> <tt class="py-string">'Another request being processed at the same time as this request caused the session to terminate.'</tt><tt class="py-op">,</tt> </tt>
+<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"> <tt class="py-string">'policy-violation'</tt><tt class="py-op">:</tt> <tt class="py-string">'The client has broken the session rules (polling too frequently, requesting too frequently, too many simultaneous requests).'</tt><tt class="py-op">,</tt> </tt>
+<a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"> <tt class="py-string">'remote-connection-failed'</tt><tt class="py-op">:</tt> <tt class="py-string">'The connection manager was unable to connect to, or unable to connect securely to, or has lost its connection to, the server.'</tt><tt class="py-op">,</tt> </tt>
+<a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"> <tt class="py-string">'remote-stream-error'</tt><tt class="py-op">:</tt> <tt class="py-string">'Encapsulates an error in the protocol being transported.'</tt><tt class="py-op">,</tt> </tt>
+<a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> <tt class="py-string">'see-other-uri'</tt><tt class="py-op">:</tt> <tt class="py-string">'The connection manager does not operate at this URI (e.g., the connection manager accepts only SSL or TLS connections at some https: URI rather than the http: URI requested by the client). The client may try POSTing to the URI in the content of the &lt;uri/&gt; child element.'</tt><tt class="py-op">,</tt> </tt>
+<a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"> <tt class="py-string">'system-shutdown'</tt><tt class="py-op">:</tt> <tt class="py-string">'The connection manager is being shut down. All active HTTP sessions are being terminated. No new sessions can be created.'</tt><tt class="py-op">,</tt> </tt>
+<a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> <tt class="py-string">'undefined-condition'</tt><tt class="py-op">:</tt> <tt class="py-string">'The error is not one of those defined herein; the connection manager SHOULD include application-specific information in the content of the &lt;body/&gt; wrapper.'</tt> </tt>
+<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"><tt class="py-op">}</tt> </tt>
+<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -888,7 +894,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:09 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.bosh.AckChecker-class.html b/doc/apidocs/nbxmpp.bosh.AckChecker-class.html
index 0d6309e..8298843 100644
--- a/doc/apidocs/nbxmpp.bosh.AckChecker-class.html
+++ b/doc/apidocs/nbxmpp.bosh.AckChecker-class.html
@@ -317,7 +317,7 @@ BOSH messages
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.bosh.KeyStack-class.html b/doc/apidocs/nbxmpp.bosh.KeyStack-class.html
index 609d0b5..d82a935 100644
--- a/doc/apidocs/nbxmpp.bosh.KeyStack-class.html
+++ b/doc/apidocs/nbxmpp.bosh.KeyStack-class.html
@@ -240,7 +240,7 @@ Class implementing key sequences for BOSH messages
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.bosh.NonBlockingBOSH-class.html b/doc/apidocs/nbxmpp.bosh.NonBlockingBOSH-class.html
index 0caef5d..434cef2 100644
--- a/doc/apidocs/nbxmpp.bosh.NonBlockingBOSH-class.html
+++ b/doc/apidocs/nbxmpp.bosh.NonBlockingBOSH-class.html
@@ -64,39 +64,39 @@
<h1 class="epydoc">Class NonBlockingBOSH</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.bosh-pysrc.html#NonBlockingBOSH">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_b" name="uml_class_diagram_for_nbxmpp_b">
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#__init__" title="Each trasport class can have different constructor but it has to have at least all the arguments of NonBlockingTransport constructor" alt="" coords="17,455,787,473"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#connect" title="Creates and connects transport to server and port defined in conn_5tuple which should be item from list returned from getaddrinfo" alt="" coords="17,473,787,492"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#set_timeout" title="nbxmpp.bosh.NonBlockingBOSH.set_timeout" alt="" coords="17,492,787,511"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_http_request_possible" title="Called when HTTP request it&#39;s possible to send a HTTP request. It can be when socket is connected or when HTTP response arrived" alt="" coords="17,511,787,529"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#get_socket_in" title="Get sockets in desired state" alt="" coords="17,529,787,548"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#get_free_socket" title="Select and returns socket eligible for sending a data to" alt="" coords="17,548,787,567"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#send_BOSH" title="Tries to send a stanza in payload by appeding it to a buffer and plugging a free socket for writing." alt="" coords="17,567,787,585"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#plug_socket" title="nbxmpp.bosh.NonBlockingBOSH.plug_socket" alt="" coords="17,585,787,604"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#build_stanza" title="Build a BOSH body tag from data in buffers and adds key, rid and ack attributes to it" alt="" coords="17,604,787,623"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_bosh_wait_timeout" title="nbxmpp.bosh.NonBlockingBOSH.on_bosh_wait_timeout" alt="" coords="17,623,787,641"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#renew_bosh_wait_timeout" title="nbxmpp.bosh.NonBlockingBOSH.renew_bosh_wait_timeout" alt="" coords="17,641,787,660"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#remove_bosh_wait_timeout" title="nbxmpp.bosh.NonBlockingBOSH.remove_bosh_wait_timeout" alt="" coords="17,660,787,679"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_persistent_fallback" title="Called from underlying transport when server closes TCP connection" alt="" coords="17,679,787,697"/>
-<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#disconnect" title="nbxmpp.bosh.NonBlockingBOSH.disconnect" alt="" coords="17,716,787,735"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#__init__" title="Each trasport class can have different constructor but it has to have at least all the arguments of NonBlockingTransport constructor" alt="" coords="17,455,785,473"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#connect" title="Creates and connects transport to server and port defined in conn_5tuple which should be item from list returned from getaddrinfo" alt="" coords="17,473,785,492"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#set_timeout" title="nbxmpp.bosh.NonBlockingBOSH.set_timeout" alt="" coords="17,492,785,511"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_http_request_possible" title="Called when HTTP request it&#39;s possible to send a HTTP request. It can be when socket is connected or when HTTP response arrived" alt="" coords="17,511,785,529"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#get_socket_in" title="Get sockets in desired state" alt="" coords="17,529,785,548"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#get_free_socket" title="Select and returns socket eligible for sending a data to" alt="" coords="17,548,785,567"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#send_BOSH" title="Tries to send a stanza in payload by appeding it to a buffer and plugging a free socket for writing." alt="" coords="17,567,785,585"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#plug_socket" title="nbxmpp.bosh.NonBlockingBOSH.plug_socket" alt="" coords="17,585,785,604"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#build_stanza" title="Build a BOSH body tag from data in buffers and adds key, rid and ack attributes to it" alt="" coords="17,604,785,623"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_bosh_wait_timeout" title="nbxmpp.bosh.NonBlockingBOSH.on_bosh_wait_timeout" alt="" coords="17,623,785,641"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#renew_bosh_wait_timeout" title="nbxmpp.bosh.NonBlockingBOSH.renew_bosh_wait_timeout" alt="" coords="17,641,785,660"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#remove_bosh_wait_timeout" title="nbxmpp.bosh.NonBlockingBOSH.remove_bosh_wait_timeout" alt="" coords="17,660,785,679"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#on_persistent_fallback" title="Called from underlying transport when server closes TCP connection" alt="" coords="17,679,785,697"/>
+<area shape="rect" id="node6" href="nbxmpp.bosh.NonBlockingBOSH-class.html#disconnect" title="nbxmpp.bosh.NonBlockingBOSH.disconnect" alt="" coords="17,716,785,735"/>
<area shape="rect" id="node1" href="nbxmpp.bosh.NonBlockingBOSH-class.html" title="nbxmpp.bosh.NonBlockingBOSH" alt="" coords="5,422,797,741"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#plugin" title="nbxmpp.transports_nb.NonBlockingTransport.plugin" alt="" coords="244,153,561,172"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#plugout" title="nbxmpp.transports_nb.NonBlockingTransport.plugout" alt="" coords="244,172,561,191"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_state" title="nbxmpp.transports_nb.NonBlockingTransport.set_state" alt="" coords="244,191,561,209"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#get_state" title="nbxmpp.transports_nb.NonBlockingTransport.get_state" alt="" coords="244,209,561,228"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#read_timeout" title="Called when there&#39;s no response from server in defined timeout" alt="" coords="244,228,561,247"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#read_timeout2" title="called when there&#39;s no response from server in defined timeout" alt="" coords="244,247,561,265"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#renew_send_timeout" title="nbxmpp.transports_nb.NonBlockingTransport.renew_send_timeout" alt="" coords="244,265,561,284"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#renew_send_timeout2" title="nbxmpp.transports_nb.NonBlockingTransport.renew_send_timeout2" alt="" coords="244,284,561,303"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_timeout2" title="nbxmpp.transports_nb.NonBlockingTransport.set_timeout2" alt="" coords="244,303,561,321"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#get_fd" title="nbxmpp.transports_nb.NonBlockingTransport.get_fd" alt="" coords="244,321,561,340"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#remove_timeout" title="nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" alt="" coords="244,340,561,359"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_send_timeout" title="nbxmpp.transports_nb.NonBlockingTransport.set_send_timeout" alt="" coords="244,359,561,377"/>
-<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_send_timeout2" title="nbxmpp.transports_nb.NonBlockingTransport.set_send_timeout2" alt="" coords="244,377,561,396"/>
-<area shape="rect" id="node2" href="nbxmpp.transports_nb.NonBlockingTransport-class.html" title="Abstract class representing a transport" alt="" coords="232,121,573,402"/>
-<area shape="rect" id="node8" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="289,39,515,57"/>
-<area shape="rect" id="node8" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="289,57,515,76"/>
-<area shape="rect" id="node8" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="289,76,515,95"/>
-<area shape="rect" id="node3" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="277,6,525,101"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#plugin" title="nbxmpp.transports_nb.NonBlockingTransport.plugin" alt="" coords="243,153,560,172"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#plugout" title="nbxmpp.transports_nb.NonBlockingTransport.plugout" alt="" coords="243,172,560,191"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_state" title="nbxmpp.transports_nb.NonBlockingTransport.set_state" alt="" coords="243,191,560,209"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#get_state" title="nbxmpp.transports_nb.NonBlockingTransport.get_state" alt="" coords="243,209,560,228"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#read_timeout" title="Called when there&#39;s no response from server in defined timeout" alt="" coords="243,228,560,247"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#read_timeout2" title="called when there&#39;s no response from server in defined timeout" alt="" coords="243,247,560,265"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#renew_send_timeout" title="nbxmpp.transports_nb.NonBlockingTransport.renew_send_timeout" alt="" coords="243,265,560,284"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#renew_send_timeout2" title="nbxmpp.transports_nb.NonBlockingTransport.renew_send_timeout2" alt="" coords="243,284,560,303"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_timeout2" title="nbxmpp.transports_nb.NonBlockingTransport.set_timeout2" alt="" coords="243,303,560,321"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#get_fd" title="nbxmpp.transports_nb.NonBlockingTransport.get_fd" alt="" coords="243,321,560,340"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#remove_timeout" title="nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" alt="" coords="243,340,560,359"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_send_timeout" title="nbxmpp.transports_nb.NonBlockingTransport.set_send_timeout" alt="" coords="243,359,560,377"/>
+<area shape="rect" id="node7" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_send_timeout2" title="nbxmpp.transports_nb.NonBlockingTransport.set_send_timeout2" alt="" coords="243,377,560,396"/>
+<area shape="rect" id="node2" href="nbxmpp.transports_nb.NonBlockingTransport-class.html" title="Abstract class representing a transport" alt="" coords="231,121,572,402"/>
+<area shape="rect" id="node8" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="288,39,513,57"/>
+<area shape="rect" id="node8" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="288,57,513,76"/>
+<area shape="rect" id="node8" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="288,76,513,95"/>
+<area shape="rect" id="node3" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="276,6,524,101"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_b.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_b" ismap="ismap" class="graph-without-title" />
</center>
@@ -1276,7 +1276,7 @@ itself.</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.c14n-module.html b/doc/apidocs/nbxmpp.c14n-module.html
index d7c1fd3..e19c754 100644
--- a/doc/apidocs/nbxmpp.c14n-module.html
+++ b/doc/apidocs/nbxmpp.c14n-module.html
@@ -303,7 +303,7 @@ XML canonicalisation methods (for XEP-0116)
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.c14n-pysrc.html b/doc/apidocs/nbxmpp.c14n-pysrc.html
index 4bcfe62..688e1b4 100644
--- a/doc/apidocs/nbxmpp.c14n-pysrc.html
+++ b/doc/apidocs/nbxmpp.c14n-pysrc.html
@@ -88,34 +88,32 @@
<a name="L25"></a><tt class="py-lineno">25</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Module nbxmpp.simplexml=nbxmpp.simplexml-module.html"><a title="nbxmpp.simplexml" class="py-name" href="#" onclick="return doclink('link-0', 'simplexml', 'link-0');">simplexml</a></tt> <tt class="py-keyword">import</tt> <tt id="link-1" class="py-name" targets="Function nbxmpp.simplexml.ustr()=nbxmpp.simplexml-module.html#ustr"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-1', 'ustr', 'link-1');">ustr</a></tt> </tt>
<a name="L26"></a><tt class="py-lineno">26</tt> <tt class="py-line"> </tt>
<a name="c14n"></a><div id="c14n-def"><a name="L27"></a><tt class="py-lineno">27</tt> <a class="py-toggle" href="#" id="c14n-toggle" onclick="return toggle('c14n');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.c14n-module.html#c14n">c14n</a><tt class="py-op">(</tt><tt class="py-param">node</tt><tt class="py-op">,</tt> <tt class="py-param">is_buggy</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="c14n-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="c14n-expanded"><a name="L28"></a><tt class="py-lineno">28</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-op">+</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Variable nbxmpp.name=nbxmpp-module.html#name,Variable nbxmpp.protocol.name=nbxmpp.protocol-module.html#name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-2', 'name', 'link-2');">name</a></tt> </tt>
+</div><div id="c14n-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="c14n-expanded"><a name="L28"></a><tt class="py-lineno">28</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-op">+</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> </tt>
<a name="L29"></a><tt class="py-lineno">29</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">:</tt> </tt>
<a name="L30"></a><tt class="py-lineno">30</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-keyword">or</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt> <tt class="py-op">!=</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">:</tt> </tt>
<a name="L31"></a><tt class="py-lineno">31</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">' xmlns="%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt> </tt>
<a name="L32"></a><tt class="py-lineno">32</tt> <tt class="py-line"> </tt>
-<a name="L33"></a><tt class="py-lineno">33</tt> <tt class="py-line"> <tt class="py-name">sorted_attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.keys()=nbxmpp.roster_nb.NonBlockingRoster-class.html#keys"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-3', 'keys', 'link-3');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt> <tt class="py-line"> <tt class="py-name">sorted_attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.keys()=nbxmpp.roster_nb.NonBlockingRoster-class.html#keys"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-2', 'keys', 'link-2');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L34"></a><tt class="py-lineno">34</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted_attrs</tt><tt class="py-op">:</tt> </tt>
<a name="L35"></a><tt class="py-lineno">35</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">is_buggy</tt> <tt class="py-keyword">and</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'xmlns'</tt><tt class="py-op">:</tt> </tt>
<a name="L36"></a><tt class="py-lineno">36</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L37"></a><tt class="py-lineno">37</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt id="link-4" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-4', 'ustr', 'link-1');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt id="link-3" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-3', 'ustr', 'link-1');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L38"></a><tt class="py-lineno">38</tt> <tt class="py-line"> <tt class="py-comment"># like XMLescape() but with whitespace and without &amp;gt;</tt> </tt>
-<a name="L39"></a><tt class="py-lineno">39</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">' %s="%s"'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-5" class="py-name" targets="Function nbxmpp.c14n.normalise_attr()=nbxmpp.c14n-module.html#normalise_attr"><a title="nbxmpp.c14n.normalise_attr" class="py-name" href="#" onclick="return doclink('link-5', 'normalise_attr', 'link-5');">normalise_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">' %s="%s"'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-4" class="py-name" targets="Function nbxmpp.c14n.normalise_attr()=nbxmpp.c14n-module.html#normalise_attr"><a title="nbxmpp.c14n.normalise_attr" class="py-name" href="#" onclick="return doclink('link-4', 'normalise_attr', 'link-4');">normalise_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L40"></a><tt class="py-lineno">40</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">"&gt;"</tt> </tt>
<a name="L41"></a><tt class="py-lineno">41</tt> <tt class="py-line"> <tt class="py-name">cnt</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L42"></a><tt class="py-lineno">42</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">:</tt> </tt>
<a name="L43"></a><tt class="py-lineno">43</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">a</tt> <tt class="py-keyword">in</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">:</tt> </tt>
<a name="L44"></a><tt class="py-lineno">44</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">cnt</tt><tt class="py-op">:</tt> </tt>
-<a name="L45"></a><tt class="py-lineno">45</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt id="link-6" class="py-name" targets="Function nbxmpp.c14n.normalise_text()=nbxmpp.c14n-module.html#normalise_text"><a title="nbxmpp.c14n.normalise_text" class="py-name" href="#" onclick="return doclink('link-6', 'normalise_text', 'link-6');">normalise_text</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">cnt</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L46"></a><tt class="py-lineno">46</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt id="link-7" class="py-name" targets="Module nbxmpp.c14n=nbxmpp.c14n-module.html,Function nbxmpp.c14n.c14n()=nbxmpp.c14n-module.html#c14n"><a title="nbxmpp.c14n
-nbxmpp.c14n.c14n" class="py-name" href="#" onclick="return doclink('link-7', 'c14n', 'link-7');">c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">is_buggy</tt><tt class="py-op">)</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt id="link-5" class="py-name" targets="Function nbxmpp.c14n.normalise_text()=nbxmpp.c14n-module.html#normalise_text"><a title="nbxmpp.c14n.normalise_text" class="py-name" href="#" onclick="return doclink('link-5', 'normalise_text', 'link-5');">normalise_text</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">cnt</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt id="link-6" class="py-name" targets="Module nbxmpp.c14n=nbxmpp.c14n-module.html,Function nbxmpp.c14n.c14n()=nbxmpp.c14n-module.html#c14n"><a title="nbxmpp.c14n
+nbxmpp.c14n.c14n" class="py-name" href="#" onclick="return doclink('link-6', 'c14n', 'link-6');">c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">is_buggy</tt><tt class="py-op">)</tt> </tt>
<a name="L47"></a><tt class="py-lineno">47</tt> <tt class="py-line"> <tt class="py-name">cnt</tt><tt class="py-op">=</tt><tt class="py-name">cnt</tt><tt class="py-op">+</tt><tt class="py-number">1</tt> </tt>
-<a name="L48"></a><tt class="py-lineno">48</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">cnt</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt id="link-8" class="py-name"><a title="nbxmpp.c14n.normalise_text" class="py-name" href="#" onclick="return doclink('link-8', 'normalise_text', 'link-6');">normalise_text</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">cnt</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">48</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">cnt</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt id="link-7" class="py-name"><a title="nbxmpp.c14n.normalise_text" class="py-name" href="#" onclick="return doclink('link-7', 'normalise_text', 'link-5');">normalise_text</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">cnt</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L49"></a><tt class="py-lineno">49</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt> <tt class="py-keyword">and</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L50"></a><tt class="py-lineno">50</tt> <tt class="py-line"> <tt class="py-name">s</tt><tt class="py-op">=</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-string">' /&gt;'</tt> </tt>
<a name="L51"></a><tt class="py-lineno">51</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L52"></a><tt class="py-lineno">52</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">"&lt;/"</tt> <tt class="py-op">+</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-9', 'name', 'link-2');">name</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"&gt;"</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">"&lt;/"</tt> <tt class="py-op">+</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">+</tt> <tt class="py-string">"&gt;"</tt> </tt>
<a name="L53"></a><tt class="py-lineno">53</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
</div><a name="L54"></a><tt class="py-lineno">54</tt> <tt class="py-line"> </tt>
<a name="normalise_attr"></a><div id="normalise_attr-def"><a name="L55"></a><tt class="py-lineno">55</tt> <a class="py-toggle" href="#" id="normalise_attr-toggle" onclick="return toggle('normalise_attr');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.c14n-module.html#normalise_attr">normalise_attr</a><tt class="py-op">(</tt><tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -161,7 +159,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.client_nb-module.html b/doc/apidocs/nbxmpp.client_nb-module.html
index 89df90d..2fd58a1 100644
--- a/doc/apidocs/nbxmpp.client_nb-module.html
+++ b/doc/apidocs/nbxmpp.client_nb-module.html
@@ -221,7 +221,7 @@ logging.getLogger('nbxmpp.client_nb')
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.client_nb-pysrc.html b/doc/apidocs/nbxmpp.client_nb-pysrc.html
index f93a79b..676ff3d 100644
--- a/doc/apidocs/nbxmpp.client_nb-pysrc.html
+++ b/doc/apidocs/nbxmpp.client_nb-pysrc.html
@@ -141,22 +141,23 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_connect_failure</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">got_features</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream_started</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnecting</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">protocol_type</tt> <tt class="py-op">=</tt> <tt class="py-string">'XMPP'</tt> </tt>
-</div><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.disconnect"></a><div id="NonBlockingClient.disconnect-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="NonBlockingClient.disconnect-toggle" onclick="return toggle('NonBlockingClient.disconnect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#disconnect">disconnect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.disconnect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.disconnect-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> Called on disconnection - disconnect callback is picked based on state of</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> the client.</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-comment"># to avoid recursive calls</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ip_addresses</tt><tt class="py-op">:</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._try_next_ip()=nbxmpp.client_nb.NonBlockingClient-class.html#_try_next_ip"><a title="nbxmpp.client_nb.NonBlockingClient._try_next_ip" class="py-name" href="#" onclick="return doclink('link-13', '_try_next_ip', 'link-13');">_try_next_ip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnecting</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt id="link-14" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">got_see_other_host</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream_started</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnecting</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">protocol_type</tt> <tt class="py-op">=</tt> <tt class="py-string">'XMPP'</tt> </tt>
+</div><a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.disconnect"></a><div id="NonBlockingClient.disconnect-def"><a name="L75"></a><tt class="py-lineno"> 75</tt> <a class="py-toggle" href="#" id="NonBlockingClient.disconnect-toggle" onclick="return toggle('NonBlockingClient.disconnect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#disconnect">disconnect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.disconnect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.disconnect-expanded"><a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> Called on disconnection - disconnect callback is picked based on state of</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"> the client.</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-comment"># to avoid recursive calls</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ip_addresses</tt><tt class="py-op">:</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._try_next_ip()=nbxmpp.client_nb.NonBlockingClient-class.html#_try_next_ip"><a title="nbxmpp.client_nb.NonBlockingClient._try_next_ip" class="py-name" href="#" onclick="return doclink('link-13', '_try_next_ip', 'link-13');">_try_next_ip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnecting</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt id="link-14" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -168,34 +169,41 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-14', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Disconnecting NBClient: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">message</tt><tt class="py-op">)</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingRoster'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Class nbxmpp.roster_nb.NonBlockingRoster=nbxmpp.roster_nb.NonBlockingRoster-class.html"><a title="nbxmpp.roster_nb.NonBlockingRoster" class="py-name" href="#" onclick="return doclink('link-15', 'NonBlockingRoster', 'link-15');">NonBlockingRoster</a></tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method nbxmpp.plugin.PlugIn.PlugOut()=nbxmpp.plugin.PlugIn-class.html#PlugOut"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-16', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingBind'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Class nbxmpp.auth_nb.NonBlockingBind=nbxmpp.auth_nb.NonBlockingBind-class.html,Method nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind()=nbxmpp.auth_nb.NonBlockingBind-class.html#NonBlockingBind"><a title="nbxmpp.auth_nb.NonBlockingBind
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-name">sasl_failed</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingRoster'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Class nbxmpp.roster_nb.NonBlockingRoster=nbxmpp.roster_nb.NonBlockingRoster-class.html"><a title="nbxmpp.roster_nb.NonBlockingRoster" class="py-name" href="#" onclick="return doclink('link-15', 'NonBlockingRoster', 'link-15');">NonBlockingRoster</a></tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method nbxmpp.plugin.PlugIn.PlugOut()=nbxmpp.plugin.PlugIn-class.html#PlugOut"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-16', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingBind'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Class nbxmpp.auth_nb.NonBlockingBind=nbxmpp.auth_nb.NonBlockingBind-class.html,Method nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind()=nbxmpp.auth_nb.NonBlockingBind-class.html#NonBlockingBind"><a title="nbxmpp.auth_nb.NonBlockingBind
nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind" class="py-name" href="#" onclick="return doclink('link-17', 'NonBlockingBind', 'link-17');">NonBlockingBind</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-18', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingNonSASL'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Class nbxmpp.auth_nb.NonBlockingNonSASL=nbxmpp.auth_nb.NonBlockingNonSASL-class.html"><a title="nbxmpp.auth_nb.NonBlockingNonSASL" class="py-name" href="#" onclick="return doclink('link-19', 'NonBlockingNonSASL', 'link-19');">NonBlockingNonSASL</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-20', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'SASL'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Class nbxmpp.auth_nb.SASL=nbxmpp.auth_nb.SASL-class.html"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-21', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-22', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingTCP'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Class nbxmpp.transports_nb.NonBlockingTCP=nbxmpp.transports_nb.NonBlockingTCP-class.html"><a title="nbxmpp.transports_nb.NonBlockingTCP" class="py-name" href="#" onclick="return doclink('link-23', 'NonBlockingTCP', 'link-23');">NonBlockingTCP</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-24', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingHTTP'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Class nbxmpp.transports_nb.NonBlockingHTTP=nbxmpp.transports_nb.NonBlockingHTTP-class.html"><a title="nbxmpp.transports_nb.NonBlockingHTTP" class="py-name" href="#" onclick="return doclink('link-25', 'NonBlockingHTTP', 'link-25');">NonBlockingHTTP</a></tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-26', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingBOSH'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Class nbxmpp.bosh.NonBlockingBOSH=nbxmpp.bosh.NonBlockingBOSH-class.html"><a title="nbxmpp.bosh.NonBlockingBOSH" class="py-name" href="#" onclick="return doclink('link-27', 'NonBlockingBOSH', 'link-27');">NonBlockingBOSH</a></tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-28', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: we never unplug dispatcher, only on next connect</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-comment"># See _xmpp_connect_machine and SASLHandler</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">connected</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">stream_started</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream_started</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream_started</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnecting</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingNonSASL'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Class nbxmpp.auth_nb.NonBlockingNonSASL=nbxmpp.auth_nb.NonBlockingNonSASL-class.html"><a title="nbxmpp.auth_nb.NonBlockingNonSASL" class="py-name" href="#" onclick="return doclink('link-19', 'NonBlockingNonSASL', 'link-19');">NonBlockingNonSASL</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-20', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'SASL'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'startsasl'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Class nbxmpp.auth_nb.SASL=nbxmpp.auth_nb.SASL-class.html"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-21', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt> <tt class="py-keyword">and</tt> \ </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-22', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt class="py-name">startsasl</tt> <tt class="py-op">==</tt> <tt class="py-string">'failure-in-process'</tt><tt class="py-op">:</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">sasl_failed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-23', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt class="py-name">startsasl</tt> <tt class="py-op">=</tt> <tt class="py-string">'failure'</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_start_sasl()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_start_sasl"><a title="nbxmpp.client_nb.NonBlockingClient._on_start_sasl" class="py-name" href="#" onclick="return doclink('link-24', '_on_start_sasl', 'link-24');">_on_start_sasl</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-25', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-26', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingTCP'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Class nbxmpp.transports_nb.NonBlockingTCP=nbxmpp.transports_nb.NonBlockingTCP-class.html"><a title="nbxmpp.transports_nb.NonBlockingTCP" class="py-name" href="#" onclick="return doclink('link-27', 'NonBlockingTCP', 'link-27');">NonBlockingTCP</a></tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-28', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingHTTP'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Class nbxmpp.transports_nb.NonBlockingHTTP=nbxmpp.transports_nb.NonBlockingHTTP-class.html"><a title="nbxmpp.transports_nb.NonBlockingHTTP" class="py-name" href="#" onclick="return doclink('link-29', 'NonBlockingHTTP', 'link-29');">NonBlockingHTTP</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-30', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingBOSH'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Class nbxmpp.bosh.NonBlockingBOSH=nbxmpp.bosh.NonBlockingBOSH-class.html"><a title="nbxmpp.bosh.NonBlockingBOSH" class="py-name" href="#" onclick="return doclink('link-31', 'NonBlockingBOSH', 'link-31');">NonBlockingBOSH</a></tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-32', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: we never unplug dispatcher, only on next connect</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-comment"># See _xmpp_connect_machine and SASLHandler</tt> </tt>
<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt id="link-29" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">connected</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">stream_started</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream_started</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream_started</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnecting</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt id="link-33" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -206,13 +214,15 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-29', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Client disconnected..'</tt><tt class="py-op">)</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">connected</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-comment"># if we're disconnecting before connection to XMPP sever is opened,</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-comment"># we don't call disconnect handlers but on_connect_failure callback</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy</tt><tt class="py-op">:</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-comment"># with proxy, we have different failure callback</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt id="link-30" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-33', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Client disconnected..'</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-comment"># Don't call any callback when it's a SASL failure.</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-comment"># SASL handler is already called</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">connected</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">sasl_failed</tt><tt class="py-op">:</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-comment"># if we're disconnecting before connection to XMPP sever is opened,</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-comment"># we don't call disconnect handlers but on_connect_failure callback</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy</tt><tt class="py-op">:</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-comment"># with proxy, we have different failure callback</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt id="link-34" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -223,10 +233,10 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-30', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'calling on_proxy_failure cb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_proxy_failure</tt><tt class="py-op">(</tt><tt class="py-name">reason</tt><tt class="py-op">=</tt><tt class="py-name">message</tt><tt class="py-op">)</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt id="link-31" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-34', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'calling on_proxy_failure cb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_proxy_failure</tt><tt class="py-op">(</tt><tt class="py-name">reason</tt><tt class="py-op">=</tt><tt class="py-name">message</tt><tt class="py-op">)</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt id="link-35" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -237,16 +247,16 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-31', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'calling on_connect_failure cb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_connect_failure</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-comment"># we are connected to XMPP server</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">stream_started</tt><tt class="py-op">:</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-comment"># if error occur before XML stream was opened, e.g. no response on</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-comment"># init request, we call the on_connect_failure callback because</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-comment"># proper connection is not established yet and it's not a proxy</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-comment"># issue</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt id="link-32" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-35', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'calling on_connect_failure cb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_connect_failure</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">sasl_failed</tt><tt class="py-op">:</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-comment"># we are connected to XMPP server</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">stream_started</tt><tt class="py-op">:</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-comment"># if error occur before XML stream was opened, e.g. no response on</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-comment"># init request, we call the on_connect_failure callback because</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-comment"># proper connection is not established yet and it's not a proxy</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-comment"># issue</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt id="link-36" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -257,13 +267,13 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-32', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'calling on_connect_failure cb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_caller</tt><tt class="py-op">.</tt><tt class="py-name">streamError</tt> <tt class="py-op">=</tt> <tt class="py-name">message</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_connect_failure</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-comment"># with open connection, we are calling the disconnect handlers</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">reversed</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnect_handlers</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt id="link-33" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-36', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'calling on_connect_failure cb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_caller</tt><tt class="py-op">.</tt><tt class="py-name">streamError</tt> <tt class="py-op">=</tt> <tt class="py-name">message</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_connect_failure</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-comment"># with open connection, we are calling the disconnect handlers</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">reversed</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnect_handlers</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt id="link-37" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -274,139 +284,147 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-33', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Calling disconnect handler %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-name">i</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnecting</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.connect"></a><div id="NonBlockingClient.connect-def"><a name="L140"></a><tt class="py-lineno">140</tt> <a class="py-toggle" href="#" id="NonBlockingClient.connect-toggle" onclick="return toggle('NonBlockingClient.connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#connect">connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">on_connect</tt><tt class="py-op">,</tt> <tt class="py-param">on_connect_failure</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">=</tt><tt class="py-number">5222</tt><tt class="py-op">,</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-param">on_proxy_failure</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">proxy</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">secure_tuple</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'plain'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.connect-expanded"><a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"> Open XMPP connection (open XML streams in both directions)</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-docstring"> :param on_connect: called after stream is successfully opened</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-docstring"> :param on_connect_failure: called when error occures during connection</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"><tt class="py-docstring"> :param hostname: hostname of XMPP server from SRV request</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"> :param port: port number of XMPP server</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"> :param on_proxy_failure: called if error occurres during TCP connection to</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> proxy server or during proxy connecting process</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> :param proxy: dictionary with proxy data. It should contain at least</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> values for keys 'host' and 'port' - connection details for proxy serve</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> and optionally keys 'user' and 'pass' as proxy credentials</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> :param secure_tuple: tuple of (desired connection type, cacerts, mycerts)</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> connection type can be 'ssl' - TLS established after TCP connection,</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> 'tls' - TLS established after negotiation with starttls, or 'plain'.</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> cacerts, mycerts - see tls_nb.NonBlockingTLS constructor for more</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> details</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_connect</tt> <tt class="py-op">=</tt> <tt class="py-name">on_connect</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_connect_failure</tt><tt class="py-op">=</tt><tt class="py-name">on_connect_failure</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_proxy_failure</tt> <tt class="py-op">=</tt> <tt class="py-name">on_proxy_failure</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">desired_security</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cacerts</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mycerts</tt> <tt class="py-op">=</tt> <tt class="py-name">secure_tuple</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt> <tt class="py-op">=</tt> <tt class="py-name">port</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy</tt> <tt class="py-op">=</tt> <tt class="py-name">proxy</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hostname</tt><tt class="py-op">:</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">xmpp_hostname</tt> <tt class="py-op">=</tt> <tt class="py-name">hostname</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">xmpp_hostname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Server</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-comment"># We only check for SSL here as for TLS we will first have to start a</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-comment"># PLAIN connection and negotiate TLS afterwards.</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-comment"># establish_tls will instruct transport to start secure connection</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-comment"># directly</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">establish_tls</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">desired_security</tt> <tt class="py-op">==</tt> <tt class="py-string">'ssl'</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-name">certs</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cacerts</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mycerts</tt><tt class="py-op">)</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">proxy_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-name">tcp_host</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">xmpp_hostname</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-name">tcp_port</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-37', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Calling disconnect handler %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-name">i</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnecting</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.connect"></a><div id="NonBlockingClient.connect-def"><a name="L150"></a><tt class="py-lineno">150</tt> <a class="py-toggle" href="#" id="NonBlockingClient.connect-toggle" onclick="return toggle('NonBlockingClient.connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#connect">connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">on_connect</tt><tt class="py-op">,</tt> <tt class="py-param">on_connect_failure</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">=</tt><tt class="py-number">5222</tt><tt class="py-op">,</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-param">on_proxy_failure</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">on_stream_error_cb</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">proxy</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-param">secure_tuple</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'plain'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.connect-expanded"><a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> Open XMPP connection (open XML streams in both directions)</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> :param on_connect: called after stream is successfully opened</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> :param on_connect_failure: called when error occures during connection</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> :param hostname: hostname of XMPP server from SRV request</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> :param port: port number of XMPP server</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> :param on_proxy_failure: called if error occurres during TCP connection to</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> proxy server or during proxy connecting process</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> :param proxy: dictionary with proxy data. It should contain at least</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> values for keys 'host' and 'port' - connection details for proxy serve</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> and optionally keys 'user' and 'pass' as proxy credentials</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> :param secure_tuple: tuple of (desired connection type, cacerts, mycerts)</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"> connection type can be 'ssl' - TLS established after TCP connection,</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> 'tls' - TLS established after negotiation with starttls, or 'plain'.</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> cacerts, mycerts - see tls_nb.NonBlockingTLS constructor for more</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> details</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_connect</tt> <tt class="py-op">=</tt> <tt class="py-name">on_connect</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_connect_failure</tt><tt class="py-op">=</tt><tt class="py-name">on_connect_failure</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_proxy_failure</tt> <tt class="py-op">=</tt> <tt class="py-name">on_proxy_failure</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_stream_error_cb</tt> <tt class="py-op">=</tt> <tt class="py-name">on_stream_error_cb</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">desired_security</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cacerts</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mycerts</tt> <tt class="py-op">=</tt> <tt class="py-name">secure_tuple</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt> <tt class="py-op">=</tt> <tt class="py-name">port</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy</tt> <tt class="py-op">=</tt> <tt class="py-name">proxy</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hostname</tt><tt class="py-op">:</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">xmpp_hostname</tt> <tt class="py-op">=</tt> <tt class="py-name">hostname</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">xmpp_hostname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Server</tt> </tt>
<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">proxy</tt><tt class="py-op">:</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-comment"># with proxies, client connects to proxy instead of directly to</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-comment"># XMPP server ((hostname, port))</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-comment"># tcp_host is hostname of machine used for socket connection</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-comment"># (DNS request will be done for proxy or BOSH CM hostname)</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-name">tcp_host</tt><tt class="py-op">,</tt> <tt class="py-name">tcp_port</tt><tt class="py-op">,</tt> <tt class="py-name">proxy_user</tt><tt class="py-op">,</tt> <tt class="py-name">proxy_pass</tt> <tt class="py-op">=</tt> \ </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt id="link-34" class="py-name"><a title="nbxmpp.transports_nb" class="py-name" href="#" onclick="return doclink('link-34', 'transports_nb', 'link-0');">transports_nb</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Function nbxmpp.transports_nb.get_proxy_data_from_dict()=nbxmpp.transports_nb-module.html#get_proxy_data_from_dict"><a title="nbxmpp.transports_nb.get_proxy_data_from_dict" class="py-name" href="#" onclick="return doclink('link-35', 'get_proxy_data_from_dict', 'link-35');">get_proxy_data_from_dict</a></tt><tt class="py-op">(</tt><tt class="py-name">proxy</tt><tt class="py-op">)</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">proxy</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'bosh'</tt><tt class="py-op">:</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-comment"># Setup BOSH transport</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="nbxmpp.bosh" class="py-name" href="#" onclick="return doclink('link-36', 'bosh', 'link-5');">bosh</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH" class="py-name" href="#" onclick="return doclink('link-37', 'NonBlockingBOSH', 'link-27');">NonBlockingBOSH</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Class Method nbxmpp.dispatcher_nb.Dispatcher.get_instance()=nbxmpp.dispatcher_nb.Dispatcher-class.html#get_instance,Class Method nbxmpp.plugin.PlugIn.get_instance()=nbxmpp.plugin.PlugIn-class.html#get_instance,Class Method nbxmpp.proxy_connectors.ProxyConnector.get_instance()=nbxmpp.proxy_connectors.ProxyConnector-class.html#get_instance"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-comment"># We only check for SSL here as for TLS we will first have to start a</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-comment"># PLAIN connection and negotiate TLS afterwards.</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-comment"># establish_tls will instruct transport to start secure connection</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-comment"># directly</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-name">establish_tls</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">desired_security</tt> <tt class="py-op">==</tt> <tt class="py-string">'ssl'</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-name">certs</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cacerts</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mycerts</tt><tt class="py-op">)</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-name">proxy_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-name">tcp_host</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">xmpp_hostname</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">tcp_port</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">proxy</tt><tt class="py-op">:</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-comment"># with proxies, client connects to proxy instead of directly to</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-comment"># XMPP server ((hostname, port))</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-comment"># tcp_host is hostname of machine used for socket connection</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-comment"># (DNS request will be done for proxy or BOSH CM hostname)</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-name">tcp_host</tt><tt class="py-op">,</tt> <tt class="py-name">tcp_port</tt><tt class="py-op">,</tt> <tt class="py-name">proxy_user</tt><tt class="py-op">,</tt> <tt class="py-name">proxy_pass</tt> <tt class="py-op">=</tt> \ </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt id="link-38" class="py-name"><a title="nbxmpp.transports_nb" class="py-name" href="#" onclick="return doclink('link-38', 'transports_nb', 'link-0');">transports_nb</a></tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Function nbxmpp.transports_nb.get_proxy_data_from_dict()=nbxmpp.transports_nb-module.html#get_proxy_data_from_dict"><a title="nbxmpp.transports_nb.get_proxy_data_from_dict" class="py-name" href="#" onclick="return doclink('link-39', 'get_proxy_data_from_dict', 'link-39');">get_proxy_data_from_dict</a></tt><tt class="py-op">(</tt><tt class="py-name">proxy</tt><tt class="py-op">)</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">proxy</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'bosh'</tt><tt class="py-op">:</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-comment"># Setup BOSH transport</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt> <tt class="py-op">=</tt> <tt id="link-40" class="py-name"><a title="nbxmpp.bosh" class="py-name" href="#" onclick="return doclink('link-40', 'bosh', 'link-5');">bosh</a></tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH" class="py-name" href="#" onclick="return doclink('link-41', 'NonBlockingBOSH', 'link-31');">NonBlockingBOSH</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Class Method nbxmpp.dispatcher_nb.Dispatcher.get_instance()=nbxmpp.dispatcher_nb.Dispatcher-class.html#get_instance,Class Method nbxmpp.plugin.PlugIn.get_instance()=nbxmpp.plugin.PlugIn-class.html#get_instance,Class Method nbxmpp.proxy_connectors.ProxyConnector.get_instance()=nbxmpp.proxy_connectors.ProxyConnector-class.html#get_instance"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
nbxmpp.plugin.PlugIn.get_instance
-nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-38', 'get_instance', 'link-38');">get_instance</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-name">on_disconnect</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.disconnect()=nbxmpp.bosh.NonBlockingBOSH-class.html#disconnect,Method nbxmpp.client_nb.NonBlockingClient.disconnect()=nbxmpp.client_nb.NonBlockingClient-class.html#disconnect,Method nbxmpp.transports_nb.NonBlockingTCP.disconnect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#disconnect,Method nbxmpp.transports_nb.NonBlockingTransport.disconnect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#disconnect"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-42', 'get_instance', 'link-42');">get_instance</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-name">on_disconnect</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.disconnect()=nbxmpp.bosh.NonBlockingBOSH-class.html#disconnect,Method nbxmpp.client_nb.NonBlockingClient.disconnect()=nbxmpp.client_nb.NonBlockingClient-class.html#disconnect,Method nbxmpp.transports_nb.NonBlockingTCP.disconnect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#disconnect,Method nbxmpp.transports_nb.NonBlockingTransport.disconnect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#disconnect"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
-nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-39', 'disconnect', 'link-39');">disconnect</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt id="link-40" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient.raise_event()=nbxmpp.client_nb.NonBlockingClient-class.html#raise_event"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-40', 'raise_event', 'link-40');">raise_event</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-41', 'raise_event', 'link-40');">raise_event</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt id="link-42" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-42', 'idlequeue', 'link-11');">idlequeue</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-43', 'idlequeue', 'link-11');">idlequeue</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-name">estabilish_tls</tt><tt class="py-op">=</tt><tt class="py-name">establish_tls</tt><tt class="py-op">,</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-name">certs</tt><tt class="py-op">=</tt><tt class="py-name">certs</tt><tt class="py-op">,</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-name">proxy_creds</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">proxy_user</tt><tt class="py-op">,</tt> <tt class="py-name">proxy_pass</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-name">xmpp_server</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">xmpp_hostname</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-name">domain</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Server</tt><tt class="py-op">,</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-name">bosh_dict</tt><tt class="py-op">=</tt><tt class="py-name">proxy</tt><tt class="py-op">)</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">protocol_type</tt> <tt class="py-op">=</tt> <tt class="py-string">'BOSH'</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">wait_for_restart_response</tt> <tt class="py-op">=</tt> \ </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-name">proxy</tt><tt class="py-op">[</tt><tt class="py-string">'bosh_wait_for_restart_response'</tt><tt class="py-op">]</tt> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-comment"># http proxy</tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">proxy</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'xmpp_server'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">xmpp_hostname</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt><tt class="py-op">)</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'credentials'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">proxy_user</tt><tt class="py-op">,</tt> <tt class="py-name">proxy_pass</tt><tt class="py-op">)</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> </tt>
-<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">proxy</tt> <tt class="py-keyword">or</tt> <tt class="py-name">proxy</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'bosh'</tt><tt class="py-op">:</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-comment"># Setup ordinary TCP transport</tt> </tt>
-<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name"><a title="nbxmpp.transports_nb" class="py-name" href="#" onclick="return doclink('link-44', 'transports_nb', 'link-0');">transports_nb</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP" class="py-name" href="#" onclick="return doclink('link-45', 'NonBlockingTCP', 'link-23');">NonBlockingTCP</a></tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
+nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-43', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt id="link-44" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient.raise_event()=nbxmpp.client_nb.NonBlockingClient-class.html#raise_event"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-44', 'raise_event', 'link-44');">raise_event</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-45', 'raise_event', 'link-44');">raise_event</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt id="link-46" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-46', 'idlequeue', 'link-11');">idlequeue</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-47', 'idlequeue', 'link-11');">idlequeue</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-name">estabilish_tls</tt><tt class="py-op">=</tt><tt class="py-name">establish_tls</tt><tt class="py-op">,</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-name">certs</tt><tt class="py-op">=</tt><tt class="py-name">certs</tt><tt class="py-op">,</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-name">proxy_creds</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">proxy_user</tt><tt class="py-op">,</tt> <tt class="py-name">proxy_pass</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-name">xmpp_server</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">xmpp_hostname</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-name">domain</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Server</tt><tt class="py-op">,</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-name">bosh_dict</tt><tt class="py-op">=</tt><tt class="py-name">proxy</tt><tt class="py-op">)</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">protocol_type</tt> <tt class="py-op">=</tt> <tt class="py-string">'BOSH'</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">wait_for_restart_response</tt> <tt class="py-op">=</tt> \ </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-name">proxy</tt><tt class="py-op">[</tt><tt class="py-string">'bosh_wait_for_restart_response'</tt><tt class="py-op">]</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-comment"># http proxy</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">proxy</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'xmpp_server'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">xmpp_hostname</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt><tt class="py-op">)</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'credentials'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">proxy_user</tt><tt class="py-op">,</tt> <tt class="py-name">proxy_pass</tt><tt class="py-op">)</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">proxy</tt> <tt class="py-keyword">or</tt> <tt class="py-name">proxy</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'bosh'</tt><tt class="py-op">:</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-comment"># Setup ordinary TCP transport</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name"><a title="nbxmpp.transports_nb" class="py-name" href="#" onclick="return doclink('link-48', 'transports_nb', 'link-0');">transports_nb</a></tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP" class="py-name" href="#" onclick="return doclink('link-49', 'NonBlockingTCP', 'link-27');">NonBlockingTCP</a></tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
nbxmpp.plugin.PlugIn.get_instance
-nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-46', 'get_instance', 'link-38');">get_instance</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-name">on_disconnect</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-50', 'get_instance', 'link-42');">get_instance</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-name">on_disconnect</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
-nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-47', 'disconnect', 'link-39');">disconnect</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt id="link-48" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-48', 'raise_event', 'link-40');">raise_event</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-49', 'raise_event', 'link-40');">raise_event</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt id="link-50" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-50', 'idlequeue', 'link-11');">idlequeue</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-51', 'idlequeue', 'link-11');">idlequeue</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-name">estabilish_tls</tt><tt class="py-op">=</tt><tt class="py-name">establish_tls</tt><tt class="py-op">,</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-name">certs</tt><tt class="py-op">=</tt><tt class="py-name">certs</tt><tt class="py-op">,</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">proxy_dict</tt><tt class="py-op">=</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">)</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-comment"># plug transport into client as self.Connection</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name" targets="Method nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn()=nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#PlugIn,Method nbxmpp.dispatcher_nb.Dispatcher.PlugIn()=nbxmpp.dispatcher_nb.Dispatcher-class.html#PlugIn,Class nbxmpp.plugin.PlugIn=nbxmpp.plugin.PlugIn-class.html,Method nbxmpp.plugin.PlugIn.PlugIn()=nbxmpp.plugin.PlugIn-class.html#PlugIn"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
+nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-51', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt id="link-52" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-52', 'raise_event', 'link-44');">raise_event</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-53', 'raise_event', 'link-44');">raise_event</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt id="link-54" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-54', 'idlequeue', 'link-11');">idlequeue</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-55', 'idlequeue', 'link-11');">idlequeue</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-name">estabilish_tls</tt><tt class="py-op">=</tt><tt class="py-name">establish_tls</tt><tt class="py-op">,</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-name">certs</tt><tt class="py-op">=</tt><tt class="py-name">certs</tt><tt class="py-op">,</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-name">proxy_dict</tt><tt class="py-op">=</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">)</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-comment"># plug transport into client as self.Connection</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Method nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn()=nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#PlugIn,Method nbxmpp.dispatcher_nb.Dispatcher.PlugIn()=nbxmpp.dispatcher_nb.Dispatcher-class.html#PlugIn,Class nbxmpp.plugin.PlugIn=nbxmpp.plugin.PlugIn-class.html,Method nbxmpp.plugin.PlugIn.PlugIn()=nbxmpp.plugin.PlugIn-class.html#PlugIn"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
nbxmpp.dispatcher_nb.Dispatcher.PlugIn
nbxmpp.plugin.PlugIn
-nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-52', 'PlugIn', 'link-52');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._resolve_hostname()=nbxmpp.client_nb.NonBlockingClient-class.html#_resolve_hostname"><a title="nbxmpp.client_nb.NonBlockingClient._resolve_hostname" class="py-name" href="#" onclick="return doclink('link-53', '_resolve_hostname', 'link-53');">_resolve_hostname</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-name">hostname</tt><tt class="py-op">=</tt><tt class="py-name">tcp_host</tt><tt class="py-op">,</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-name">port</tt><tt class="py-op">=</tt><tt class="py-name">tcp_port</tt><tt class="py-op">,</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-name">on_success</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._try_next_ip" class="py-name" href="#" onclick="return doclink('link-54', '_try_next_ip', 'link-13');">_try_next_ip</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient._resolve_hostname"></a><div id="NonBlockingClient._resolve_hostname-def"><a name="L232"></a><tt class="py-lineno">232</tt> <a class="py-toggle" href="#" id="NonBlockingClient._resolve_hostname-toggle" onclick="return toggle('NonBlockingClient._resolve_hostname');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_resolve_hostname">_resolve_hostname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">,</tt> <tt class="py-param">on_success</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient._resolve_hostname-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._resolve_hostname-expanded"><a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"><tt class="py-docstring"> Wrapper for getaddinfo call</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"><tt class="py-docstring"> FIXME: getaddinfo blocks</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ip_addresses</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">getaddrinfo</tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">,</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">AF_UNSPEC</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SOCK_STREAM</tt><tt class="py-op">)</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">gaierror</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-56', 'PlugIn', 'link-56');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._resolve_hostname()=nbxmpp.client_nb.NonBlockingClient-class.html#_resolve_hostname"><a title="nbxmpp.client_nb.NonBlockingClient._resolve_hostname" class="py-name" href="#" onclick="return doclink('link-57', '_resolve_hostname', 'link-57');">_resolve_hostname</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-name">hostname</tt><tt class="py-op">=</tt><tt class="py-name">tcp_host</tt><tt class="py-op">,</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-name">port</tt><tt class="py-op">=</tt><tt class="py-name">tcp_port</tt><tt class="py-op">,</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">on_success</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._try_next_ip" class="py-name" href="#" onclick="return doclink('link-58', '_try_next_ip', 'link-13');">_try_next_ip</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient._resolve_hostname"></a><div id="NonBlockingClient._resolve_hostname-def"><a name="L243"></a><tt class="py-lineno">243</tt> <a class="py-toggle" href="#" id="NonBlockingClient._resolve_hostname-toggle" onclick="return toggle('NonBlockingClient._resolve_hostname');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_resolve_hostname">_resolve_hostname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">,</tt> <tt class="py-param">on_success</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient._resolve_hostname-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._resolve_hostname-expanded"><a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"><tt class="py-docstring"> Wrapper for getaddinfo call</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"><tt class="py-docstring"> FIXME: getaddinfo blocks</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ip_addresses</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">getaddrinfo</tt><tt class="py-op">(</tt><tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">,</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">AF_UNSPEC</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SOCK_STREAM</tt><tt class="py-op">)</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">gaierror</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
-nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-55', 'disconnect', 'link-39');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-name">message</tt><tt class="py-op">=</tt><tt class="py-string">'Lookup failure for %s:%s, hostname: %s - %s'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt><tt class="py-op">,</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">on_success</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient._try_next_ip"></a><div id="NonBlockingClient._try_next_ip-def"><a name="L247"></a><tt class="py-lineno">247</tt> <a class="py-toggle" href="#" id="NonBlockingClient._try_next_ip-toggle" onclick="return toggle('NonBlockingClient._try_next_ip');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_try_next_ip">_try_next_ip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">err_message</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient._try_next_ip-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._try_next_ip-expanded"><a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"><tt class="py-docstring"> Iterate over IP addresses tries to connect to it</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">err_message</tt><tt class="py-op">:</tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt id="link-56" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-59', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-name">message</tt><tt class="py-op">=</tt><tt class="py-string">'Lookup failure for %s:%s, hostname: %s - %s'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt><tt class="py-op">,</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">error</tt> <tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-comment"># Catches an unexpected error with the socket</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+nbxmpp.client_nb.NonBlockingClient.disconnect
+nbxmpp.transports_nb.NonBlockingTCP.disconnect
+nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-60', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-name">message</tt><tt class="py-op">=</tt><tt class="py-string">'General socket error for %s:%s, hostname: %s - %s'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt><tt class="py-op">,</tt> <tt class="py-name">hostname</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-name">on_success</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient._try_next_ip"></a><div id="NonBlockingClient._try_next_ip-def"><a name="L262"></a><tt class="py-lineno">262</tt> <a class="py-toggle" href="#" id="NonBlockingClient._try_next_ip-toggle" onclick="return toggle('NonBlockingClient._try_next_ip');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_try_next_ip">_try_next_ip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">err_message</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient._try_next_ip-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._try_next_ip-expanded"><a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-docstring"> Iterate over IP addresses tries to connect to it</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">err_message</tt><tt class="py-op">:</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt id="link-61" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -417,57 +435,57 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-56', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'While looping over DNS A records: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">err_message</tt><tt class="py-op">)</tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ip_addresses</tt> <tt class="py-op">==</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-string">'Run out of hosts for name %s:%s.'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt><tt class="py-op">)</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt> <tt class="py-op">+</tt> <tt class="py-string">' Error for last IP: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">err_message</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-61', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'While looping over DNS A records: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">err_message</tt><tt class="py-op">)</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ip_addresses</tt> <tt class="py-op">==</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-string">'Run out of hosts for name %s:%s.'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Port</tt><tt class="py-op">)</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt> <tt class="py-op">+</tt> <tt class="py-string">' Error for last IP: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">err_message</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
-nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-57', 'disconnect', 'link-39');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">current_ip</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ip_addresses</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.connect()=nbxmpp.bosh.NonBlockingBOSH-class.html#connect,Method nbxmpp.client_nb.NonBlockingClient.connect()=nbxmpp.client_nb.NonBlockingClient-class.html#connect,Method nbxmpp.transports_nb.NonBlockingTCP.connect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#connect,Method nbxmpp.transports_nb.NonBlockingTransport.connect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#connect"><a title="nbxmpp.bosh.NonBlockingBOSH.connect
+nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-62', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">current_ip</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ip_addresses</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.connect()=nbxmpp.bosh.NonBlockingBOSH-class.html#connect,Method nbxmpp.client_nb.NonBlockingClient.connect()=nbxmpp.client_nb.NonBlockingClient-class.html#connect,Method nbxmpp.transports_nb.NonBlockingTCP.connect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#connect,Method nbxmpp.transports_nb.NonBlockingTransport.connect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#connect"><a title="nbxmpp.bosh.NonBlockingBOSH.connect
nbxmpp.client_nb.NonBlockingClient.connect
nbxmpp.transports_nb.NonBlockingTCP.connect
-nbxmpp.transports_nb.NonBlockingTransport.connect" class="py-name" href="#" onclick="return doclink('link-58', 'connect', 'link-58');">connect</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-name">conn_5tuple</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">current_ip</tt><tt class="py-op">,</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-name">on_connect</tt><tt class="py-op">=</tt><tt class="py-keyword">lambda</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._xmpp_connect()=nbxmpp.client_nb.NonBlockingClient-class.html#_xmpp_connect"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect" class="py-name" href="#" onclick="return doclink('link-59', '_xmpp_connect', 'link-59');">_xmpp_connect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-name">on_connect_failure</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._try_next_ip" class="py-name" href="#" onclick="return doclink('link-60', '_try_next_ip', 'link-13');">_try_next_ip</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.incoming_stream_version"></a><div id="NonBlockingClient.incoming_stream_version-def"><a name="L264"></a><tt class="py-lineno">264</tt> <a class="py-toggle" href="#" id="NonBlockingClient.incoming_stream_version-toggle" onclick="return toggle('NonBlockingClient.incoming_stream_version');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#incoming_stream_version">incoming_stream_version</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.incoming_stream_version-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.incoming_stream_version-expanded"><a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"><tt class="py-docstring"> Get version of xml stream</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'version'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name" targets="Class nbxmpp.dispatcher_nb.Dispatcher=nbxmpp.dispatcher_nb.Dispatcher-class.html"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-61', 'Dispatcher', 'link-61');">Dispatcher</a></tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">_document_attrs</tt><tt class="py-op">:</tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-62', 'Dispatcher', 'link-61');">Dispatcher</a></tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">_document_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'version'</tt><tt class="py-op">]</tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient._xmpp_connect"></a><div id="NonBlockingClient._xmpp_connect-def"><a name="L273"></a><tt class="py-lineno">273</tt> <a class="py-toggle" href="#" id="NonBlockingClient._xmpp_connect-toggle" onclick="return toggle('NonBlockingClient._xmpp_connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_xmpp_connect">_xmpp_connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">socket_type</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient._xmpp_connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._xmpp_connect-expanded"><a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"><tt class="py-docstring"> Start XMPP connecting process - open the XML stream. Is called after TCP</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"><tt class="py-docstring"> connection is established or after switch to TLS when successfully</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"><tt class="py-docstring"> negotiated with &lt;starttls&gt;.</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-comment"># socket_type contains info which transport connection was established</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">socket_type</tt><tt class="py-op">:</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt><tt class="py-op">:</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-comment"># When ssl_lib is set we connected via SSL</tt> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-name">socket_type</tt> <tt class="py-op">=</tt> <tt class="py-string">'ssl'</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-comment"># PLAIN is default</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-name">socket_type</tt> <tt class="py-op">=</tt> <tt class="py-string">'plain'</tt> </tt>
-<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-op">=</tt> <tt class="py-name">socket_type</tt> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine()=nbxmpp.client_nb.NonBlockingClient-class.html#_xmpp_connect_machine"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-63', '_xmpp_connect_machine', 'link-63');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient._xmpp_connect_machine"></a><div id="NonBlockingClient._xmpp_connect_machine-def"><a name="L290"></a><tt class="py-lineno">290</tt> <a class="py-toggle" href="#" id="NonBlockingClient._xmpp_connect_machine-toggle" onclick="return toggle('NonBlockingClient._xmpp_connect_machine');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_xmpp_connect_machine">_xmpp_connect_machine</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient._xmpp_connect_machine-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._xmpp_connect_machine-expanded"><a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"><tt class="py-docstring"> Finite automaton taking care of stream opening and features tag handling.</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"><tt class="py-docstring"> Calls _on_stream_start when stream is started, and disconnect() on</tt> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"><tt class="py-docstring"> failure.</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt id="link-64" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.NonBlockingTransport.connect" class="py-name" href="#" onclick="return doclink('link-63', 'connect', 'link-63');">connect</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-name">conn_5tuple</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">current_ip</tt><tt class="py-op">,</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-name">on_connect</tt><tt class="py-op">=</tt><tt class="py-keyword">lambda</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._xmpp_connect()=nbxmpp.client_nb.NonBlockingClient-class.html#_xmpp_connect"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect" class="py-name" href="#" onclick="return doclink('link-64', '_xmpp_connect', 'link-64');">_xmpp_connect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-name">on_connect_failure</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._try_next_ip" class="py-name" href="#" onclick="return doclink('link-65', '_try_next_ip', 'link-13');">_try_next_ip</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.incoming_stream_version"></a><div id="NonBlockingClient.incoming_stream_version-def"><a name="L279"></a><tt class="py-lineno">279</tt> <a class="py-toggle" href="#" id="NonBlockingClient.incoming_stream_version-toggle" onclick="return toggle('NonBlockingClient.incoming_stream_version');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#incoming_stream_version">incoming_stream_version</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.incoming_stream_version-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.incoming_stream_version-expanded"><a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"><tt class="py-docstring"> Get version of xml stream</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'version'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name" targets="Class nbxmpp.dispatcher_nb.Dispatcher=nbxmpp.dispatcher_nb.Dispatcher-class.html"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-66', 'Dispatcher', 'link-66');">Dispatcher</a></tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">_document_attrs</tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-67', 'Dispatcher', 'link-66');">Dispatcher</a></tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">_document_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'version'</tt><tt class="py-op">]</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient._xmpp_connect"></a><div id="NonBlockingClient._xmpp_connect-def"><a name="L288"></a><tt class="py-lineno">288</tt> <a class="py-toggle" href="#" id="NonBlockingClient._xmpp_connect-toggle" onclick="return toggle('NonBlockingClient._xmpp_connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_xmpp_connect">_xmpp_connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">socket_type</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient._xmpp_connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._xmpp_connect-expanded"><a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"><tt class="py-docstring"> Start XMPP connecting process - open the XML stream. Is called after TCP</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"><tt class="py-docstring"> connection is established or after switch to TLS when successfully</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"><tt class="py-docstring"> negotiated with &lt;starttls&gt;.</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-comment"># socket_type contains info which transport connection was established</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">socket_type</tt><tt class="py-op">:</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt><tt class="py-op">:</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-comment"># When ssl_lib is set we connected via SSL</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-name">socket_type</tt> <tt class="py-op">=</tt> <tt class="py-string">'ssl'</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-comment"># PLAIN is default</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-name">socket_type</tt> <tt class="py-op">=</tt> <tt class="py-string">'plain'</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-op">=</tt> <tt class="py-name">socket_type</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine()=nbxmpp.client_nb.NonBlockingClient-class.html#_xmpp_connect_machine"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-68', '_xmpp_connect_machine', 'link-68');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient._xmpp_connect_machine"></a><div id="NonBlockingClient._xmpp_connect_machine-def"><a name="L305"></a><tt class="py-lineno">305</tt> <a class="py-toggle" href="#" id="NonBlockingClient._xmpp_connect_machine-toggle" onclick="return toggle('NonBlockingClient._xmpp_connect_machine');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_xmpp_connect_machine">_xmpp_connect_machine</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient._xmpp_connect_machine-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._xmpp_connect_machine-expanded"><a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"><tt class="py-docstring"> Finite automaton taking care of stream opening and features tag handling.</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"><tt class="py-docstring"> Calls _on_stream_start when stream is started, and disconnect() on</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"><tt class="py-docstring"> failure.</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt id="link-69" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -478,15 +496,15 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-64', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-------------xmpp_connect_machine() &gt;&gt; mode: %s, data: %s...'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">20</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">on_next_receive</tt><tt class="py-op">(</tt><tt class="py-param">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"><tt class="py-docstring"> Set desired on_receive callback on transport based on the state of</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"><tt class="py-docstring"> connect_machine.</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt id="link-65" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-69', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-------------xmpp_connect_machine() &gt;&gt; mode: %s, data: %s...'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">20</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">on_next_receive</tt><tt class="py-op">(</tt><tt class="py-param">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"><tt class="py-docstring"> Set desired on_receive callback on transport based on the state of</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"><tt class="py-docstring"> connect_machine.</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt id="link-70" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -497,56 +515,70 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-65', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'setting %s on next receive'</tt> <tt class="py-op">%</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">mode</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.onreceive()=nbxmpp.bosh.NonBlockingBOSH-class.html#onreceive,Method nbxmpp.transports_nb.NonBlockingTransport.onreceive()=nbxmpp.transports_nb.NonBlockingTransport-class.html#onreceive"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
-nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-66', 'onreceive', 'link-66');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-comment"># switch to Dispatcher.ProcessNonBlocking</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
-nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-67', 'onreceive', 'link-66');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">_data</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-68', '_xmpp_connect_machine', 'link-63');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">_data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">mode</tt><tt class="py-op">:</tt> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-comment"># starting state</tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'Dispatcher'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-69', 'Dispatcher', 'link-61');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-70', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">got_features</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt id="link-71" class="py-name"><a title="nbxmpp.dispatcher_nb" class="py-name" href="#" onclick="return doclink('link-71', 'dispatcher_nb', 'link-1');">dispatcher_nb</a></tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-72', 'Dispatcher', 'link-61');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-70', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'setting %s on next receive'</tt> <tt class="py-op">%</tt> <tt class="py-name">mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">mode</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.onreceive()=nbxmpp.bosh.NonBlockingBOSH-class.html#onreceive,Method nbxmpp.transports_nb.NonBlockingTransport.onreceive()=nbxmpp.transports_nb.NonBlockingTransport-class.html#onreceive"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-71', 'onreceive', 'link-71');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-comment"># switch to Dispatcher.ProcessNonBlocking</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-72', 'onreceive', 'link-71');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">_data</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-73', '_xmpp_connect_machine', 'link-68');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">_data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">mode</tt><tt class="py-op">:</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-comment"># starting state</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'Dispatcher'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-74', 'Dispatcher', 'link-66');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-75', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">got_features</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt id="link-76" class="py-name"><a title="nbxmpp.dispatcher_nb" class="py-name" href="#" onclick="return doclink('link-76', 'dispatcher_nb', 'link-1');">dispatcher_nb</a></tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-77', 'Dispatcher', 'link-66');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
nbxmpp.plugin.PlugIn.get_instance
-nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-73', 'get_instance', 'link-38');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
+nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-78', 'get_instance', 'link-42');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
nbxmpp.dispatcher_nb.Dispatcher.PlugIn
nbxmpp.plugin.PlugIn
-nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-74', 'PlugIn', 'link-52');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-name">on_next_receive</tt><tt class="py-op">(</tt><tt class="py-string">'RECEIVE_DOCUMENT_ATTRIBUTES'</tt><tt class="py-op">)</tt> </tt>
-<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">mode</tt> <tt class="py-op">==</tt> <tt class="py-string">'FAILURE'</tt><tt class="py-op">:</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-79', 'PlugIn', 'link-56');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-name">on_next_receive</tt><tt class="py-op">(</tt><tt class="py-string">'RECEIVE_DOCUMENT_ATTRIBUTES'</tt><tt class="py-op">)</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">mode</tt> <tt class="py-op">==</tt> <tt class="py-string">'FAILURE'</tt><tt class="py-op">:</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
-nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-75', 'disconnect', 'link-39');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-string">'During XMPP connect: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">mode</tt> <tt class="py-op">==</tt> <tt class="py-string">'RECEIVE_DOCUMENT_ATTRIBUTES'</tt><tt class="py-op">:</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-76', 'Dispatcher', 'link-61');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Method nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#ProcessNonBlocking,Method nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#ProcessNonBlocking"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
-nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-77', 'ProcessNonBlocking', 'link-77');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ip_addresses</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'Dispatcher'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> \ </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-78', 'Dispatcher', 'link-61');">Dispatcher</a></tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">_document_attrs</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-79', '_xmpp_connect_machine', 'link-63');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'FAILURE'</tt><tt class="py-op">,</tt> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-name">data</tt><tt class="py-op">=</tt><tt class="py-string">'Error on stream open'</tt><tt class="py-op">)</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-comment"># if terminating stanza was received after init request then client gets</tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt class="py-comment"># disconnected from bosh transport plugin and we have to end the stream</tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-comment"># negotiating process straight away.</tt> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-comment"># fixes #4657</tt> </tt>
-<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> </tt>
-<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient.incoming_stream_version()=nbxmpp.client_nb.NonBlockingClient-class.html#incoming_stream_version"><a title="nbxmpp.client_nb.NonBlockingClient.incoming_stream_version" class="py-name" href="#" onclick="return doclink('link-80', 'incoming_stream_version', 'link-80');">incoming_stream_version</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'1.0'</tt><tt class="py-op">:</tt> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">got_features</tt><tt class="py-op">:</tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-name">on_next_receive</tt><tt class="py-op">(</tt><tt class="py-string">'RECEIVE_STREAM_FEATURES'</tt><tt class="py-op">)</tt> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt id="link-81" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-80', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-string">'During XMPP connect: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">mode</tt> <tt class="py-op">==</tt> <tt class="py-string">'RECEIVE_DOCUMENT_ATTRIBUTES'</tt><tt class="py-op">:</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-81', 'Dispatcher', 'link-66');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-82" class="py-name" targets="Method nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#ProcessNonBlocking,Method nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#ProcessNonBlocking"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
+nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-82', 'ProcessNonBlocking', 'link-82');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ip_addresses</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'Dispatcher'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> \ </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-83', 'Dispatcher', 'link-66');">Dispatcher</a></tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">_document_attrs</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-84', '_xmpp_connect_machine', 'link-68');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'FAILURE'</tt><tt class="py-op">,</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-name">data</tt><tt class="py-op">=</tt><tt class="py-string">'Error on stream open'</tt><tt class="py-op">)</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-comment"># if terminating stanza was received after init request then client gets</tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-comment"># disconnected from bosh transport plugin and we have to end the stream</tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-comment"># negotiating process straight away.</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-comment"># fixes #4657</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt><tt class="py-op">:</tt> <tt class="py-keyword">return</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient.incoming_stream_version()=nbxmpp.client_nb.NonBlockingClient-class.html#incoming_stream_version"><a title="nbxmpp.client_nb.NonBlockingClient.incoming_stream_version" class="py-name" href="#" onclick="return doclink('link-85', 'incoming_stream_version', 'link-85');">incoming_stream_version</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'1.0'</tt><tt class="py-op">:</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">got_features</tt><tt class="py-op">:</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">on_next_receive</tt><tt class="py-op">(</tt><tt class="py-string">'RECEIVE_STREAM_FEATURES'</tt><tt class="py-op">)</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt id="link-86" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.bosh.log
+nbxmpp.client_nb.log
+nbxmpp.dispatcher_nb.log
+nbxmpp.idlequeue.log
+nbxmpp.plugin.log
+nbxmpp.proxy_connectors.log
+nbxmpp.roster_nb.log
+nbxmpp.simplexml.log
+nbxmpp.smacks.log
+nbxmpp.tls_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-86', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'got STREAM FEATURES in first recv'</tt><tt class="py-op">)</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-87', '_xmpp_connect_machine', 'link-68');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'STREAM_STARTED'</tt><tt class="py-op">)</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt id="link-88" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -557,10 +589,17 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-81', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'got STREAM FEATURES in first recv'</tt><tt class="py-op">)</tt> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-82', '_xmpp_connect_machine', 'link-63');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'STREAM_STARTED'</tt><tt class="py-op">)</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt id="link-83" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-88', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'incoming stream version less than 1.0'</tt><tt class="py-op">)</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-89', '_xmpp_connect_machine', 'link-68');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'STREAM_STARTED'</tt><tt class="py-op">)</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">mode</tt> <tt class="py-op">==</tt> <tt class="py-string">'RECEIVE_STREAM_FEATURES'</tt><tt class="py-op">:</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-comment"># sometimes &lt;features&gt; are received together with document</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-comment"># attributes and sometimes on next receive...</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-90', 'Dispatcher', 'link-66');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
+nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-91', 'ProcessNonBlocking', 'link-82');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">got_see_other_host</tt><tt class="py-op">:</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt id="link-92" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -571,21 +610,15 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-83', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'incoming stream version less than 1.0'</tt><tt class="py-op">)</tt> </tt>
-<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-84', '_xmpp_connect_machine', 'link-63');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'STREAM_STARTED'</tt><tt class="py-op">)</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">mode</tt> <tt class="py-op">==</tt> <tt class="py-string">'RECEIVE_STREAM_FEATURES'</tt><tt class="py-op">:</tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-comment"># sometimes &lt;features&gt; are received together with document</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-comment"># attributes and sometimes on next receive...</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-85', 'Dispatcher', 'link-61');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
-nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-86', 'ProcessNonBlocking', 'link-77');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">got_features</tt><tt class="py-op">:</tt> </tt>
-<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-87', '_xmpp_connect_machine', 'link-63');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'FAILURE'</tt><tt class="py-op">,</tt> </tt>
-<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-name">data</tt><tt class="py-op">=</tt><tt class="py-string">'Missing &lt;features&gt; in 1.0 stream'</tt><tt class="py-op">)</tt> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt id="link-88" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-92', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'got see-other-host'</tt><tt class="py-op">)</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-93', 'onreceive', 'link-71');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_stream_error_cb</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">got_see_other_host</tt><tt class="py-op">)</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">got_features</tt><tt class="py-op">:</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-94', '_xmpp_connect_machine', 'link-68');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'FAILURE'</tt><tt class="py-op">,</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-name">data</tt><tt class="py-op">=</tt><tt class="py-string">'Missing &lt;features&gt; in 1.0 stream'</tt><tt class="py-op">)</tt> </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt id="link-95" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -596,36 +629,36 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-88', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'got STREAM FEATURES in second recv'</tt><tt class="py-op">)</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-89', '_xmpp_connect_machine', 'link-63');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'STREAM_STARTED'</tt><tt class="py-op">)</tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">mode</tt> <tt class="py-op">==</tt> <tt class="py-string">'STREAM_STARTED'</tt><tt class="py-op">:</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_stream_start()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_stream_start"><a title="nbxmpp.client_nb.NonBlockingClient._on_stream_start" class="py-name" href="#" onclick="return doclink('link-90', '_on_stream_start', 'link-90');">_on_stream_start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient._on_stream_start"></a><div id="NonBlockingClient._on_stream_start-def"><a name="L364"></a><tt class="py-lineno">364</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_stream_start-toggle" onclick="return toggle('NonBlockingClient._on_stream_start');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_stream_start">_on_stream_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient._on_stream_start-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_stream_start-expanded"><a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"><tt class="py-docstring"> Called after XMPP stream is opened. TLS negotiation may follow if</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"><tt class="py-docstring"> supported and desired.</tt> </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream_started</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'onreceive'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-comment"># we may already have been disconnected</tt> </tt>
-<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
-nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-91', 'onreceive', 'link-66');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> </tt>
-<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-op">==</tt> <tt class="py-string">'plain'</tt><tt class="py-op">:</tt> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">desired_security</tt> <tt class="py-op">==</tt> <tt class="py-string">'plain'</tt><tt class="py-op">:</tt> </tt>
-<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-comment"># if we want and have plain connection, we're done now</tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH._on_connect()=nbxmpp.bosh.NonBlockingBOSH-class.html#_on_connect,Method nbxmpp.client_nb.NonBlockingClient._on_connect()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_connect,Method nbxmpp.transports_nb.NonBlockingTCP._on_connect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_on_connect,Method nbxmpp.transports_nb.NonBlockingTransport._on_connect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_on_connect"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-95', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'got STREAM FEATURES in second recv'</tt><tt class="py-op">)</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect_machine" class="py-name" href="#" onclick="return doclink('link-96', '_xmpp_connect_machine', 'link-68');">_xmpp_connect_machine</a></tt><tt class="py-op">(</tt><tt class="py-name">mode</tt><tt class="py-op">=</tt><tt class="py-string">'STREAM_STARTED'</tt><tt class="py-op">)</tt> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">mode</tt> <tt class="py-op">==</tt> <tt class="py-string">'STREAM_STARTED'</tt><tt class="py-op">:</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_stream_start()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_stream_start"><a title="nbxmpp.client_nb.NonBlockingClient._on_stream_start" class="py-name" href="#" onclick="return doclink('link-97', '_on_stream_start', 'link-97');">_on_stream_start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient._on_stream_start"></a><div id="NonBlockingClient._on_stream_start-def"><a name="L382"></a><tt class="py-lineno">382</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_stream_start-toggle" onclick="return toggle('NonBlockingClient._on_stream_start');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_stream_start">_on_stream_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient._on_stream_start-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_stream_start-expanded"><a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"><tt class="py-docstring"> Called after XMPP stream is opened. TLS negotiation may follow if</tt> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"><tt class="py-docstring"> supported and desired.</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream_started</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'onreceive'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-comment"># we may already have been disconnected</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-98', 'onreceive', 'link-71');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-op">==</tt> <tt class="py-string">'plain'</tt><tt class="py-op">:</tt> </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">desired_security</tt> <tt class="py-op">==</tt> <tt class="py-string">'plain'</tt><tt class="py-op">:</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-comment"># if we want and have plain connection, we're done now</tt> </tt>
+<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH._on_connect()=nbxmpp.bosh.NonBlockingBOSH-class.html#_on_connect,Method nbxmpp.client_nb.NonBlockingClient._on_connect()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_connect,Method nbxmpp.transports_nb.NonBlockingTCP._on_connect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_on_connect,Method nbxmpp.transports_nb.NonBlockingTransport._on_connect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_on_connect"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
nbxmpp.client_nb.NonBlockingClient._on_connect
nbxmpp.transports_nb.NonBlockingTCP._on_connect
-nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-92', '_on_connect', 'link-92');">_on_connect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-comment"># try to negotiate TLS</tt> </tt>
-<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.incoming_stream_version" class="py-name" href="#" onclick="return doclink('link-93', 'incoming_stream_version', 'link-80');">incoming_stream_version</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'1.0'</tt><tt class="py-op">:</tt> </tt>
-<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> <tt class="py-comment"># if stream version is less than 1.0, we can't do more</tt> </tt>
-<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt id="link-94" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-99', '_on_connect', 'link-99');">_on_connect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-comment"># try to negotiate TLS</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.incoming_stream_version" class="py-name" href="#" onclick="return doclink('link-100', 'incoming_stream_version', 'link-85');">incoming_stream_version</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'1.0'</tt><tt class="py-op">:</tt> </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-comment"># if stream version is less than 1.0, we can't do more</tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt id="link-101" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -636,17 +669,17 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-94', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'While connecting with type = "tls": stream version '</tt> <tt class="py-op">+</tt> </tt>
-<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-string">'is less than 1.0'</tt><tt class="py-op">)</tt> </tt>
-<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-101', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'While connecting with type = "tls": stream version '</tt> <tt class="py-op">+</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-string">'is less than 1.0'</tt><tt class="py-op">)</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
nbxmpp.client_nb.NonBlockingClient._on_connect
nbxmpp.transports_nb.NonBlockingTCP._on_connect
-nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-95', '_on_connect', 'link-92');">_on_connect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-96', 'Dispatcher', 'link-61');">Dispatcher</a></tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">features</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name" targets="Method nbxmpp.simplexml.Node.getTag()=nbxmpp.simplexml.Node-class.html#getTag"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-97', 'getTag', 'link-97');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'starttls'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-comment"># Server advertises TLS support, start negotiation</tt> </tt>
-<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream_started</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt id="link-98" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-102', '_on_connect', 'link-99');">_on_connect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-103', 'Dispatcher', 'link-66');">Dispatcher</a></tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">features</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name" targets="Method nbxmpp.simplexml.Node.getTag()=nbxmpp.simplexml.Node-class.html#getTag"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-104', 'getTag', 'link-104');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'starttls'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-comment"># Server advertises TLS support, start negotiation</tt> </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">stream_started</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt id="link-105" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -657,10 +690,10 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-98', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'TLS supported by remote server. Requesting TLS start.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._tls_negotiation_handler()=nbxmpp.client_nb.NonBlockingClient-class.html#_tls_negotiation_handler"><a title="nbxmpp.client_nb.NonBlockingClient._tls_negotiation_handler" class="py-name" href="#" onclick="return doclink('link-99', '_tls_negotiation_handler', 'link-99');">_tls_negotiation_handler</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> <tt id="link-100" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-105', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'TLS supported by remote server. Requesting TLS start.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._tls_negotiation_handler()=nbxmpp.client_nb.NonBlockingClient-class.html#_tls_negotiation_handler"><a title="nbxmpp.client_nb.NonBlockingClient._tls_negotiation_handler" class="py-name" href="#" onclick="return doclink('link-106', '_tls_negotiation_handler', 'link-106');">_tls_negotiation_handler</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt id="link-107" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -671,26 +704,26 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-100', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'While connecting with type = "tls": TLS unsupported '</tt> <tt class="py-op">+</tt> </tt>
-<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-string">'by remote server'</tt><tt class="py-op">)</tt> </tt>
-<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-107', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'While connecting with type = "tls": TLS unsupported '</tt> <tt class="py-op">+</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-string">'by remote server'</tt><tt class="py-op">)</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
nbxmpp.client_nb.NonBlockingClient._on_connect
nbxmpp.transports_nb.NonBlockingTCP._on_connect
-nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-101', '_on_connect', 'link-92');">_on_connect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> </tt>
-<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'ssl'</tt><tt class="py-op">,</tt> <tt class="py-string">'tls'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
+nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-108', '_on_connect', 'link-99');">_on_connect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'ssl'</tt><tt class="py-op">,</tt> <tt class="py-string">'tls'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
nbxmpp.client_nb.NonBlockingClient._on_connect
nbxmpp.transports_nb.NonBlockingTCP._on_connect
-nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-102', '_on_connect', 'link-92');">_on_connect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-string">'Stream opened for unsupported connection'</tt> </tt>
-</div><a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient._tls_negotiation_handler"></a><div id="NonBlockingClient._tls_negotiation_handler-def"><a name="L402"></a><tt class="py-lineno">402</tt> <a class="py-toggle" href="#" id="NonBlockingClient._tls_negotiation_handler-toggle" onclick="return toggle('NonBlockingClient._tls_negotiation_handler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_tls_negotiation_handler">_tls_negotiation_handler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">con</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient._tls_negotiation_handler-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._tls_negotiation_handler-expanded"><a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"><tt class="py-docstring"> Take care of TLS negotioation with &lt;starttls&gt;</tt> </tt>
-<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt id="link-103" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-109', '_on_connect', 'link-99');">_on_connect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-string">'Stream opened for unsupported connection'</tt> </tt>
+</div><a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient._tls_negotiation_handler"></a><div id="NonBlockingClient._tls_negotiation_handler-def"><a name="L420"></a><tt class="py-lineno">420</tt> <a class="py-toggle" href="#" id="NonBlockingClient._tls_negotiation_handler-toggle" onclick="return toggle('NonBlockingClient._tls_negotiation_handler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_tls_negotiation_handler">_tls_negotiation_handler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">con</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient._tls_negotiation_handler-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._tls_negotiation_handler-expanded"><a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"><tt class="py-docstring"> Take care of TLS negotioation with &lt;starttls&gt;</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt id="link-110" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -701,37 +734,37 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-103', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-------------tls_negotiaton_handler() &gt;&gt; tag: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">tag</tt><tt class="py-op">)</tt> </tt>
-<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">con</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">tag</tt><tt class="py-op">:</tt> </tt>
-<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-comment"># starting state when we send the &lt;starttls&gt;</tt> </tt>
-<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name" targets="Method nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandlerOnce()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandlerOnce"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandlerOnce" class="py-name" href="#" onclick="return doclink('link-104', 'RegisterHandlerOnce', 'link-104');">RegisterHandlerOnce</a></tt><tt class="py-op">(</tt><tt class="py-string">'proceed'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._tls_negotiation_handler" class="py-name" href="#" onclick="return doclink('link-105', '_tls_negotiation_handler', 'link-99');">_tls_negotiation_handler</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-106" class="py-name"><a title="nbxmpp.protocol.NS_TLS" class="py-name" href="#" onclick="return doclink('link-106', 'NS_TLS', 'link-7');">NS_TLS</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandlerOnce" class="py-name" href="#" onclick="return doclink('link-107', 'RegisterHandlerOnce', 'link-104');">RegisterHandlerOnce</a></tt><tt class="py-op">(</tt><tt class="py-string">'failure'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._tls_negotiation_handler" class="py-name" href="#" onclick="return doclink('link-108', '_tls_negotiation_handler', 'link-99');">_tls_negotiation_handler</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-109" class="py-name"><a title="nbxmpp.protocol.NS_TLS" class="py-name" href="#" onclick="return doclink('link-109', 'NS_TLS', 'link-7');">NS_TLS</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.send()=nbxmpp.bosh.NonBlockingBOSH-class.html#send,Method nbxmpp.dispatcher_nb.XMPPDispatcher.send()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send,Method nbxmpp.tls_nb.PyOpenSSLWrapper.send()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#send,Method nbxmpp.tls_nb.SSLWrapper.send()=nbxmpp.tls_nb.SSLWrapper-class.html#send,Method nbxmpp.tls_nb.StdlibSSLWrapper.send()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#send,Method nbxmpp.transports_nb.NonBlockingTCP.send()=nbxmpp.transports_nb.NonBlockingTCP-class.html#send,Method nbxmpp.transports_nb.NonBlockingTransport.send()=nbxmpp.transports_nb.NonBlockingTransport-class.html#send"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-110', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-------------tls_negotiaton_handler() &gt;&gt; tag: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">tag</tt><tt class="py-op">)</tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">con</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">tag</tt><tt class="py-op">:</tt> </tt>
+<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-comment"># starting state when we send the &lt;starttls&gt;</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name" targets="Method nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandlerOnce()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandlerOnce"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandlerOnce" class="py-name" href="#" onclick="return doclink('link-111', 'RegisterHandlerOnce', 'link-111');">RegisterHandlerOnce</a></tt><tt class="py-op">(</tt><tt class="py-string">'proceed'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._tls_negotiation_handler" class="py-name" href="#" onclick="return doclink('link-112', '_tls_negotiation_handler', 'link-106');">_tls_negotiation_handler</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-113" class="py-name"><a title="nbxmpp.protocol.NS_TLS" class="py-name" href="#" onclick="return doclink('link-113', 'NS_TLS', 'link-7');">NS_TLS</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandlerOnce" class="py-name" href="#" onclick="return doclink('link-114', 'RegisterHandlerOnce', 'link-111');">RegisterHandlerOnce</a></tt><tt class="py-op">(</tt><tt class="py-string">'failure'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._tls_negotiation_handler" class="py-name" href="#" onclick="return doclink('link-115', '_tls_negotiation_handler', 'link-106');">_tls_negotiation_handler</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-116" class="py-name"><a title="nbxmpp.protocol.NS_TLS" class="py-name" href="#" onclick="return doclink('link-116', 'NS_TLS', 'link-7');">NS_TLS</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.send()=nbxmpp.bosh.NonBlockingBOSH-class.html#send,Method nbxmpp.dispatcher_nb.XMPPDispatcher.send()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send,Method nbxmpp.tls_nb.PyOpenSSLWrapper.send()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#send,Method nbxmpp.tls_nb.SSLWrapper.send()=nbxmpp.tls_nb.SSLWrapper-class.html#send,Method nbxmpp.tls_nb.StdlibSSLWrapper.send()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#send,Method nbxmpp.transports_nb.NonBlockingTCP.send()=nbxmpp.transports_nb.NonBlockingTCP-class.html#send,Method nbxmpp.transports_nb.NonBlockingTransport.send()=nbxmpp.transports_nb.NonBlockingTransport-class.html#send"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-110', 'send', 'link-110');">send</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;starttls xmlns="%s"/&gt;'</tt> <tt class="py-op">%</tt> <tt id="link-111" class="py-name"><a title="nbxmpp.protocol.NS_TLS" class="py-name" href="#" onclick="return doclink('link-111', 'NS_TLS', 'link-7');">NS_TLS</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-comment"># we got &lt;proceed&gt; or &lt;failure&gt;</tt> </tt>
-<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name" targets="Method nbxmpp.simplexml.Node.getNamespace()=nbxmpp.simplexml.Node-class.html#getNamespace"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-112', 'getNamespace', 'link-112');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt id="link-113" class="py-name"><a title="nbxmpp.protocol.NS_TLS" class="py-name" href="#" onclick="return doclink('link-113', 'NS_TLS', 'link-7');">NS_TLS</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-117', 'send', 'link-117');">send</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;starttls xmlns="%s"/&gt;'</tt> <tt class="py-op">%</tt> <tt id="link-118" class="py-name"><a title="nbxmpp.protocol.NS_TLS" class="py-name" href="#" onclick="return doclink('link-118', 'NS_TLS', 'link-7');">NS_TLS</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-comment"># we got &lt;proceed&gt; or &lt;failure&gt;</tt> </tt>
+<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name" targets="Method nbxmpp.simplexml.Node.getNamespace()=nbxmpp.simplexml.Node-class.html#getNamespace"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-119', 'getNamespace', 'link-119');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt id="link-120" class="py-name"><a title="nbxmpp.protocol.NS_TLS" class="py-name" href="#" onclick="return doclink('link-120', 'NS_TLS', 'link-7');">NS_TLS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
-nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-114', 'disconnect', 'link-39');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown namespace: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-115', 'getNamespace', 'link-112');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-name">tagname</tt> <tt class="py-op">=</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.getName()=nbxmpp.roster_nb.NonBlockingRoster-class.html#getName,Method nbxmpp.simplexml.Node.getName()=nbxmpp.simplexml.Node-class.html#getName"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-116', 'getName', 'link-116');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tagname</tt> <tt class="py-op">==</tt> <tt class="py-string">'failure'</tt><tt class="py-op">:</tt> </tt>
-<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-121', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown namespace: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-122', 'getNamespace', 'link-119');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-name">tagname</tt> <tt class="py-op">=</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.getName()=nbxmpp.roster_nb.NonBlockingRoster-class.html#getName,Method nbxmpp.simplexml.Node.getName()=nbxmpp.simplexml.Node-class.html#getName"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-123', 'getName', 'link-123');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tagname</tt> <tt class="py-op">==</tt> <tt class="py-string">'failure'</tt><tt class="py-op">:</tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
-nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-117', 'disconnect', 'link-39');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-string">'TLS &lt;failure&gt; received: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">tag</tt><tt class="py-op">)</tt> </tt>
-<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt id="link-118" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-124', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-string">'TLS &lt;failure&gt; received: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">tag</tt><tt class="py-op">)</tt> </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt id="link-125" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -742,30 +775,30 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-118', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Got starttls proceed response. Switching to TLS/SSL...'</tt><tt class="py-op">)</tt> </tt>
-<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-comment"># following call wouldn't work for BOSH transport but it doesn't matter</tt> </tt>
-<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-comment"># because &lt;starttls&gt; negotiation with BOSH is forbidden</tt> </tt>
-<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP.tls_init()=nbxmpp.transports_nb.NonBlockingTCP-class.html#tls_init"><a title="nbxmpp.transports_nb.NonBlockingTCP.tls_init" class="py-name" href="#" onclick="return doclink('link-119', 'tls_init', 'link-119');">tls_init</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-name">on_succ</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect" class="py-name" href="#" onclick="return doclink('link-120', '_xmpp_connect', 'link-59');">_xmpp_connect</a></tt><tt class="py-op">(</tt><tt class="py-name">socket_type</tt><tt class="py-op">=</tt><tt class="py-string">'tls'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-name">on_fail</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-125', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Got starttls proceed response. Switching to TLS/SSL...'</tt><tt class="py-op">)</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-comment"># following call wouldn't work for BOSH transport but it doesn't matter</tt> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-comment"># because &lt;starttls&gt; negotiation with BOSH is forbidden</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP.tls_init()=nbxmpp.transports_nb.NonBlockingTCP-class.html#tls_init"><a title="nbxmpp.transports_nb.NonBlockingTCP.tls_init" class="py-name" href="#" onclick="return doclink('link-126', 'tls_init', 'link-126');">tls_init</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt class="py-name">on_succ</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._xmpp_connect" class="py-name" href="#" onclick="return doclink('link-127', '_xmpp_connect', 'link-64');">_xmpp_connect</a></tt><tt class="py-op">(</tt><tt class="py-name">socket_type</tt><tt class="py-op">=</tt><tt class="py-string">'tls'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-name">on_fail</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
-nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-121', 'disconnect', 'link-39');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-string">'error while etabilishing TLS'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient._on_connect"></a><div id="NonBlockingClient._on_connect-def"><a name="L430"></a><tt class="py-lineno">430</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_connect-toggle" onclick="return toggle('NonBlockingClient._on_connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_connect">_on_connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient._on_connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_connect-expanded"><a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"><tt class="py-docstring"> Preceed call of on_connect callback</tt> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
-nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-122', 'onreceive', 'link-66');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_connect</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.raise_event"></a><div id="NonBlockingClient.raise_event-def"><a name="L437"></a><tt class="py-lineno">437</tt> <a class="py-toggle" href="#" id="NonBlockingClient.raise_event-toggle" onclick="return toggle('NonBlockingClient.raise_event');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#raise_event">raise_event</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">event_type</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.raise_event-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.raise_event-expanded"><a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"><tt class="py-docstring"> Raise event to connection instance. DATA_SENT and DATA_RECIVED events</tt> </tt>
-<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"><tt class="py-docstring"> are used in XML console to show XMPP traffic</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt id="link-123" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-128', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-string">'error while etabilishing TLS'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient._on_connect"></a><div id="NonBlockingClient._on_connect-def"><a name="L448"></a><tt class="py-lineno">448</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_connect-toggle" onclick="return toggle('NonBlockingClient._on_connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_connect">_on_connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient._on_connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_connect-expanded"><a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"><tt class="py-docstring"> Preceed call of on_connect callback</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-129', 'onreceive', 'link-71');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_connect</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.raise_event"></a><div id="NonBlockingClient.raise_event-def"><a name="L455"></a><tt class="py-lineno">455</tt> <a class="py-toggle" href="#" id="NonBlockingClient.raise_event-toggle" onclick="return toggle('NonBlockingClient.raise_event');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#raise_event">raise_event</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">event_type</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.raise_event-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.raise_event-expanded"><a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"><tt class="py-docstring"> Raise event to connection instance. DATA_SENT and DATA_RECIVED events</tt> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"><tt class="py-docstring"> are used in XML console to show XMPP traffic</tt> </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt id="link-130" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -776,225 +809,225 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-123', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'raising event from transport: :::::%s::::\n_____________\n%s\n_____________\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">event_type</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'Dispatcher'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-124', 'Dispatcher', 'link-61');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-125" class="py-name" targets="Method nbxmpp.dispatcher_nb.XMPPDispatcher.Event()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#Event"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.Event" class="py-name" href="#" onclick="return doclink('link-125', 'Event', 'link-125');">Event</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">event_type</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> </tt>
-<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"><tt class="py-comment">###############################################################################</tt> </tt>
-<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"><tt class="py-comment">### follows code for authentication, resource bind, session and roster download</tt> </tt>
-<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"><tt class="py-comment">###############################################################################</tt> </tt>
-<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.auth"></a><div id="NonBlockingClient.auth-def"><a name="L450"></a><tt class="py-lineno">450</tt> <a class="py-toggle" href="#" id="NonBlockingClient.auth-toggle" onclick="return toggle('NonBlockingClient.auth');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#auth">auth</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">user</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">,</tt> <tt class="py-param">resource</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">sasl</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-param">on_auth</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.auth-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.auth-expanded"><a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"><tt class="py-docstring"> Authenticate connnection and bind resource. If resource is not provided</tt> </tt>
-<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"><tt class="py-docstring"> random one or library name used</tt> </tt>
-<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"><tt class="py-docstring"> :param user: XMPP username</tt> </tt>
-<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"><tt class="py-docstring"> :param password: XMPP password</tt> </tt>
-<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"><tt class="py-docstring"> :param resource: resource that shall be used for auth/connecting</tt> </tt>
-<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"><tt class="py-docstring"> :param sasl: Boolean indicating if SASL shall be used. (default: True)</tt> </tt>
-<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"><tt class="py-docstring"> :param on_auth: Callback, called after auth. On auth failure, argument</tt> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"><tt class="py-docstring"> is None.</tt> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_User</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Password</tt> <tt class="py-op">=</tt> <tt class="py-name">user</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt> </tt>
-<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Resource</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sasl</tt> <tt class="py-op">=</tt> <tt class="py-name">resource</tt><tt class="py-op">,</tt> <tt class="py-name">sasl</tt> </tt>
-<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_auth</tt> <tt class="py-op">=</tt> <tt class="py-name">on_auth</tt> </tt>
-<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_doc_attrs()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_doc_attrs"><a title="nbxmpp.client_nb.NonBlockingClient._on_doc_attrs" class="py-name" href="#" onclick="return doclink('link-126', '_on_doc_attrs', 'link-126');">_on_doc_attrs</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-</div><a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient._on_old_auth"></a><div id="NonBlockingClient._on_old_auth-def"><a name="L468"></a><tt class="py-lineno">468</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_old_auth-toggle" onclick="return toggle('NonBlockingClient._on_old_auth');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_old_auth">_on_old_auth</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">res</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient._on_old_auth-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_old_auth-expanded"><a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"><tt class="py-docstring"> Callback used by NON-SASL auth. On auth failure, res is None</tt> </tt>
-<a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">res</tt><tt class="py-op">:</tt> </tt>
-<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-op">+=</tt> <tt class="py-string">'+old_auth'</tt> </tt>
-<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_auth</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'old_auth'</tt><tt class="py-op">)</tt> </tt>
-<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_auth</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient._on_sasl_auth"></a><div id="NonBlockingClient._on_sasl_auth-def"><a name="L478"></a><tt class="py-lineno">478</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_sasl_auth-toggle" onclick="return toggle('NonBlockingClient._on_sasl_auth');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_sasl_auth">_on_sasl_auth</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">res</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient._on_sasl_auth-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_sasl_auth-expanded"><a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"><tt class="py-docstring"> Used internally. On auth failure, res is None</tt> </tt>
-<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
-nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-127', 'onreceive', 'link-66');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">res</tt><tt class="py-op">:</tt> </tt>
-<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-op">+=</tt> <tt class="py-string">'+sasl'</tt> </tt>
-<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_auth</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'sasl'</tt><tt class="py-op">)</tt> </tt>
-<a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_auth</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient._on_doc_attrs"></a><div id="NonBlockingClient._on_doc_attrs-def"><a name="L489"></a><tt class="py-lineno">489</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_doc_attrs-toggle" onclick="return toggle('NonBlockingClient._on_doc_attrs');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_doc_attrs">_on_doc_attrs</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient._on_doc_attrs-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_doc_attrs-expanded"><a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"><tt class="py-docstring"> Plug authentication objects and start auth</tt> </tt>
-<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sasl</tt><tt class="py-op">:</tt> </tt>
-<a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> <tt id="link-128" class="py-name"><a title="nbxmpp.auth_nb" class="py-name" href="#" onclick="return doclink('link-128', 'auth_nb', 'link-2');">auth_nb</a></tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-129', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-130', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'raising event from transport: :::::%s::::\n_____________\n%s\n_____________\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">event_type</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'Dispatcher'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-131', 'Dispatcher', 'link-66');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-132" class="py-name" targets="Method nbxmpp.dispatcher_nb.XMPPDispatcher.Event()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#Event"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.Event" class="py-name" href="#" onclick="return doclink('link-132', 'Event', 'link-132');">Event</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">event_type</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"><tt class="py-comment">###############################################################################</tt> </tt>
+<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"><tt class="py-comment">### follows code for authentication, resource bind, session and roster download</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"><tt class="py-comment">###############################################################################</tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.auth"></a><div id="NonBlockingClient.auth-def"><a name="L468"></a><tt class="py-lineno">468</tt> <a class="py-toggle" href="#" id="NonBlockingClient.auth-toggle" onclick="return toggle('NonBlockingClient.auth');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#auth">auth</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">user</tt><tt class="py-op">,</tt> <tt class="py-param">password</tt><tt class="py-op">,</tt> <tt class="py-param">resource</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">sasl</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-param">on_auth</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.auth-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.auth-expanded"><a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"><tt class="py-docstring"> Authenticate connnection and bind resource. If resource is not provided</tt> </tt>
+<a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"><tt class="py-docstring"> random one or library name used</tt> </tt>
+<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"><tt class="py-docstring"> :param user: XMPP username</tt> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"><tt class="py-docstring"> :param password: XMPP password</tt> </tt>
+<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"><tt class="py-docstring"> :param resource: resource that shall be used for auth/connecting</tt> </tt>
+<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"><tt class="py-docstring"> :param sasl: Boolean indicating if SASL shall be used. (default: True)</tt> </tt>
+<a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"><tt class="py-docstring"> :param on_auth: Callback, called after auth. On auth failure, argument</tt> </tt>
+<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"><tt class="py-docstring"> is None.</tt> </tt>
+<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_User</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Password</tt> <tt class="py-op">=</tt> <tt class="py-name">user</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt> </tt>
+<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Resource</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sasl</tt> <tt class="py-op">=</tt> <tt class="py-name">resource</tt><tt class="py-op">,</tt> <tt class="py-name">sasl</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_auth</tt> <tt class="py-op">=</tt> <tt class="py-name">on_auth</tt> </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_doc_attrs()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_doc_attrs"><a title="nbxmpp.client_nb.NonBlockingClient._on_doc_attrs" class="py-name" href="#" onclick="return doclink('link-133', '_on_doc_attrs', 'link-133');">_on_doc_attrs</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+</div><a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient._on_old_auth"></a><div id="NonBlockingClient._on_old_auth-def"><a name="L486"></a><tt class="py-lineno">486</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_old_auth-toggle" onclick="return toggle('NonBlockingClient._on_old_auth');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_old_auth">_on_old_auth</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">res</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient._on_old_auth-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_old_auth-expanded"><a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"><tt class="py-docstring"> Callback used by NON-SASL auth. On auth failure, res is None</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">res</tt><tt class="py-op">:</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-op">+=</tt> <tt class="py-string">'+old_auth'</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_auth</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'old_auth'</tt><tt class="py-op">)</tt> </tt>
+<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_auth</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient._on_sasl_auth"></a><div id="NonBlockingClient._on_sasl_auth-def"><a name="L496"></a><tt class="py-lineno">496</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_sasl_auth-toggle" onclick="return toggle('NonBlockingClient._on_sasl_auth');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_sasl_auth">_on_sasl_auth</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">res</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient._on_sasl_auth-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_sasl_auth-expanded"><a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"><tt class="py-docstring"> Used internally. On auth failure, res is None</tt> </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-134', 'onreceive', 'link-71');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">res</tt><tt class="py-op">:</tt> </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-op">+=</tt> <tt class="py-string">'+sasl'</tt> </tt>
+<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_auth</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'sasl'</tt><tt class="py-op">)</tt> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_auth</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient._on_doc_attrs"></a><div id="NonBlockingClient._on_doc_attrs-def"><a name="L507"></a><tt class="py-lineno">507</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_doc_attrs-toggle" onclick="return toggle('NonBlockingClient._on_doc_attrs');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_doc_attrs">_on_doc_attrs</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient._on_doc_attrs-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_doc_attrs-expanded"><a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"><tt class="py-docstring"> Plug authentication objects and start auth</tt> </tt>
+<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sasl</tt><tt class="py-op">:</tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"> <tt id="link-135" class="py-name"><a title="nbxmpp.auth_nb" class="py-name" href="#" onclick="return doclink('link-135', 'auth_nb', 'link-2');">auth_nb</a></tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-136', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
nbxmpp.plugin.PlugIn.get_instance
-nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-130', 'get_instance', 'link-38');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_User</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Password</tt><tt class="py-op">,</tt> </tt>
-<a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_start_sasl()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_start_sasl"><a title="nbxmpp.client_nb.NonBlockingClient._on_start_sasl" class="py-name" href="#" onclick="return doclink('link-131', '_on_start_sasl', 'link-131');">_on_start_sasl</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
+nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-137', 'get_instance', 'link-42');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_User</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Password</tt><tt class="py-op">,</tt> </tt>
+<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._on_start_sasl" class="py-name" href="#" onclick="return doclink('link-138', '_on_start_sasl', 'link-24');">_on_start_sasl</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
nbxmpp.dispatcher_nb.Dispatcher.PlugIn
nbxmpp.plugin.PlugIn
-nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-132', 'PlugIn', 'link-52');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'SASL'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sasl</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-133', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt class="py-name">startsasl</tt> <tt class="py-op">==</tt> <tt class="py-string">'not-supported'</tt><tt class="py-op">:</tt> </tt>
-<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Resource</tt><tt class="py-op">:</tt> </tt>
-<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Resource</tt> <tt class="py-op">=</tt> <tt class="py-string">'xmpppy'</tt> </tt>
-<a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt id="link-134" class="py-name"><a title="nbxmpp.auth_nb" class="py-name" href="#" onclick="return doclink('link-134', 'auth_nb', 'link-2');">auth_nb</a></tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingNonSASL" class="py-name" href="#" onclick="return doclink('link-135', 'NonBlockingNonSASL', 'link-19');">NonBlockingNonSASL</a></tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
+nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-139', 'PlugIn', 'link-56');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'SASL'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sasl</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-140', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt class="py-name">startsasl</tt> <tt class="py-op">==</tt> <tt class="py-string">'not-supported'</tt><tt class="py-op">:</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Resource</tt><tt class="py-op">:</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Resource</tt> <tt class="py-op">=</tt> <tt class="py-string">'xmpppy'</tt> </tt>
+<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> <tt id="link-141" class="py-name"><a title="nbxmpp.auth_nb" class="py-name" href="#" onclick="return doclink('link-141', 'auth_nb', 'link-2');">auth_nb</a></tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingNonSASL" class="py-name" href="#" onclick="return doclink('link-142', 'NonBlockingNonSASL', 'link-19');">NonBlockingNonSASL</a></tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
nbxmpp.plugin.PlugIn.get_instance
-nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-136', 'get_instance', 'link-38');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_User</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Password</tt><tt class="py-op">,</tt> </tt>
-<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Resource</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_old_auth()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_old_auth"><a title="nbxmpp.client_nb.NonBlockingClient._on_old_auth" class="py-name" href="#" onclick="return doclink('link-137', '_on_old_auth', 'link-137');">_on_old_auth</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
+nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-143', 'get_instance', 'link-42');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_User</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Password</tt><tt class="py-op">,</tt> </tt>
+<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Resource</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_old_auth()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_old_auth"><a title="nbxmpp.client_nb.NonBlockingClient._on_old_auth" class="py-name" href="#" onclick="return doclink('link-144', '_on_old_auth', 'link-144');">_on_old_auth</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
nbxmpp.dispatcher_nb.Dispatcher.PlugIn
nbxmpp.plugin.PlugIn
-nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-138', 'PlugIn', 'link-52');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-139', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt id="link-140" class="py-name" targets="Method nbxmpp.auth_nb.SASL.auth()=nbxmpp.auth_nb.SASL-class.html#auth,Method nbxmpp.client_nb.NonBlockingClient.auth()=nbxmpp.client_nb.NonBlockingClient-class.html#auth"><a title="nbxmpp.auth_nb.SASL.auth
-nbxmpp.client_nb.NonBlockingClient.auth" class="py-name" href="#" onclick="return doclink('link-140', 'auth', 'link-140');">auth</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-</div><a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient._on_start_sasl"></a><div id="NonBlockingClient._on_start_sasl-def"><a name="L507"></a><tt class="py-lineno">507</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_start_sasl-toggle" onclick="return toggle('NonBlockingClient._on_start_sasl');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_start_sasl">_on_start_sasl</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient._on_start_sasl-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_start_sasl-expanded"><a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"><tt class="py-docstring"> Callback used by SASL, called on each auth step</tt> </tt>
-<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
-<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-141', 'Dispatcher', 'link-61');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
-nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-142', 'ProcessNonBlocking', 'link-77');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'SASL'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
-<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"> <tt class="py-comment"># SASL is pluged out, possible disconnect</tt> </tt>
-<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-143', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt class="py-name">startsasl</tt> <tt class="py-op">==</tt> <tt class="py-string">'in-process'</tt><tt class="py-op">:</tt> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
-nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-144', 'onreceive', 'link-66');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-145', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt class="py-name">startsasl</tt> <tt class="py-op">==</tt> <tt class="py-string">'failure'</tt><tt class="py-op">:</tt> </tt>
-<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> <tt class="py-comment"># wrong user/pass, stop auth</tt> </tt>
-<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'SASL'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
-<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-146', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-147', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># FIXME: is this intended? We use ''elsewhere</tt> </tt>
-<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_sasl_auth()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_sasl_auth"><a title="nbxmpp.client_nb.NonBlockingClient._on_sasl_auth" class="py-name" href="#" onclick="return doclink('link-148', '_on_sasl_auth', 'link-148');">_on_sasl_auth</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-149', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt class="py-name">startsasl</tt> <tt class="py-op">==</tt> <tt class="py-string">'success'</tt><tt class="py-op">:</tt> </tt>
-<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> <tt class="py-name">nb_bind</tt> <tt class="py-op">=</tt> <tt id="link-150" class="py-name"><a title="nbxmpp.auth_nb" class="py-name" href="#" onclick="return doclink('link-150', 'auth_nb', 'link-2');">auth_nb</a></tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind
-nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind" class="py-name" href="#" onclick="return doclink('link-151', 'NonBlockingBind', 'link-17');">NonBlockingBind</a></tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
+nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-145', 'PlugIn', 'link-56');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-146', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt id="link-147" class="py-name" targets="Method nbxmpp.auth_nb.SASL.auth()=nbxmpp.auth_nb.SASL-class.html#auth,Method nbxmpp.client_nb.NonBlockingClient.auth()=nbxmpp.client_nb.NonBlockingClient-class.html#auth"><a title="nbxmpp.auth_nb.SASL.auth
+nbxmpp.client_nb.NonBlockingClient.auth" class="py-name" href="#" onclick="return doclink('link-147', 'auth', 'link-147');">auth</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient._on_start_sasl"></a><div id="NonBlockingClient._on_start_sasl-def"><a name="L525"></a><tt class="py-lineno">525</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_start_sasl-toggle" onclick="return toggle('NonBlockingClient._on_start_sasl');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_start_sasl">_on_start_sasl</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient._on_start_sasl-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_start_sasl-expanded"><a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"><tt class="py-docstring"> Callback used by SASL, called on each auth step</tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-148', 'Dispatcher', 'link-66');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
+nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-149', 'ProcessNonBlocking', 'link-82');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'SASL'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"> <tt class="py-comment"># SASL is pluged out, possible disconnect</tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-150', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt class="py-name">startsasl</tt> <tt class="py-op">==</tt> <tt class="py-string">'in-process'</tt><tt class="py-op">:</tt> </tt>
+<a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-151', 'onreceive', 'link-71');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-152', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt class="py-name">startsasl</tt> <tt class="py-op">==</tt> <tt class="py-string">'failure'</tt><tt class="py-op">:</tt> </tt>
+<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"> <tt class="py-comment"># wrong user/pass, stop auth</tt> </tt>
+<a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'SASL'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
+<a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-153', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-154', 'PlugOut', 'link-16');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># FIXME: is this intended? We use ''elsewhere</tt> </tt>
+<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_sasl_auth()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_sasl_auth"><a title="nbxmpp.client_nb.NonBlockingClient._on_sasl_auth" class="py-name" href="#" onclick="return doclink('link-155', '_on_sasl_auth', 'link-155');">_on_sasl_auth</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="nbxmpp.auth_nb.SASL" class="py-name" href="#" onclick="return doclink('link-156', 'SASL', 'link-21');">SASL</a></tt><tt class="py-op">.</tt><tt class="py-name">startsasl</tt> <tt class="py-op">==</tt> <tt class="py-string">'success'</tt><tt class="py-op">:</tt> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"> <tt class="py-name">nb_bind</tt> <tt class="py-op">=</tt> <tt id="link-157" class="py-name"><a title="nbxmpp.auth_nb" class="py-name" href="#" onclick="return doclink('link-157', 'auth_nb', 'link-2');">auth_nb</a></tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind
+nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind" class="py-name" href="#" onclick="return doclink('link-158', 'NonBlockingBind', 'link-17');">NonBlockingBind</a></tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
nbxmpp.plugin.PlugIn.get_instance
-nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-152', 'get_instance', 'link-38');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"> <tt class="py-name">sm</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_caller</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt> </tt>
-<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt> <tt class="py-keyword">and</tt> <tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">resumption</tt><tt class="py-op">:</tt> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> <tt class="py-name">nb_bind</tt><tt class="py-op">.</tt><tt class="py-name">resuming</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"> <tt class="py-name">sm</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name" targets="Method nbxmpp.smacks.Smacks.set_owner()=nbxmpp.smacks.Smacks-class.html#set_owner"><a title="nbxmpp.smacks.Smacks.set_owner" class="py-name" href="#" onclick="return doclink('link-153', 'set_owner', 'link-153');">set_owner</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-154', 'Dispatcher', 'link-61');">Dispatcher</a></tt><tt class="py-op">.</tt><tt class="py-name">sm</tt> <tt class="py-op">=</tt> <tt class="py-name">sm</tt> </tt>
-<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"> <tt class="py-name">nb_bind</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
+nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-159', 'get_instance', 'link-42');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"> <tt class="py-name">sm</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_caller</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt> </tt>
+<a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt> <tt class="py-keyword">and</tt> <tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">resumption</tt><tt class="py-op">:</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"> <tt class="py-name">nb_bind</tt><tt class="py-op">.</tt><tt class="py-name">resuming</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> <tt class="py-name">sm</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name" targets="Method nbxmpp.smacks.Smacks.set_owner()=nbxmpp.smacks.Smacks-class.html#set_owner"><a title="nbxmpp.smacks.Smacks.set_owner" class="py-name" href="#" onclick="return doclink('link-160', 'set_owner', 'link-160');">set_owner</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-161', 'Dispatcher', 'link-66');">Dispatcher</a></tt><tt class="py-op">.</tt><tt class="py-name">sm</tt> <tt class="py-op">=</tt> <tt class="py-name">sm</tt> </tt>
+<a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"> <tt class="py-name">nb_bind</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
nbxmpp.dispatcher_nb.Dispatcher.PlugIn
nbxmpp.plugin.PlugIn
-nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-155', 'PlugIn', 'link-52');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_auth</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'sasl'</tt><tt class="py-op">)</tt> </tt>
-<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"> </tt>
-<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> <tt class="py-name">nb_bind</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
+nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-162', 'PlugIn', 'link-56');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_auth</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'sasl'</tt><tt class="py-op">)</tt> </tt>
+<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"> </tt>
+<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt class="py-name">nb_bind</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
nbxmpp.dispatcher_nb.Dispatcher.PlugIn
nbxmpp.plugin.PlugIn
-nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-156', 'PlugIn', 'link-52');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
-nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-157', 'onreceive', 'link-66');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_auth_bind()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_auth_bind"><a title="nbxmpp.client_nb.NonBlockingClient._on_auth_bind" class="py-name" href="#" onclick="return doclink('link-158', '_on_auth_bind', 'link-158');">_on_auth_bind</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-</div><a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient._on_auth_bind"></a><div id="NonBlockingClient._on_auth_bind-def"><a name="L540"></a><tt class="py-lineno">540</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_auth_bind-toggle" onclick="return toggle('NonBlockingClient._on_auth_bind');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_auth_bind">_on_auth_bind</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient._on_auth_bind-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_auth_bind-expanded"><a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: Why use this callback and not bind directly?</tt> </tt>
-<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
-<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-159', 'Dispatcher', 'link-61');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
-nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-160', 'ProcessNonBlocking', 'link-77');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind
-nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind" class="py-name" href="#" onclick="return doclink('link-161', 'NonBlockingBind', 'link-17');">NonBlockingBind</a></tt><tt class="py-op">.</tt><tt class="py-name">bound</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind
-nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind" class="py-name" href="#" onclick="return doclink('link-162', 'NonBlockingBind', 'link-17');">NonBlockingBind</a></tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind
-nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind" class="py-name" href="#" onclick="return doclink('link-163', 'NonBlockingBind', 'link-17');">NonBlockingBind</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Resource</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._on_sasl_auth" class="py-name" href="#" onclick="return doclink('link-164', '_on_sasl_auth', 'link-148');">_on_sasl_auth</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-</div><a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.initRoster"></a><div id="NonBlockingClient.initRoster-def"><a name="L549"></a><tt class="py-lineno">549</tt> <a class="py-toggle" href="#" id="NonBlockingClient.initRoster-toggle" onclick="return toggle('NonBlockingClient.initRoster');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#initRoster">initRoster</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">version</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.initRoster-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.initRoster-expanded"><a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"><tt class="py-docstring"> Plug in the roster</tt> </tt>
-<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'NonBlockingRoster'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-165" class="py-name"><a title="nbxmpp.roster_nb" class="py-name" href="#" onclick="return doclink('link-165', 'roster_nb', 'link-3');">roster_nb</a></tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster" class="py-name" href="#" onclick="return doclink('link-166', 'NonBlockingRoster', 'link-15');">NonBlockingRoster</a></tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
+nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-163', 'PlugIn', 'link-56');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-164', 'onreceive', 'link-71');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_auth_bind()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_auth_bind"><a title="nbxmpp.client_nb.NonBlockingClient._on_auth_bind" class="py-name" href="#" onclick="return doclink('link-165', '_on_auth_bind', 'link-165');">_on_auth_bind</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient._on_auth_bind"></a><div id="NonBlockingClient._on_auth_bind-def"><a name="L558"></a><tt class="py-lineno">558</tt> <a class="py-toggle" href="#" id="NonBlockingClient._on_auth_bind-toggle" onclick="return toggle('NonBlockingClient._on_auth_bind');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#_on_auth_bind">_on_auth_bind</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient._on_auth_bind-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient._on_auth_bind-expanded"><a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: Why use this callback and not bind directly?</tt> </tt>
+<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
+<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-166', 'Dispatcher', 'link-66');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
+nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-167', 'ProcessNonBlocking', 'link-82');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind
+nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind" class="py-name" href="#" onclick="return doclink('link-168', 'NonBlockingBind', 'link-17');">NonBlockingBind</a></tt><tt class="py-op">.</tt><tt class="py-name">bound</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind
+nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind" class="py-name" href="#" onclick="return doclink('link-169', 'NonBlockingBind', 'link-17');">NonBlockingBind</a></tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind
+nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind" class="py-name" href="#" onclick="return doclink('link-170', 'NonBlockingBind', 'link-17');">NonBlockingBind</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_Resource</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient._on_sasl_auth" class="py-name" href="#" onclick="return doclink('link-171', '_on_sasl_auth', 'link-155');">_on_sasl_auth</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.initRoster"></a><div id="NonBlockingClient.initRoster-def"><a name="L567"></a><tt class="py-lineno">567</tt> <a class="py-toggle" href="#" id="NonBlockingClient.initRoster-toggle" onclick="return toggle('NonBlockingClient.initRoster');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#initRoster">initRoster</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">version</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.initRoster-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.initRoster-expanded"><a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"><tt class="py-docstring"> Plug in the roster</tt> </tt>
+<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'NonBlockingRoster'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-172" class="py-name"><a title="nbxmpp.roster_nb" class="py-name" href="#" onclick="return doclink('link-172', 'roster_nb', 'link-3');">roster_nb</a></tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster" class="py-name" href="#" onclick="return doclink('link-173', 'NonBlockingRoster', 'link-15');">NonBlockingRoster</a></tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
nbxmpp.plugin.PlugIn.get_instance
-nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-167', 'get_instance', 'link-38');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-name">version</tt><tt class="py-op">=</tt><tt class="py-name">version</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
+nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-174', 'get_instance', 'link-42');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-name">version</tt><tt class="py-op">=</tt><tt class="py-name">version</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
nbxmpp.dispatcher_nb.Dispatcher.PlugIn
nbxmpp.plugin.PlugIn
-nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-168', 'PlugIn', 'link-52');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.getRoster"></a><div id="NonBlockingClient.getRoster-def"><a name="L556"></a><tt class="py-lineno">556</tt> <a class="py-toggle" href="#" id="NonBlockingClient.getRoster-toggle" onclick="return toggle('NonBlockingClient.getRoster');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#getRoster">getRoster</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">on_ready</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">force</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.getRoster-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.getRoster-expanded"><a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"><tt class="py-docstring"> Return the Roster instance, previously plugging it in and requesting</tt> </tt>
-<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"><tt class="py-docstring"> roster from server if needed</tt> </tt>
-<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'NonBlockingRoster'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster" class="py-name" href="#" onclick="return doclink('link-169', 'NonBlockingRoster', 'link-15');">NonBlockingRoster</a></tt><tt class="py-op">.</tt><tt id="link-170" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient.getRoster()=nbxmpp.client_nb.NonBlockingClient-class.html#getRoster,Method nbxmpp.roster_nb.NonBlockingRoster.getRoster()=nbxmpp.roster_nb.NonBlockingRoster-class.html#getRoster"><a title="nbxmpp.client_nb.NonBlockingClient.getRoster
-nbxmpp.roster_nb.NonBlockingRoster.getRoster" class="py-name" href="#" onclick="return doclink('link-170', 'getRoster', 'link-170');">getRoster</a></tt><tt class="py-op">(</tt><tt class="py-name">on_ready</tt><tt class="py-op">,</tt> <tt class="py-name">force</tt><tt class="py-op">)</tt> </tt>
-<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.sendPresence"></a><div id="NonBlockingClient.sendPresence-def"><a name="L565"></a><tt class="py-lineno">565</tt> <a class="py-toggle" href="#" id="NonBlockingClient.sendPresence-toggle" onclick="return toggle('NonBlockingClient.sendPresence');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#sendPresence">sendPresence</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">jid</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">requestRoster</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.sendPresence-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.sendPresence-expanded"><a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"><tt class="py-docstring"> Send some specific presence state. Can also request roster from server if</tt> </tt>
-<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"><tt class="py-docstring"> according agrument is set</tt> </tt>
-<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">requestRoster</tt><tt class="py-op">:</tt> </tt>
-<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: used somewhere?</tt> </tt>
-<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> <tt id="link-171" class="py-name"><a title="nbxmpp.roster_nb" class="py-name" href="#" onclick="return doclink('link-171', 'roster_nb', 'link-3');">roster_nb</a></tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster" class="py-name" href="#" onclick="return doclink('link-172', 'NonBlockingRoster', 'link-15');">NonBlockingRoster</a></tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
+nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-175', 'PlugIn', 'link-56');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.getRoster"></a><div id="NonBlockingClient.getRoster-def"><a name="L574"></a><tt class="py-lineno">574</tt> <a class="py-toggle" href="#" id="NonBlockingClient.getRoster-toggle" onclick="return toggle('NonBlockingClient.getRoster');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#getRoster">getRoster</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">on_ready</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">force</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.getRoster-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.getRoster-expanded"><a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"><tt class="py-docstring"> Return the Roster instance, previously plugging it in and requesting</tt> </tt>
+<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"><tt class="py-docstring"> roster from server if needed</tt> </tt>
+<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'NonBlockingRoster'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster" class="py-name" href="#" onclick="return doclink('link-176', 'NonBlockingRoster', 'link-15');">NonBlockingRoster</a></tt><tt class="py-op">.</tt><tt id="link-177" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient.getRoster()=nbxmpp.client_nb.NonBlockingClient-class.html#getRoster,Method nbxmpp.roster_nb.NonBlockingRoster.getRoster()=nbxmpp.roster_nb.NonBlockingRoster-class.html#getRoster"><a title="nbxmpp.client_nb.NonBlockingClient.getRoster
+nbxmpp.roster_nb.NonBlockingRoster.getRoster" class="py-name" href="#" onclick="return doclink('link-177', 'getRoster', 'link-177');">getRoster</a></tt><tt class="py-op">(</tt><tt class="py-name">on_ready</tt><tt class="py-op">,</tt> <tt class="py-name">force</tt><tt class="py-op">)</tt> </tt>
+<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.sendPresence"></a><div id="NonBlockingClient.sendPresence-def"><a name="L583"></a><tt class="py-lineno">583</tt> <a class="py-toggle" href="#" id="NonBlockingClient.sendPresence-toggle" onclick="return toggle('NonBlockingClient.sendPresence');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#sendPresence">sendPresence</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">jid</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">requestRoster</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.sendPresence-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.sendPresence-expanded"><a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"><tt class="py-docstring"> Send some specific presence state. Can also request roster from server if</tt> </tt>
+<a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"><tt class="py-docstring"> according agrument is set</tt> </tt>
+<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">requestRoster</tt><tt class="py-op">:</tt> </tt>
+<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: used somewhere?</tt> </tt>
+<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"> <tt id="link-178" class="py-name"><a title="nbxmpp.roster_nb" class="py-name" href="#" onclick="return doclink('link-178', 'roster_nb', 'link-3');">roster_nb</a></tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster" class="py-name" href="#" onclick="return doclink('link-179', 'NonBlockingRoster', 'link-15');">NonBlockingRoster</a></tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
nbxmpp.plugin.PlugIn.get_instance
-nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-173', 'get_instance', 'link-38');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
+nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-180', 'get_instance', 'link-42');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
nbxmpp.dispatcher_nb.Dispatcher.PlugIn
nbxmpp.plugin.PlugIn
-nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-174', 'PlugIn', 'link-52');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-181', 'PlugIn', 'link-56');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-175', 'send', 'link-110');">send</a></tt><tt class="py-op">(</tt><tt id="link-176" class="py-name"><a title="nbxmpp.dispatcher_nb" class="py-name" href="#" onclick="return doclink('link-176', 'dispatcher_nb', 'link-1');">dispatcher_nb</a></tt><tt class="py-op">.</tt><tt id="link-177" class="py-name" targets="Class nbxmpp.protocol.Presence=nbxmpp.protocol.Presence-class.html"><a title="nbxmpp.protocol.Presence" class="py-name" href="#" onclick="return doclink('link-177', 'Presence', 'link-177');">Presence</a></tt><tt class="py-op">(</tt><tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">jid</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-name">typ</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> </tt>
-<a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"><tt class="py-comment">###############################################################################</tt> </tt>
-<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"><tt class="py-comment">### following methods are moved from blocking client class of xmpppy</tt> </tt>
-<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"><tt class="py-comment">###############################################################################</tt> </tt>
-<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.RegisterDisconnectHandler"></a><div id="NonBlockingClient.RegisterDisconnectHandler-def"><a name="L579"></a><tt class="py-lineno">579</tt> <a class="py-toggle" href="#" id="NonBlockingClient.RegisterDisconnectHandler-toggle" onclick="return toggle('NonBlockingClient.RegisterDisconnectHandler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#RegisterDisconnectHandler">RegisterDisconnectHandler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.RegisterDisconnectHandler-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.RegisterDisconnectHandler-expanded"><a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"><tt class="py-docstring"> Register handler that will be called on disconnect</tt> </tt>
-<a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnect_handlers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.UnregisterDisconnectHandler"></a><div id="NonBlockingClient.UnregisterDisconnectHandler-def"><a name="L585"></a><tt class="py-lineno">585</tt> <a class="py-toggle" href="#" id="NonBlockingClient.UnregisterDisconnectHandler-toggle" onclick="return toggle('NonBlockingClient.UnregisterDisconnectHandler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#UnregisterDisconnectHandler">UnregisterDisconnectHandler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.UnregisterDisconnectHandler-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.UnregisterDisconnectHandler-expanded"><a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"><tt class="py-docstring"> Unregister handler that is called on disconnect</tt> </tt>
-<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnect_handlers</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.DisconnectHandler"></a><div id="NonBlockingClient.DisconnectHandler-def"><a name="L591"></a><tt class="py-lineno">591</tt> <a class="py-toggle" href="#" id="NonBlockingClient.DisconnectHandler-toggle" onclick="return toggle('NonBlockingClient.DisconnectHandler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#DisconnectHandler">DisconnectHandler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.DisconnectHandler-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.DisconnectHandler-expanded"><a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"><tt class="py-docstring"> Default disconnect handler. Just raises an IOError. If you choosed to use</tt> </tt>
-<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"><tt class="py-docstring"> this class in your production client, override this method or at least</tt> </tt>
-<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"><tt class="py-docstring"> unregister it.</tt> </tt>
-<a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L597"></a><tt class="py-lineno">597</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'Disconnected from server.'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.get_connect_type"></a><div id="NonBlockingClient.get_connect_type-def"><a name="L599"></a><tt class="py-lineno">599</tt> <a class="py-toggle" href="#" id="NonBlockingClient.get_connect_type-toggle" onclick="return toggle('NonBlockingClient.get_connect_type');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#get_connect_type">get_connect_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.get_connect_type-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.get_connect_type-expanded"><a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"><tt class="py-docstring"> Return connection state. F.e.: None / 'tls' / 'plain+non_sasl'</tt> </tt>
-<a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> </tt>
-</div><a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingClient.get_peerhost"></a><div id="NonBlockingClient.get_peerhost-def"><a name="L605"></a><tt class="py-lineno">605</tt> <a class="py-toggle" href="#" id="NonBlockingClient.get_peerhost-toggle" onclick="return toggle('NonBlockingClient.get_peerhost');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#get_peerhost">get_peerhost</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingClient.get_peerhost-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.get_peerhost-expanded"><a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"><tt class="py-docstring"> Gets the ip address of the account, from which is made connection to the</tt> </tt>
-<a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"><tt class="py-docstring"> server (e.g. IP and port of socket)</tt> </tt>
-<a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"><tt class="py-docstring"> We will create listening socket on the same ip</tt> </tt>
-<a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: tuple (ip, port) is expected (and checked for) but port num is</tt> </tt>
-<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"> <tt class="py-comment"># useless</tt> </tt>
-<a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">peerhost</tt> </tt>
-</div></div><a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> </tt><script type="text/javascript">
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-182', 'send', 'link-117');">send</a></tt><tt class="py-op">(</tt><tt id="link-183" class="py-name"><a title="nbxmpp.dispatcher_nb" class="py-name" href="#" onclick="return doclink('link-183', 'dispatcher_nb', 'link-1');">dispatcher_nb</a></tt><tt class="py-op">.</tt><tt id="link-184" class="py-name" targets="Class nbxmpp.protocol.Presence=nbxmpp.protocol.Presence-class.html"><a title="nbxmpp.protocol.Presence" class="py-name" href="#" onclick="return doclink('link-184', 'Presence', 'link-184');">Presence</a></tt><tt class="py-op">(</tt><tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">jid</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-name">typ</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> </tt>
+<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"><tt class="py-comment">###############################################################################</tt> </tt>
+<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"><tt class="py-comment">### following methods are moved from blocking client class of xmpppy</tt> </tt>
+<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"><tt class="py-comment">###############################################################################</tt> </tt>
+<a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.RegisterDisconnectHandler"></a><div id="NonBlockingClient.RegisterDisconnectHandler-def"><a name="L597"></a><tt class="py-lineno">597</tt> <a class="py-toggle" href="#" id="NonBlockingClient.RegisterDisconnectHandler-toggle" onclick="return toggle('NonBlockingClient.RegisterDisconnectHandler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#RegisterDisconnectHandler">RegisterDisconnectHandler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.RegisterDisconnectHandler-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.RegisterDisconnectHandler-expanded"><a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L599"></a><tt class="py-lineno">599</tt> <tt class="py-line"><tt class="py-docstring"> Register handler that will be called on disconnect</tt> </tt>
+<a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnect_handlers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.UnregisterDisconnectHandler"></a><div id="NonBlockingClient.UnregisterDisconnectHandler-def"><a name="L603"></a><tt class="py-lineno">603</tt> <a class="py-toggle" href="#" id="NonBlockingClient.UnregisterDisconnectHandler-toggle" onclick="return toggle('NonBlockingClient.UnregisterDisconnectHandler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#UnregisterDisconnectHandler">UnregisterDisconnectHandler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.UnregisterDisconnectHandler-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.UnregisterDisconnectHandler-expanded"><a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"><tt class="py-docstring"> Unregister handler that is called on disconnect</tt> </tt>
+<a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">disconnect_handlers</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.DisconnectHandler"></a><div id="NonBlockingClient.DisconnectHandler-def"><a name="L609"></a><tt class="py-lineno">609</tt> <a class="py-toggle" href="#" id="NonBlockingClient.DisconnectHandler-toggle" onclick="return toggle('NonBlockingClient.DisconnectHandler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#DisconnectHandler">DisconnectHandler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.DisconnectHandler-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.DisconnectHandler-expanded"><a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"><tt class="py-docstring"> Default disconnect handler. Just raises an IOError. If you choosed to use</tt> </tt>
+<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"><tt class="py-docstring"> this class in your production client, override this method or at least</tt> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"><tt class="py-docstring"> unregister it.</tt> </tt>
+<a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'Disconnected from server.'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L616"></a><tt class="py-lineno">616</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.get_connect_type"></a><div id="NonBlockingClient.get_connect_type-def"><a name="L617"></a><tt class="py-lineno">617</tt> <a class="py-toggle" href="#" id="NonBlockingClient.get_connect_type-toggle" onclick="return toggle('NonBlockingClient.get_connect_type');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#get_connect_type">get_connect_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.get_connect_type-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.get_connect_type-expanded"><a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"><tt class="py-docstring"> Return connection state. F.e.: None / 'tls' / 'plain+non_sasl'</tt> </tt>
+<a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L621"></a><tt class="py-lineno">621</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">connected</tt> </tt>
+</div><a name="L622"></a><tt class="py-lineno">622</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingClient.get_peerhost"></a><div id="NonBlockingClient.get_peerhost-def"><a name="L623"></a><tt class="py-lineno">623</tt> <a class="py-toggle" href="#" id="NonBlockingClient.get_peerhost-toggle" onclick="return toggle('NonBlockingClient.get_peerhost');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.client_nb.NonBlockingClient-class.html#get_peerhost">get_peerhost</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingClient.get_peerhost-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingClient.get_peerhost-expanded"><a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L625"></a><tt class="py-lineno">625</tt> <tt class="py-line"><tt class="py-docstring"> Gets the ip address of the account, from which is made connection to the</tt> </tt>
+<a name="L626"></a><tt class="py-lineno">626</tt> <tt class="py-line"><tt class="py-docstring"> server (e.g. IP and port of socket)</tt> </tt>
+<a name="L627"></a><tt class="py-lineno">627</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"><tt class="py-docstring"> We will create listening socket on the same ip</tt> </tt>
+<a name="L629"></a><tt class="py-lineno">629</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L630"></a><tt class="py-lineno">630</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: tuple (ip, port) is expected (and checked for) but port num is</tt> </tt>
+<a name="L631"></a><tt class="py-lineno">631</tt> <tt class="py-line"> <tt class="py-comment"># useless</tt> </tt>
+<a name="L632"></a><tt class="py-lineno">632</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">peerhost</tt> </tt>
+</div></div><a name="L633"></a><tt class="py-lineno">633</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -1032,7 +1065,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:09 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.client_nb.NonBlockingClient-class.html b/doc/apidocs/nbxmpp.client_nb.NonBlockingClient-class.html
index 68c164b..b121895 100644
--- a/doc/apidocs/nbxmpp.client_nb.NonBlockingClient-class.html
+++ b/doc/apidocs/nbxmpp.client_nb.NonBlockingClient-class.html
@@ -135,6 +135,7 @@ the client.</td>
<span class="summary-sig-arg">hostname</span>=<span class="summary-sig-default">None</span>,
<span class="summary-sig-arg">port</span>=<span class="summary-sig-default">5222</span>,
<span class="summary-sig-arg">on_proxy_failure</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">on_stream_error_cb</span>=<span class="summary-sig-default">None</span>,
<span class="summary-sig-arg">proxy</span>=<span class="summary-sig-default">None</span>,
<span class="summary-sig-arg">secure_tuple</span>=<span class="summary-sig-default"><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">plain</code><code class="variable-quote">'</code><code class="variable-op">, </code>None<code class="variable-op">, </code>None<code class="variable-group">)</code></span>)</span><br />
Open XMPP connection (open XML streams in both directions)</td>
@@ -660,6 +661,7 @@ the client.
<span class="sig-arg">hostname</span>=<span class="sig-default">None</span>,
<span class="sig-arg">port</span>=<span class="sig-default">5222</span>,
<span class="sig-arg">on_proxy_failure</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">on_stream_error_cb</span>=<span class="sig-default">None</span>,
<span class="sig-arg">proxy</span>=<span class="sig-default">None</span>,
<span class="sig-arg">secure_tuple</span>=<span class="sig-default"><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">plain</code><code class="variable-quote">'</code><code class="variable-op">, </code>None<code class="variable-op">, </code>None<code class="variable-group">)</code></span>)</span>
</h3>
@@ -1210,7 +1212,7 @@ server (e.g. IP and port of socket)</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.dispatcher_nb-module.html b/doc/apidocs/nbxmpp.dispatcher_nb-module.html
index 27347c9..768e48c 100644
--- a/doc/apidocs/nbxmpp.dispatcher_nb-module.html
+++ b/doc/apidocs/nbxmpp.dispatcher_nb-module.html
@@ -322,7 +322,7 @@ logging.getLogger('nbxmpp.dispatcher_nb')
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.dispatcher_nb-pysrc.html b/doc/apidocs/nbxmpp.dispatcher_nb-pysrc.html
index ef16fa2..49679d3 100644
--- a/doc/apidocs/nbxmpp.dispatcher_nb-pysrc.html
+++ b/doc/apidocs/nbxmpp.dispatcher_nb-pysrc.html
@@ -99,8 +99,7 @@ nbxmpp.plugin.PlugIn
nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-2', 'PlugIn', 'link-2');">PlugIn</a></tt> </tt>
<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name" targets="Module nbxmpp.protocol=nbxmpp.protocol-module.html"><a title="nbxmpp.protocol" class="py-name" href="#" onclick="return doclink('link-3', 'protocol', 'link-3');">protocol</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">(</tt><tt id="link-4" class="py-name" targets="Variable nbxmpp.protocol.NS_STREAMS=nbxmpp.protocol-module.html#NS_STREAMS"><a title="nbxmpp.protocol.NS_STREAMS" class="py-name" href="#" onclick="return doclink('link-4', 'NS_STREAMS', 'link-4');">NS_STREAMS</a></tt><tt class="py-op">,</tt> <tt id="link-5" class="py-name" targets="Variable nbxmpp.protocol.NS_XMPP_STREAMS=nbxmpp.protocol-module.html#NS_XMPP_STREAMS"><a title="nbxmpp.protocol.NS_XMPP_STREAMS" class="py-name" href="#" onclick="return doclink('link-5', 'NS_XMPP_STREAMS', 'link-5');">NS_XMPP_STREAMS</a></tt><tt class="py-op">,</tt> <tt id="link-6" class="py-name" targets="Variable nbxmpp.protocol.NS_HTTP_BIND=nbxmpp.protocol-module.html#NS_HTTP_BIND"><a title="nbxmpp.protocol.NS_HTTP_BIND" class="py-name" href="#" onclick="return doclink('link-6', 'NS_HTTP_BIND', 'link-6');">NS_HTTP_BIND</a></tt><tt class="py-op">,</tt> <tt id="link-7" class="py-name" targets="Class nbxmpp.protocol.Iq=nbxmpp.protocol.Iq-class.html"><a title="nbxmpp.protocol.Iq" class="py-name" href="#" onclick="return doclink('link-7', 'Iq', 'link-7');">Iq</a></tt><tt class="py-op">,</tt> <tt id="link-8" class="py-name" targets="Class nbxmpp.protocol.Presence=nbxmpp.protocol.Presence-class.html"><a title="nbxmpp.protocol.Presence" class="py-name" href="#" onclick="return doclink('link-8', 'Presence', 'link-8');">Presence</a></tt><tt class="py-op">,</tt> </tt>
<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> <tt id="link-9" class="py-name" targets="Class nbxmpp.protocol.Message=nbxmpp.protocol.Message-class.html"><a title="nbxmpp.protocol.Message" class="py-name" href="#" onclick="return doclink('link-9', 'Message', 'link-9');">Message</a></tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name" targets="Class nbxmpp.protocol.Protocol=nbxmpp.protocol.Protocol-class.html"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-10', 'Protocol', 'link-10');">Protocol</a></tt><tt class="py-op">,</tt> <tt id="link-11" class="py-name" targets="Class nbxmpp.simplexml.Node=nbxmpp.simplexml.Node-class.html"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-11', 'Node', 'link-11');">Node</a></tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Class nbxmpp.protocol.Error=nbxmpp.protocol.Error-class.html,Class nbxmpp.tls_nb.SSLWrapper.Error=nbxmpp.tls_nb.SSLWrapper.Error-class.html"><a title="nbxmpp.protocol.Error
-nbxmpp.tls_nb.SSLWrapper.Error" class="py-name" href="#" onclick="return doclink('link-12', 'Error', 'link-12');">Error</a></tt><tt class="py-op">,</tt> <tt id="link-13" class="py-name" targets="Variable nbxmpp.ERR_FEATURE_NOT_IMPLEMENTED=nbxmpp-module.html#ERR_FEATURE_NOT_IMPLEMENTED,Variable nbxmpp.protocol.ERR_FEATURE_NOT_IMPLEMENTED=nbxmpp.protocol-module.html#ERR_FEATURE_NOT_IMPLEMENTED"><a title="nbxmpp.ERR_FEATURE_NOT_IMPLEMENTED
-nbxmpp.protocol.ERR_FEATURE_NOT_IMPLEMENTED" class="py-name" href="#" onclick="return doclink('link-13', 'ERR_FEATURE_NOT_IMPLEMENTED', 'link-13');">ERR_FEATURE_NOT_IMPLEMENTED</a></tt><tt class="py-op">,</tt> <tt id="link-14" class="py-name" targets="Class nbxmpp.protocol.StreamError=nbxmpp.protocol.StreamError-class.html"><a title="nbxmpp.protocol.StreamError" class="py-name" href="#" onclick="return doclink('link-14', 'StreamError', 'link-14');">StreamError</a></tt><tt class="py-op">)</tt> </tt>
+nbxmpp.tls_nb.SSLWrapper.Error" class="py-name" href="#" onclick="return doclink('link-12', 'Error', 'link-12');">Error</a></tt><tt class="py-op">,</tt> <tt id="link-13" class="py-name" targets="Variable nbxmpp.protocol.ERR_FEATURE_NOT_IMPLEMENTED=nbxmpp.protocol-module.html#ERR_FEATURE_NOT_IMPLEMENTED"><a title="nbxmpp.protocol.ERR_FEATURE_NOT_IMPLEMENTED" class="py-name" href="#" onclick="return doclink('link-13', 'ERR_FEATURE_NOT_IMPLEMENTED', 'link-13');">ERR_FEATURE_NOT_IMPLEMENTED</a></tt><tt class="py-op">,</tt> <tt id="link-14" class="py-name" targets="Class nbxmpp.protocol.StreamError=nbxmpp.protocol.StreamError-class.html"><a title="nbxmpp.protocol.StreamError" class="py-name" href="#" onclick="return doclink('link-14', 'StreamError', 'link-14');">StreamError</a></tt><tt class="py-op">)</tt> </tt>
<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt id="link-15" class="py-name" targets="Variable nbxmpp.auth_nb.log=nbxmpp.auth_nb-module.html#log,Variable nbxmpp.bosh.log=nbxmpp.bosh-module.html#log,Variable nbxmpp.client_nb.log=nbxmpp.client_nb-module.html#log,Variable nbxmpp.dispatcher_nb.log=nbxmpp.dispatcher_nb-module.html#log,Variable nbxmpp.idlequeue.log=nbxmpp.idlequeue-module.html#log,Variable nbxmpp.plugin.log=nbxmpp.plugin-module.html#log,Variable nbxmpp.proxy_connectors.log=nbxmpp.proxy_connectors-module.html#log,Variable nbxmpp.roster_nb.log=nbxmpp.roster_nb-module.html#log,Variable nbxmpp.simplexml.log=nbxmpp.simplexml-module.html#log,Variable nbxmpp.smacks.log=nbxmpp.smacks-module.html#log,Variable nbxmpp.tls_nb.log=nbxmpp.tls_nb-module.html#log,Variable nbxmpp.transports_nb.log=nbxmpp.transports_nb-module.html#log"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
@@ -520,27 +519,20 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-89', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Registering handler %s for "%s" type-&gt;%s ns-&gt;%s(%s)'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">,</tt> <tt id="link-90" class="py-name" targets="Variable nbxmpp.name=nbxmpp-module.html#name,Variable nbxmpp.protocol.name=nbxmpp.protocol-module.html#name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-90', 'name', 'link-90');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">ns</tt><tt class="py-op">,</tt> <tt class="py-name">xmlns</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">handler</tt><tt class="py-op">,</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">ns</tt><tt class="py-op">,</tt> <tt class="py-name">xmlns</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">typ</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">ns</tt><tt class="py-op">:</tt> </tt>
<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-string">'default'</tt> </tt>
<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xmlns</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">:</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterNamespace" class="py-name" href="#" onclick="return doclink('link-91', 'RegisterNamespace', 'link-41');">RegisterNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-string">'warn'</tt><tt class="py-op">)</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-92" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-92', 'name', 'link-90');">name</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterProtocol" class="py-name" href="#" onclick="return doclink('link-93', 'RegisterProtocol', 'link-32');">RegisterProtocol</a></tt><tt class="py-op">(</tt><tt id="link-94" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-94', 'name', 'link-90');">name</a></tt><tt class="py-op">,</tt> <tt id="link-95" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-95', 'Protocol', 'link-10');">Protocol</a></tt><tt class="py-op">,</tt> <tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-string">'warn'</tt><tt class="py-op">)</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt id="link-96" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-96', 'name', 'link-90');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt id="link-97" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-97', 'name', 'link-90');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterNamespace" class="py-name" href="#" onclick="return doclink('link-90', 'RegisterNamespace', 'link-41');">RegisterNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-string">'warn'</tt><tt class="py-op">)</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterProtocol" class="py-name" href="#" onclick="return doclink('link-91', 'RegisterProtocol', 'link-32');">RegisterProtocol</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt id="link-92" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-92', 'Protocol', 'link-10');">Protocol</a></tt><tt class="py-op">,</tt> <tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-string">'warn'</tt><tt class="py-op">)</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">makefirst</tt><tt class="py-op">:</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt id="link-98" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-98', 'name', 'link-90');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'func'</tt><tt class="py-op">:</tt><tt class="py-name">handler</tt><tt class="py-op">,</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'func'</tt><tt class="py-op">:</tt><tt class="py-name">handler</tt><tt class="py-op">,</tt> </tt>
<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-string">'system'</tt><tt class="py-op">:</tt><tt class="py-name">system</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt id="link-99" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-99', 'name', 'link-90');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'func'</tt><tt class="py-op">:</tt><tt class="py-name">handler</tt><tt class="py-op">,</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'func'</tt><tt class="py-op">:</tt><tt class="py-name">handler</tt><tt class="py-op">,</tt> </tt>
<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-string">'system'</tt><tt class="py-op">:</tt><tt class="py-name">system</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
</div><a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> </tt>
<a name="XMPPDispatcher.RegisterHandlerOnce"></a><div id="XMPPDispatcher.RegisterHandlerOnce-def"><a name="L319"></a><tt class="py-lineno">319</tt> <a class="py-toggle" href="#" id="XMPPDispatcher.RegisterHandlerOnce-toggle" onclick="return toggle('XMPPDispatcher.RegisterHandlerOnce');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandlerOnce">RegisterHandlerOnce</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">ns</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">xmlns</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
@@ -551,8 +543,7 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-99'
<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-comment"># FIXME Drop or implement</tt> </tt>
<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">xmlns</tt><tt class="py-op">:</tt> </tt>
<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">defaultNamespace</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-100', 'RegisterHandler', 'link-25');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt id="link-101" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-101', 'name', 'link-90');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">handler</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">ns</tt><tt class="py-op">,</tt> <tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-name">makefirst</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt><tt class="py-op">)</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-93', 'RegisterHandler', 'link-25');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">handler</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">ns</tt><tt class="py-op">,</tt> <tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-name">makefirst</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt><tt class="py-op">)</tt> </tt>
</div><a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> </tt>
<a name="XMPPDispatcher.UnregisterHandler"></a><div id="XMPPDispatcher.UnregisterHandler-def"><a name="L329"></a><tt class="py-lineno">329</tt> <a class="py-toggle" href="#" id="XMPPDispatcher.UnregisterHandler-toggle" onclick="return toggle('XMPPDispatcher.UnregisterHandler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#UnregisterHandler">UnregisterHandler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">ns</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">xmlns</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="XMPPDispatcher.UnregisterHandler-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XMPPDispatcher.UnregisterHandler-expanded"><a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -565,18 +556,14 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-101
<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-string">'default'</tt> </tt>
<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xmlns</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">:</tt> </tt>
<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-102" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-102', 'name', 'link-90');">name</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt id="link-103" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-103', 'name', 'link-90');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">pack</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt id="link-104" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-104', 'name', 'link-90');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">pack</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">pack</tt><tt class="py-op">[</tt><tt class="py-string">'func'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">handler</tt><tt class="py-op">:</tt> </tt>
<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt id="link-105" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-105', 'name', 'link-90');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">pack</tt><tt class="py-op">)</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">ns</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">pack</tt><tt class="py-op">)</tt> </tt>
<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
</div><a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> </tt>
@@ -599,18 +586,17 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-105
<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"><tt class="py-docstring"> Return stanza back to the sender with &lt;feature-not-implemented/&gt; error</tt> </tt>
<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"><tt class="py-docstring"> set</tt> </tt>
<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Method nbxmpp.protocol.DataField.getType()=nbxmpp.protocol.DataField-class.html#getType,Method nbxmpp.protocol.DataForm.getType()=nbxmpp.protocol.DataForm-class.html#getType,Method nbxmpp.protocol.Protocol.getType()=nbxmpp.protocol.Protocol-class.html#getType"><a title="nbxmpp.protocol.DataField.getType
+<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name" targets="Method nbxmpp.protocol.DataField.getType()=nbxmpp.protocol.DataField-class.html#getType,Method nbxmpp.protocol.DataForm.getType()=nbxmpp.protocol.DataForm-class.html#getType,Method nbxmpp.protocol.Protocol.getType()=nbxmpp.protocol.Protocol-class.html#getType"><a title="nbxmpp.protocol.DataField.getType
nbxmpp.protocol.DataForm.getType
-nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-106', 'getType', 'link-106');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'get'</tt><tt class="py-op">,</tt> <tt class="py-string">'set'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-94', 'getType', 'link-94');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">'get'</tt><tt class="py-op">,</tt> <tt class="py-string">'set'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-107', 'send', 'link-37');">send</a></tt><tt class="py-op">(</tt><tt id="link-108" class="py-name"><a title="nbxmpp.protocol.Error
-nbxmpp.tls_nb.SSLWrapper.Error" class="py-name" href="#" onclick="return doclink('link-108', 'Error', 'link-12');">Error</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt id="link-109" class="py-name"><a title="nbxmpp.ERR_FEATURE_NOT_IMPLEMENTED
-nbxmpp.protocol.ERR_FEATURE_NOT_IMPLEMENTED" class="py-name" href="#" onclick="return doclink('link-109', 'ERR_FEATURE_NOT_IMPLEMENTED', 'link-13');">ERR_FEATURE_NOT_IMPLEMENTED</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-95', 'send', 'link-37');">send</a></tt><tt class="py-op">(</tt><tt id="link-96" class="py-name"><a title="nbxmpp.protocol.Error
+nbxmpp.tls_nb.SSLWrapper.Error" class="py-name" href="#" onclick="return doclink('link-96', 'Error', 'link-12');">Error</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt id="link-97" class="py-name"><a title="nbxmpp.protocol.ERR_FEATURE_NOT_IMPLEMENTED" class="py-name" href="#" onclick="return doclink('link-97', 'ERR_FEATURE_NOT_IMPLEMENTED', 'link-13');">ERR_FEATURE_NOT_IMPLEMENTED</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> </tt>
<a name="XMPPDispatcher.RegisterCycleHandler"></a><div id="XMPPDispatcher.RegisterCycleHandler-def"><a name="L373"></a><tt class="py-lineno">373</tt> <a class="py-toggle" href="#" id="XMPPDispatcher.RegisterCycleHandler-toggle" onclick="return toggle('XMPPDispatcher.RegisterCycleHandler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterCycleHandler">RegisterCycleHandler</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">handler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="XMPPDispatcher.RegisterCycleHandler-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XMPPDispatcher.RegisterCycleHandler-expanded"><a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -637,7 +623,7 @@ nbxmpp.protocol.ERR_FEATURE_NOT_IMPLEMENTED" class="py-name" href="#" onclick="r
<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_eventHandler</tt><tt class="py-op">:</tt> </tt>
<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_eventHandler</tt><tt class="py-op">(</tt><tt class="py-name">realm</tt><tt class="py-op">,</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt id="link-110" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt id="link-98" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -648,7 +634,7 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-110', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Received unhandled event: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-98', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Received unhandled event: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
</div><a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> </tt>
<a name="XMPPDispatcher.dispatch"></a><div id="XMPPDispatcher.dispatch-def"><a name="L400"></a><tt class="py-lineno">400</tt> <a class="py-toggle" href="#" id="XMPPDispatcher.dispatch-toggle" onclick="return toggle('XMPPDispatcher.dispatch');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#dispatch">dispatch</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">session</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">direct</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="XMPPDispatcher.dispatch-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XMPPDispatcher.dispatch-expanded"><a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -663,21 +649,22 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">session</tt><tt class="py-op">:</tt> </tt>
<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">session</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt> </tt>
<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt id="link-111" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-111', 'name', 'link-90');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.getName()=nbxmpp.roster_nb.NonBlockingRoster-class.html#getName,Method nbxmpp.simplexml.Node.getName()=nbxmpp.simplexml.Node-class.html#getName"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-112', 'getName', 'link-112');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.getName()=nbxmpp.roster_nb.NonBlockingRoster-class.html#getName,Method nbxmpp.simplexml.Node.getName()=nbxmpp.simplexml.Node-class.html#getName"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-99', 'getName', 'link-99');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> </tt>
-<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-113" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-113', 'name', 'link-90');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'features'</tt><tt class="py-op">:</tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-op">==</tt> <tt class="py-string">'features'</tt><tt class="py-op">:</tt> </tt>
<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">got_features</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">features</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt> </tt>
-<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> </tt>
-<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name" targets="Method nbxmpp.simplexml.Node.getNamespace()=nbxmpp.simplexml.Node-class.html#getNamespace"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-114', 'getNamespace', 'link-114');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> </tt>
-<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-comment"># log.info('in dispatch, getting ns for %s, and the ns is %s'</tt> </tt>
-<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-comment"># % (stanza, xmlns))</tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xmlns</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">:</tt> </tt>
-<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt id="link-115" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">name</tt> <tt class="py-op">==</tt> <tt class="py-string">'error'</tt><tt class="py-op">:</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name" targets="Method nbxmpp.simplexml.Node.getTag()=nbxmpp.simplexml.Node-class.html#getTag"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-100', 'getTag', 'link-100');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'see-other-host'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">got_see_other_host</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name" targets="Method nbxmpp.simplexml.Node.getNamespace()=nbxmpp.simplexml.Node-class.html#getNamespace"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-101', 'getNamespace', 'link-101');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-comment"># log.info('in dispatch, getting ns for %s, and the ns is %s'</tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-comment"># % (stanza, xmlns))</tt> </tt>
+<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xmlns</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">:</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt id="link-102" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -688,14 +675,12 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-115', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">"Unknown namespace: "</tt> <tt class="py-op">+</tt> <tt class="py-name">xmlns</tt><tt class="py-op">)</tt> </tt>
-<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt> <tt class="py-op">=</tt> <tt class="py-string">'unknown'</tt> </tt>
-<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-comment"># features stanza has been handled before</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-116" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-116', 'name', 'link-90');">name</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-117" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-117', 'name', 'link-90');">name</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'features'</tt><tt class="py-op">:</tt> </tt>
-<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt id="link-118" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-102', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">"Unknown namespace: "</tt> <tt class="py-op">+</tt> <tt class="py-name">xmlns</tt><tt class="py-op">)</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt> <tt class="py-op">=</tt> <tt class="py-string">'unknown'</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-comment"># features stanza has been handled before</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-op">!=</tt> <tt class="py-string">'features'</tt><tt class="py-op">:</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt id="link-103" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -706,10 +691,9 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-118', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">"Unknown stanza: "</tt> <tt class="py-op">+</tt> <tt id="link-119" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-119', 'name', 'link-90');">name</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt id="link-120" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-103', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">"Unknown stanza: "</tt> <tt class="py-op">+</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt id="link-104" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -720,12 +704,10 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-120', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Got %s/%s stanza"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt id="link-121" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-121', 'name', 'link-90');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt id="link-122" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-122', 'name', 'link-90');">name</a></tt><tt class="py-op">=</tt><tt class="py-string">'unknown'</tt> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt id="link-123" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-104', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Got %s/%s stanza"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-name">name</tt><tt class="py-op">=</tt><tt class="py-string">'unknown'</tt> </tt>
+<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt id="link-105" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -736,55 +718,49 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-123', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Got %s/%s stanza"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt id="link-124" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-124', 'name', 'link-90');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> </tt>
-<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'Node'</tt><tt class="py-op">:</tt> </tt>
-<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: this cannot work</tt> </tt>
-<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt id="link-125" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-125', 'name', 'link-90');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">type</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
-<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> </tt>
-<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-name">typ</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="nbxmpp.protocol.DataField.getType
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-105', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Got %s/%s stanza"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'Node'</tt><tt class="py-op">:</tt> </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: this cannot work</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">type</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-name">typ</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="nbxmpp.protocol.DataField.getType
nbxmpp.protocol.DataForm.getType
-nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-126', 'getType', 'link-106');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
-<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-name">typ</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt class="py-name">props</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name" targets="Method nbxmpp.protocol.Protocol.getProperties()=nbxmpp.protocol.Protocol-class.html#getProperties"><a title="nbxmpp.protocol.Protocol.getProperties" class="py-name" href="#" onclick="return doclink('link-127', 'getProperties', 'link-127');">getProperties</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-name">ID</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name" targets="Method nbxmpp.protocol.Protocol.getID()=nbxmpp.protocol.Protocol-class.html#getID"><a title="nbxmpp.protocol.Protocol.getID" class="py-name" href="#" onclick="return doclink('link-128', 'getID', 'link-128');">getID</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> </tt>
-<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-comment"># If server supports stream management</tt> </tt>
-<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-129', 'getName', 'link-112');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'r'</tt> <tt class="py-keyword">and</tt> </tt>
-<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-130', 'getName', 'link-112');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'a'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-131', 'getName', 'link-112');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'enabled'</tt> <tt class="py-keyword">and</tt> </tt>
-<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-132', 'getName', 'link-112');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'resumed'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-comment"># increments the number of stanzas that has been handled</tt> </tt>
-<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">in_h</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">in_h</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-name">list_</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'default'</tt><tt class="py-op">]</tt> <tt class="py-comment"># we will use all handlers:</tt> </tt>
-<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt id="link-133" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-133', 'name', 'link-90');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-name">list_</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">typ</tt><tt class="py-op">)</tt> <tt class="py-comment"># from very common...</tt> </tt>
-<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">prop</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt class="py-name">props</tt><tt class="py-op">:</tt> </tt>
-<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">prop</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt id="link-134" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-134', 'name', 'link-90');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt class="py-name">list_</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">prop</tt><tt class="py-op">)</tt> </tt>
-<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt> <tt class="py-keyword">and</tt> <tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">prop</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt id="link-135" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-135', 'name', 'link-90');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-name">list_</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">prop</tt><tt class="py-op">)</tt> <tt class="py-comment"># ...to very particular</tt> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-name">chain</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'default'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'default'</tt><tt class="py-op">]</tt> </tt>
-<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list_</tt><tt class="py-op">:</tt> </tt>
-<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt><tt class="py-op">:</tt> </tt>
-<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-name">chain</tt> <tt class="py-op">=</tt> <tt class="py-name">chain</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt id="link-136" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-136', 'name', 'link-90');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
-<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> </tt>
-<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ID</tt> <tt class="py-keyword">in</tt> <tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">:</tt> </tt>
-<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-name">user</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">[</tt><tt class="py-name">ID</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-name">cb</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">[</tt><tt class="py-name">ID</tt><tt class="py-op">]</tt> </tt>
-<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt id="link-137" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-106', 'getType', 'link-94');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt class="py-name">typ</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt class="py-name">props</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name" targets="Method nbxmpp.protocol.Protocol.getProperties()=nbxmpp.protocol.Protocol-class.html#getProperties"><a title="nbxmpp.protocol.Protocol.getProperties" class="py-name" href="#" onclick="return doclink('link-107', 'getProperties', 'link-107');">getProperties</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-name">ID</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name" targets="Method nbxmpp.protocol.Protocol.getID()=nbxmpp.protocol.Protocol-class.html#getID"><a title="nbxmpp.protocol.Protocol.getID" class="py-name" href="#" onclick="return doclink('link-108', 'getID', 'link-108');">getID</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-comment"># If server supports stream management</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-109', 'getName', 'link-99');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'r'</tt> <tt class="py-keyword">and</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-110', 'getName', 'link-99');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'a'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-111', 'getName', 'link-99');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'enabled'</tt> <tt class="py-keyword">and</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-112', 'getName', 'link-99');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'resumed'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-comment"># increments the number of stanzas that has been handled</tt> </tt>
+<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">in_h</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">in_h</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"> <tt class="py-name">list_</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'default'</tt><tt class="py-op">]</tt> <tt class="py-comment"># we will use all handlers:</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt class="py-name">list_</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">typ</tt><tt class="py-op">)</tt> <tt class="py-comment"># from very common...</tt> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">prop</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt class="py-name">props</tt><tt class="py-op">:</tt> </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">prop</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-name">list_</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">prop</tt><tt class="py-op">)</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt> <tt class="py-keyword">and</tt> <tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">prop</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-name">list_</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">typ</tt><tt class="py-op">+</tt><tt class="py-name">prop</tt><tt class="py-op">)</tt> <tt class="py-comment"># ...to very particular</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-name">chain</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'default'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'default'</tt><tt class="py-op">]</tt> </tt>
+<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list_</tt><tt class="py-op">:</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt><tt class="py-op">:</tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-name">chain</tt> <tt class="py-op">=</tt> <tt class="py-name">chain</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt><tt class="py-op">[</tt><tt class="py-name">xmlns</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
+<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> </tt>
+<a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ID</tt> <tt class="py-keyword">in</tt> <tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">:</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt class="py-name">user</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">[</tt><tt class="py-name">ID</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-name">cb</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">[</tt><tt class="py-name">ID</tt><tt class="py-op">]</tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt id="link-113" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -795,15 +771,15 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-137', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Expected stanza arrived. Callback %s(%s) found!"</tt> <tt class="py-op">%</tt> </tt>
-<a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">cb</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-name">cb</tt><tt class="py-op">(</tt><tt class="py-name">session</tt><tt class="py-op">,</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
-<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
-<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> <tt class="py-op">!=</tt> <tt class="py-string">'NodeProcessed'</tt><tt class="py-op">:</tt> </tt>
-<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
-<a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> <tt id="link-138" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-113', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Expected stanza arrived. Callback %s(%s) found!"</tt> <tt class="py-op">%</tt> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">cb</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> <tt class="py-name">cb</tt><tt class="py-op">(</tt><tt class="py-name">session</tt><tt class="py-op">,</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt><tt class="py-op">**</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
+<a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
+<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> <tt class="py-op">!=</tt> <tt class="py-string">'NodeProcessed'</tt><tt class="py-op">:</tt> </tt>
+<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt id="link-114" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -814,196 +790,196 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-138', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Expected stanza arrived!"</tt><tt class="py-op">)</tt> </tt>
-<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">[</tt><tt class="py-name">ID</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt> </tt>
-<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-name">user</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">handler</tt> <tt class="py-keyword">in</tt> <tt class="py-name">chain</tt><tt class="py-op">:</tt> </tt>
-<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">user</tt> <tt class="py-keyword">or</tt> <tt class="py-name">handler</tt><tt class="py-op">[</tt><tt class="py-string">'system'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-name">handler</tt><tt class="py-op">[</tt><tt class="py-string">'func'</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">session</tt><tt class="py-op">,</tt> <tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
-<a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
-<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> <tt class="py-op">!=</tt> <tt class="py-string">'NodeProcessed'</tt><tt class="py-op">:</tt> </tt>
-<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pendingExceptions</tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-name">user</tt><tt class="py-op">=</tt><tt class="py-number">0</tt> </tt>
-<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">user</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_defaultHandler</tt><tt class="py-op">:</tt> </tt>
-<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_defaultHandler</tt><tt class="py-op">(</tt><tt class="py-name">session</tt><tt class="py-op">,</tt> <tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> </tt>
-<a name="XMPPDispatcher._WaitForData"></a><div id="XMPPDispatcher._WaitForData-def"><a name="L494"></a><tt class="py-lineno">494</tt> <a class="py-toggle" href="#" id="XMPPDispatcher._WaitForData-toggle" onclick="return toggle('XMPPDispatcher._WaitForData');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#_WaitForData">_WaitForData</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMPPDispatcher._WaitForData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XMPPDispatcher._WaitForData-expanded"><a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"><tt class="py-docstring"> Internal wrapper around ProcessNonBlocking. Will check for</tt> </tt>
-<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"> <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name" targets="Method nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#ProcessNonBlocking,Method nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#ProcessNonBlocking"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
-nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-139', 'ProcessNonBlocking', 'link-139');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt class="py-comment"># 0 result indicates that we have closed the connection, e.g.</tt> </tt>
-<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> <tt class="py-comment"># we have released dispatcher, so self._owner has no methods</tt> </tt>
-<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">res</tt><tt class="py-op">:</tt> </tt>
-<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">_id</tt><tt class="py-op">,</tt> <tt class="py-name">_iq</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">_iq</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"> <tt class="py-comment"># If the expected Stanza would have arrived, ProcessNonBlocking</tt> </tt>
-<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> <tt class="py-comment"># would have placed the reply stanza in there</tt> </tt>
-<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_responses</tt><tt class="py-op">:</tt> </tt>
-<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.onreceive()=nbxmpp.bosh.NonBlockingBOSH-class.html#onreceive,Method nbxmpp.transports_nb.NonBlockingTransport.onreceive()=nbxmpp.transports_nb.NonBlockingTransport-class.html#onreceive"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
-nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-140', 'onreceive', 'link-140');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_responses</tt><tt class="py-op">[</tt><tt class="py-name">_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_responses</tt><tt class="py-op">[</tt><tt class="py-name">_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">args</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt class="py-name">resp</tt><tt class="py-op">(</tt><tt class="py-name">_iq</tt><tt class="py-op">)</tt> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-name">resp</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">,</tt> <tt class="py-name">_iq</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
-<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">[</tt><tt class="py-name">_id</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> </tt>
-<a name="XMPPDispatcher.SendAndWaitForResponse"></a><div id="XMPPDispatcher.SendAndWaitForResponse-def"><a name="L521"></a><tt class="py-lineno">521</tt> <a class="py-toggle" href="#" id="XMPPDispatcher.SendAndWaitForResponse-toggle" onclick="return toggle('XMPPDispatcher.SendAndWaitForResponse');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#SendAndWaitForResponse">SendAndWaitForResponse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">func</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">args</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMPPDispatcher.SendAndWaitForResponse-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XMPPDispatcher.SendAndWaitForResponse-expanded"><a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"><tt class="py-docstring"> Send stanza and wait for recipient's response to it. Will call transports</tt> </tt>
-<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"><tt class="py-docstring"> on_timeout callback if response is not retrieved in time</tt> </tt>
-<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"><tt class="py-docstring"> Be aware: Only timeout of latest call of SendAndWait is active.</tt> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> <tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt id="link-141" class="py-name"><a title="nbxmpp.dispatcher_nb.DEFAULT_TIMEOUT_SECONDS" class="py-name" href="#" onclick="return doclink('link-141', 'DEFAULT_TIMEOUT_SECONDS', 'link-16');">DEFAULT_TIMEOUT_SECONDS</a></tt> </tt>
-<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"> <tt class="py-name">_waitid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-114', 'log', 'link-15');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Expected stanza arrived!"</tt><tt class="py-op">)</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-name">session</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">[</tt><tt class="py-name">ID</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt> </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt class="py-name">user</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">handler</tt> <tt class="py-keyword">in</tt> <tt class="py-name">chain</tt><tt class="py-op">:</tt> </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">user</tt> <tt class="py-keyword">or</tt> <tt class="py-name">handler</tt><tt class="py-op">[</tt><tt class="py-string">'system'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-name">handler</tt><tt class="py-op">[</tt><tt class="py-string">'func'</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">session</tt><tt class="py-op">,</tt> <tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> <tt class="py-op">!=</tt> <tt class="py-string">'NodeProcessed'</tt><tt class="py-op">:</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pendingExceptions</tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-name">user</tt><tt class="py-op">=</tt><tt class="py-number">0</tt> </tt>
+<a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">user</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_defaultHandler</tt><tt class="py-op">:</tt> </tt>
+<a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_defaultHandler</tt><tt class="py-op">(</tt><tt class="py-name">session</tt><tt class="py-op">,</tt> <tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> </tt>
+<a name="XMPPDispatcher._WaitForData"></a><div id="XMPPDispatcher._WaitForData-def"><a name="L497"></a><tt class="py-lineno">497</tt> <a class="py-toggle" href="#" id="XMPPDispatcher._WaitForData-toggle" onclick="return toggle('XMPPDispatcher._WaitForData');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#_WaitForData">_WaitForData</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMPPDispatcher._WaitForData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XMPPDispatcher._WaitForData-expanded"><a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"><tt class="py-docstring"> Internal wrapper around ProcessNonBlocking. Will check for</tt> </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name" targets="Method nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#ProcessNonBlocking,Method nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#ProcessNonBlocking"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
+nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-115', 'ProcessNonBlocking', 'link-115');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-comment"># 0 result indicates that we have closed the connection, e.g.</tt> </tt>
+<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <tt class="py-comment"># we have released dispatcher, so self._owner has no methods</tt> </tt>
+<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">res</tt><tt class="py-op">:</tt> </tt>
+<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">_id</tt><tt class="py-op">,</tt> <tt class="py-name">_iq</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">_iq</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"> <tt class="py-comment"># If the expected Stanza would have arrived, ProcessNonBlocking</tt> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt class="py-comment"># would have placed the reply stanza in there</tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_responses</tt><tt class="py-op">:</tt> </tt>
+<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.onreceive()=nbxmpp.bosh.NonBlockingBOSH-class.html#onreceive,Method nbxmpp.transports_nb.NonBlockingTransport.onreceive()=nbxmpp.transports_nb.NonBlockingTransport-class.html#onreceive"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-116', 'onreceive', 'link-116');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_responses</tt><tt class="py-op">[</tt><tt class="py-name">_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_responses</tt><tt class="py-op">[</tt><tt class="py-name">_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">args</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> <tt class="py-name">resp</tt><tt class="py-op">(</tt><tt class="py-name">_iq</tt><tt class="py-op">)</tt> </tt>
+<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt class="py-name">resp</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">,</tt> <tt class="py-name">_iq</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">[</tt><tt class="py-name">_id</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> </tt>
+<a name="XMPPDispatcher.SendAndWaitForResponse"></a><div id="XMPPDispatcher.SendAndWaitForResponse-def"><a name="L524"></a><tt class="py-lineno">524</tt> <a class="py-toggle" href="#" id="XMPPDispatcher.SendAndWaitForResponse-toggle" onclick="return toggle('XMPPDispatcher.SendAndWaitForResponse');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#SendAndWaitForResponse">SendAndWaitForResponse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">func</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">args</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMPPDispatcher.SendAndWaitForResponse-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XMPPDispatcher.SendAndWaitForResponse-expanded"><a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"><tt class="py-docstring"> Send stanza and wait for recipient's response to it. Will call transports</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"><tt class="py-docstring"> on_timeout callback if response is not retrieved in time</tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"><tt class="py-docstring"> Be aware: Only timeout of latest call of SendAndWait is active.</tt> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"> <tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt id="link-117" class="py-name"><a title="nbxmpp.dispatcher_nb.DEFAULT_TIMEOUT_SECONDS" class="py-name" href="#" onclick="return doclink('link-117', 'DEFAULT_TIMEOUT_SECONDS', 'link-16');">DEFAULT_TIMEOUT_SECONDS</a></tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"> <tt class="py-name">_waitid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-142', 'send', 'link-37');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
-<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">func</tt><tt class="py-op">:</tt> </tt>
-<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_responses</tt><tt class="py-op">[</tt><tt class="py-name">_waitid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">func</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
-<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt><tt class="py-op">:</tt> </tt>
-<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.set_timeout()=nbxmpp.bosh.NonBlockingBOSH-class.html#set_timeout,Method nbxmpp.transports_nb.NonBlockingTCP.set_timeout()=nbxmpp.transports_nb.NonBlockingTCP-class.html#set_timeout,Method nbxmpp.transports_nb.NonBlockingTransport.set_timeout()=nbxmpp.transports_nb.NonBlockingTransport-class.html#set_timeout"><a title="nbxmpp.bosh.NonBlockingBOSH.set_timeout
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-118', 'send', 'link-37');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
+<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">func</tt><tt class="py-op">:</tt> </tt>
+<a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_responses</tt><tt class="py-op">[</tt><tt class="py-name">_waitid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">func</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt><tt class="py-op">:</tt> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.set_timeout()=nbxmpp.bosh.NonBlockingBOSH-class.html#set_timeout,Method nbxmpp.transports_nb.NonBlockingTCP.set_timeout()=nbxmpp.transports_nb.NonBlockingTCP-class.html#set_timeout,Method nbxmpp.transports_nb.NonBlockingTransport.set_timeout()=nbxmpp.transports_nb.NonBlockingTransport-class.html#set_timeout"><a title="nbxmpp.bosh.NonBlockingBOSH.set_timeout
nbxmpp.transports_nb.NonBlockingTCP.set_timeout
-nbxmpp.transports_nb.NonBlockingTransport.set_timeout" class="py-name" href="#" onclick="return doclink('link-143', 'set_timeout', 'link-143');">set_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
-<a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
-nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-144', 'onreceive', 'link-140');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name" targets="Method nbxmpp.dispatcher_nb.XMPPDispatcher._WaitForData()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#_WaitForData"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher._WaitForData" class="py-name" href="#" onclick="return doclink('link-145', '_WaitForData', 'link-145');">_WaitForData</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">[</tt><tt class="py-name">_waitid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_waitid</tt> </tt>
-</div><a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"> </tt>
-<a name="XMPPDispatcher.SendAndCallForResponse"></a><div id="XMPPDispatcher.SendAndCallForResponse-def"><a name="L539"></a><tt class="py-lineno">539</tt> <a class="py-toggle" href="#" id="XMPPDispatcher.SendAndCallForResponse-toggle" onclick="return toggle('XMPPDispatcher.SendAndCallForResponse');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#SendAndCallForResponse">SendAndCallForResponse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">func</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">args</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMPPDispatcher.SendAndCallForResponse-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XMPPDispatcher.SendAndCallForResponse-expanded"><a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"><tt class="py-docstring"> Put stanza on the wire and call back when recipient replies. Additional</tt> </tt>
-<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"><tt class="py-docstring"> callback arguments can be specified in args</tt> </tt>
-<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.SendAndWaitForResponse" class="py-name" href="#" onclick="return doclink('link-146', 'SendAndWaitForResponse', 'link-33');">SendAndWaitForResponse</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">func</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"> </tt>
-<a name="XMPPDispatcher.send"></a><div id="XMPPDispatcher.send-def"><a name="L546"></a><tt class="py-lineno">546</tt> <a class="py-toggle" href="#" id="XMPPDispatcher.send-toggle" onclick="return toggle('XMPPDispatcher.send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send">send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">now</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMPPDispatcher.send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XMPPDispatcher.send-expanded"><a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"><tt class="py-docstring"> Wrap transports send method when plugged into NonBlockingClient. Makes</tt> </tt>
-<a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"><tt class="py-docstring"> sure stanzas get ID and from tag.</tt> </tt>
-<a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> <tt class="py-name">ID</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt id="link-147" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-147', 'Protocol', 'link-10');">Protocol</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt class="py-name">ID</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="nbxmpp.protocol.Protocol.getID" class="py-name" href="#" onclick="return doclink('link-148', 'getID', 'link-128');">getID</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ID</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name" targets="Method nbxmpp.protocol.Protocol.setID()=nbxmpp.protocol.Protocol-class.html#setID"><a title="nbxmpp.protocol.Protocol.setID" class="py-name" href="#" onclick="return doclink('link-149', 'setID', 'link-149');">setID</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.getAnID" class="py-name" href="#" onclick="return doclink('link-150', 'getAnID', 'link-35');">getAnID</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt class="py-name">ID</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="nbxmpp.protocol.Protocol.getID" class="py-name" href="#" onclick="return doclink('link-151', 'getID', 'link-128');">getID</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">_registered_name</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name" targets="Method nbxmpp.simplexml.Node.getAttr()=nbxmpp.simplexml.Node-class.html#getAttr"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-152', 'getAttr', 'link-152');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'from'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-153', 'setAttr', 'link-67');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'from'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">_registered_name</tt><tt class="py-op">)</tt> </tt>
-<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> </tt>
-<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-comment"># If no ID then it is a whitespace</tt> </tt>
-<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-keyword">and</tt> <tt class="py-name">ID</tt><tt class="py-op">:</tt> </tt>
-<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
-<a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">out_h</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">out_h</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
-<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">max_queue</tt><tt class="py-op">:</tt> </tt>
-<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name" targets="Method nbxmpp.smacks.Smacks.request_ack()=nbxmpp.smacks.Smacks-class.html#request_ack"><a title="nbxmpp.smacks.Smacks.request_ack" class="py-name" href="#" onclick="return doclink('link-154', 'request_ack', 'link-154');">request_ack</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> </tt>
-<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+nbxmpp.transports_nb.NonBlockingTransport.set_timeout" class="py-name" href="#" onclick="return doclink('link-119', 'set_timeout', 'link-119');">set_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
+<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-120', 'onreceive', 'link-116');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name" targets="Method nbxmpp.dispatcher_nb.XMPPDispatcher._WaitForData()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#_WaitForData"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher._WaitForData" class="py-name" href="#" onclick="return doclink('link-121', '_WaitForData', 'link-121');">_WaitForData</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_expected</tt><tt class="py-op">[</tt><tt class="py-name">_waitid</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_waitid</tt> </tt>
+</div><a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"> </tt>
+<a name="XMPPDispatcher.SendAndCallForResponse"></a><div id="XMPPDispatcher.SendAndCallForResponse-def"><a name="L542"></a><tt class="py-lineno">542</tt> <a class="py-toggle" href="#" id="XMPPDispatcher.SendAndCallForResponse-toggle" onclick="return toggle('XMPPDispatcher.SendAndCallForResponse');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#SendAndCallForResponse">SendAndCallForResponse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">func</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">args</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMPPDispatcher.SendAndCallForResponse-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XMPPDispatcher.SendAndCallForResponse-expanded"><a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"><tt class="py-docstring"> Put stanza on the wire and call back when recipient replies. Additional</tt> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"><tt class="py-docstring"> callback arguments can be specified in args</tt> </tt>
+<a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.SendAndWaitForResponse" class="py-name" href="#" onclick="return doclink('link-122', 'SendAndWaitForResponse', 'link-33');">SendAndWaitForResponse</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">func</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> </tt>
+<a name="XMPPDispatcher.send"></a><div id="XMPPDispatcher.send-def"><a name="L549"></a><tt class="py-lineno">549</tt> <a class="py-toggle" href="#" id="XMPPDispatcher.send-toggle" onclick="return toggle('XMPPDispatcher.send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send">send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">now</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMPPDispatcher.send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XMPPDispatcher.send-expanded"><a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"><tt class="py-docstring"> Wrap transports send method when plugged into NonBlockingClient. Makes</tt> </tt>
+<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"><tt class="py-docstring"> sure stanzas get ID and from tag.</tt> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt class="py-name">ID</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt id="link-123" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-123', 'Protocol', 'link-10');">Protocol</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt class="py-name">ID</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="nbxmpp.protocol.Protocol.getID" class="py-name" href="#" onclick="return doclink('link-124', 'getID', 'link-108');">getID</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ID</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name" targets="Method nbxmpp.protocol.Protocol.setID()=nbxmpp.protocol.Protocol-class.html#setID"><a title="nbxmpp.protocol.Protocol.setID" class="py-name" href="#" onclick="return doclink('link-125', 'setID', 'link-125');">setID</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.getAnID" class="py-name" href="#" onclick="return doclink('link-126', 'getAnID', 'link-35');">getAnID</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-name">ID</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="nbxmpp.protocol.Protocol.getID" class="py-name" href="#" onclick="return doclink('link-127', 'getID', 'link-108');">getID</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">_registered_name</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name" targets="Method nbxmpp.simplexml.Node.getAttr()=nbxmpp.simplexml.Node-class.html#getAttr"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-128', 'getAttr', 'link-128');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'from'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-129', 'setAttr', 'link-67');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'from'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">_registered_name</tt><tt class="py-op">)</tt> </tt>
+<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"> </tt>
+<a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> <tt class="py-comment"># If no ID then it is a whitespace</tt> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-keyword">and</tt> <tt class="py-name">ID</tt><tt class="py-op">:</tt> </tt>
+<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
+<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">out_h</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">out_h</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
+<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt class="py-name">max_queue</tt><tt class="py-op">:</tt> </tt>
+<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sm</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name" targets="Method nbxmpp.smacks.Smacks.request_ack()=nbxmpp.smacks.Smacks-class.html#request_ack"><a title="nbxmpp.smacks.Smacks.request_ack" class="py-name" href="#" onclick="return doclink('link-130', 'request_ack', 'link-130');">request_ack</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> </tt>
+<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-155', 'send', 'link-37');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">now</tt><tt class="py-op">)</tt> </tt>
-<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ID</tt> </tt>
-</div></div><a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> </tt>
-<a name="BOSHDispatcher"></a><div id="BOSHDispatcher-def"><a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> </tt>
-<a name="L572"></a><tt class="py-lineno">572</tt> <a class="py-toggle" href="#" id="BOSHDispatcher-toggle" onclick="return toggle('BOSHDispatcher');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html">BOSHDispatcher</a><tt class="py-op">(</tt><tt class="py-base-class">XMPPDispatcher</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BOSHDispatcher-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BOSHDispatcher-expanded"><a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> </tt>
-<a name="BOSHDispatcher.PlugIn"></a><div id="BOSHDispatcher.PlugIn-def"><a name="L574"></a><tt class="py-lineno">574</tt> <a class="py-toggle" href="#" id="BOSHDispatcher.PlugIn-toggle" onclick="return toggle('BOSHDispatcher.PlugIn');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#PlugIn">PlugIn</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">owner</tt><tt class="py-op">,</tt> <tt class="py-param">after_SASL</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">old_features</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BOSHDispatcher.PlugIn-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BOSHDispatcher.PlugIn-expanded"><a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">old_features</tt> <tt class="py-op">=</tt> <tt class="py-name">old_features</tt> </tt>
-<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">after_SASL</tt> <tt class="py-op">=</tt> <tt class="py-name">after_SASL</tt> </tt>
-<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt id="link-156" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher" class="py-name" href="#" onclick="return doclink('link-156', 'XMPPDispatcher', 'link-19');">XMPPDispatcher</a></tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-131', 'send', 'link-37');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">now</tt><tt class="py-op">)</tt> </tt>
+<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ID</tt> </tt>
+</div></div><a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> </tt>
+<a name="BOSHDispatcher"></a><div id="BOSHDispatcher-def"><a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> </tt>
+<a name="L575"></a><tt class="py-lineno">575</tt> <a class="py-toggle" href="#" id="BOSHDispatcher-toggle" onclick="return toggle('BOSHDispatcher');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html">BOSHDispatcher</a><tt class="py-op">(</tt><tt class="py-base-class">XMPPDispatcher</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BOSHDispatcher-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BOSHDispatcher-expanded"><a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"> </tt>
+<a name="BOSHDispatcher.PlugIn"></a><div id="BOSHDispatcher.PlugIn-def"><a name="L577"></a><tt class="py-lineno">577</tt> <a class="py-toggle" href="#" id="BOSHDispatcher.PlugIn-toggle" onclick="return toggle('BOSHDispatcher.PlugIn');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#PlugIn">PlugIn</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">owner</tt><tt class="py-op">,</tt> <tt class="py-param">after_SASL</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-param">old_features</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BOSHDispatcher.PlugIn-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BOSHDispatcher.PlugIn-expanded"><a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">old_features</tt> <tt class="py-op">=</tt> <tt class="py-name">old_features</tt> </tt>
+<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">after_SASL</tt> <tt class="py-op">=</tt> <tt class="py-name">after_SASL</tt> </tt>
+<a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt id="link-132" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher" class="py-name" href="#" onclick="return doclink('link-132', 'XMPPDispatcher', 'link-19');">XMPPDispatcher</a></tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
nbxmpp.dispatcher_nb.Dispatcher.PlugIn
nbxmpp.plugin.PlugIn
-nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-157', 'PlugIn', 'link-2');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">owner</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> </tt>
-<a name="BOSHDispatcher.StreamInit"></a><div id="BOSHDispatcher.StreamInit-def"><a name="L579"></a><tt class="py-lineno">579</tt> <a class="py-toggle" href="#" id="BOSHDispatcher.StreamInit-toggle" onclick="return toggle('BOSHDispatcher.StreamInit');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#StreamInit">StreamInit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BOSHDispatcher.StreamInit-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BOSHDispatcher.StreamInit-expanded"><a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"><tt class="py-docstring"> Send an initial stream header</tt> </tt>
-<a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt> <tt class="py-op">=</tt> <tt id="link-158" class="py-name"><a title="nbxmpp.simplexml" class="py-name" href="#" onclick="return doclink('link-158', 'simplexml', 'link-0');">simplexml</a></tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder" class="py-name" href="#" onclick="return doclink('link-159', 'NodeBuilder', 'link-60');">NodeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.dispatch
+nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-133', 'PlugIn', 'link-2');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">owner</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"> </tt>
+<a name="BOSHDispatcher.StreamInit"></a><div id="BOSHDispatcher.StreamInit-def"><a name="L582"></a><tt class="py-lineno">582</tt> <a class="py-toggle" href="#" id="BOSHDispatcher.StreamInit-toggle" onclick="return toggle('BOSHDispatcher.StreamInit');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#StreamInit">StreamInit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BOSHDispatcher.StreamInit-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BOSHDispatcher.StreamInit-expanded"><a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"><tt class="py-docstring"> Send an initial stream header</tt> </tt>
+<a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt> <tt class="py-op">=</tt> <tt id="link-134" class="py-name"><a title="nbxmpp.simplexml" class="py-name" href="#" onclick="return doclink('link-134', 'simplexml', 'link-0');">simplexml</a></tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder" class="py-name" href="#" onclick="return doclink('link-135', 'NodeBuilder', 'link-60');">NodeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.dispatch
nbxmpp.dispatcher_nb.XMPPDispatcher.dispatch
-nbxmpp.simplexml.NodeBuilder.dispatch" class="py-name" href="#" onclick="return doclink('link-160', 'dispatch', 'link-57');">dispatch</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.dispatch
+nbxmpp.simplexml.NodeBuilder.dispatch" class="py-name" href="#" onclick="return doclink('link-136', 'dispatch', 'link-57');">dispatch</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.dispatch
nbxmpp.dispatcher_nb.XMPPDispatcher.dispatch
-nbxmpp.simplexml.NodeBuilder.dispatch" class="py-name" href="#" onclick="return doclink('link-161', 'dispatch', 'link-57');">dispatch</a></tt> </tt>
-<a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">_dispatch_depth</tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
-<a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.stream_header_received" class="py-name" href="#" onclick="return doclink('link-162', 'stream_header_received', 'link-63');">stream_header_received</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher._check_stream_start" class="py-name" href="#" onclick="return doclink('link-163', '_check_stream_start', 'link-64');">_check_stream_start</a></tt> </tt>
-<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">features</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">old_features</tt> </tt>
-<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"> </tt>
-<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt> <tt class="py-op">=</tt> <tt id="link-164" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-164', 'Node', 'link-11');">Node</a></tt><tt class="py-op">(</tt><tt class="py-string">'stream:stream'</tt><tt class="py-op">)</tt> </tt>
-<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-165', 'setNamespace', 'link-66');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Namespace</tt><tt class="py-op">)</tt> </tt>
-<a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-166', 'setAttr', 'link-67');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'version'</tt><tt class="py-op">,</tt> <tt class="py-string">'1.0'</tt><tt class="py-op">)</tt> </tt>
-<a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-167', 'setAttr', 'link-67');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'xmlns:stream'</tt><tt class="py-op">,</tt> <tt id="link-168" class="py-name"><a title="nbxmpp.protocol.NS_STREAMS" class="py-name" href="#" onclick="return doclink('link-168', 'NS_STREAMS', 'link-4');">NS_STREAMS</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-169', 'setAttr', 'link-67');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'to'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Server</tt><tt class="py-op">)</tt> </tt>
-<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">locale</tt><tt class="py-op">.</tt><tt class="py-name">getdefaultlocale</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-170', 'setAttr', 'link-67');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'xml:lang'</tt><tt class="py-op">,</tt> </tt>
-<a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"> <tt class="py-name">locale</tt><tt class="py-op">.</tt><tt class="py-name">getdefaultlocale</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'_'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L597"></a><tt class="py-lineno">597</tt> <tt class="py-line"> </tt>
-<a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">restart</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L599"></a><tt class="py-lineno">599</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.send_init()=nbxmpp.bosh.NonBlockingBOSH-class.html#send_init"><a title="nbxmpp.bosh.NonBlockingBOSH.send_init" class="py-name" href="#" onclick="return doclink('link-171', 'send_init', 'link-171');">send_init</a></tt><tt class="py-op">(</tt><tt class="py-name">after_SASL</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">after_SASL</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"> </tt>
-<a name="BOSHDispatcher.StreamTerminate"></a><div id="BOSHDispatcher.StreamTerminate-def"><a name="L601"></a><tt class="py-lineno">601</tt> <a class="py-toggle" href="#" id="BOSHDispatcher.StreamTerminate-toggle" onclick="return toggle('BOSHDispatcher.StreamTerminate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#StreamTerminate">StreamTerminate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BOSHDispatcher.StreamTerminate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BOSHDispatcher.StreamTerminate-expanded"><a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"><tt class="py-docstring"> Send a stream terminator</tt> </tt>
-<a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt class="py-name">send_terminator</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"> </tt>
-<a name="BOSHDispatcher.ProcessNonBlocking"></a><div id="BOSHDispatcher.ProcessNonBlocking-def"><a name="L607"></a><tt class="py-lineno">607</tt> <a class="py-toggle" href="#" id="BOSHDispatcher.ProcessNonBlocking-toggle" onclick="return toggle('BOSHDispatcher.ProcessNonBlocking');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#ProcessNonBlocking">ProcessNonBlocking</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BOSHDispatcher.ProcessNonBlocking-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BOSHDispatcher.ProcessNonBlocking-expanded"><a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">restart</tt><tt class="py-op">:</tt> </tt>
-<a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"> <tt class="py-name">fromstream</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt> </tt>
-<a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"> <tt class="py-name">fromstream</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-172', 'setAttr', 'link-67');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'from'</tt><tt class="py-op">,</tt> <tt class="py-name">fromstream</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-173', 'getAttr', 'link-152');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'to'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"> <tt class="py-name">fromstream</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name" targets="Method nbxmpp.simplexml.Node.delAttr()=nbxmpp.simplexml.Node-class.html#delAttr"><a title="nbxmpp.simplexml.Node.delAttr" class="py-name" href="#" onclick="return doclink('link-174', 'delAttr', 'link-174');">delAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'to'</tt><tt class="py-op">)</tt> </tt>
-<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s%s&gt;%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-175" class="py-name"><a title="nbxmpp.dispatcher_nb.XML_DECLARATION" class="py-name" href="#" onclick="return doclink('link-175', 'XML_DECLARATION', 'link-18');">XML_DECLARATION</a></tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">fromstream</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">restart</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-176" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher" class="py-name" href="#" onclick="return doclink('link-176', 'XMPPDispatcher', 'link-19');">XMPPDispatcher</a></tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
-nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-177', 'ProcessNonBlocking', 'link-139');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> </tt>
-<a name="BOSHDispatcher.dispatch"></a><div id="BOSHDispatcher.dispatch-def"><a name="L616"></a><tt class="py-lineno">616</tt> <a class="py-toggle" href="#" id="BOSHDispatcher.dispatch-toggle" onclick="return toggle('BOSHDispatcher.dispatch');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#dispatch">dispatch</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">session</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">direct</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BOSHDispatcher.dispatch-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BOSHDispatcher.dispatch-expanded"><a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-178', 'getName', 'link-112');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'body'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-179', 'getNamespace', 'link-114');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-180" class="py-name"><a title="nbxmpp.protocol.NS_HTTP_BIND" class="py-name" href="#" onclick="return doclink('link-180', 'NS_HTTP_BIND', 'link-6');">NS_HTTP_BIND</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"> </tt>
-<a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"> <tt class="py-name">stanza_attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name" targets="Method nbxmpp.simplexml.Node.getAttrs()=nbxmpp.simplexml.Node-class.html#getAttrs"><a title="nbxmpp.simplexml.Node.getAttrs" class="py-name" href="#" onclick="return doclink('link-181', 'getAttrs', 'link-181');">getAttrs</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'authid'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">:</tt> </tt>
-<a name="L621"></a><tt class="py-lineno">621</tt> <tt class="py-line"> <tt class="py-comment"># should be only in init response</tt> </tt>
-<a name="L622"></a><tt class="py-lineno">622</tt> <tt class="py-line"> <tt class="py-comment"># auth module expects id of stream in document attributes</tt> </tt>
-<a name="L623"></a><tt class="py-lineno">623</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">_document_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'authid'</tt><tt class="py-op">]</tt> </tt>
-<a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.handle_body_attrs()=nbxmpp.bosh.NonBlockingBOSH-class.html#handle_body_attrs"><a title="nbxmpp.bosh.NonBlockingBOSH.handle_body_attrs" class="py-name" href="#" onclick="return doclink('link-182', 'handle_body_attrs', 'link-182');">handle_body_attrs</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza_attrs</tt><tt class="py-op">)</tt> </tt>
-<a name="L625"></a><tt class="py-lineno">625</tt> <tt class="py-line"> </tt>
-<a name="L626"></a><tt class="py-lineno">626</tt> <tt class="py-line"> <tt class="py-name">children</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name" targets="Method nbxmpp.simplexml.Node.getChildren()=nbxmpp.simplexml.Node-class.html#getChildren"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-183', 'getChildren', 'link-183');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L627"></a><tt class="py-lineno">627</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">children</tt><tt class="py-op">:</tt> </tt>
-<a name="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">children</tt><tt class="py-op">:</tt> </tt>
-<a name="L629"></a><tt class="py-lineno">629</tt> <tt class="py-line"> <tt class="py-comment"># if child doesn't have any ns specified, simplexml (or expat)</tt> </tt>
-<a name="L630"></a><tt class="py-lineno">630</tt> <tt class="py-line"> <tt class="py-comment"># thinks it's of parent's (BOSH body) namespace, so we have to</tt> </tt>
-<a name="L631"></a><tt class="py-lineno">631</tt> <tt class="py-line"> <tt class="py-comment"># rewrite it to jabber:client</tt> </tt>
-<a name="L632"></a><tt class="py-lineno">632</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-184', 'getNamespace', 'link-114');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-185" class="py-name"><a title="nbxmpp.protocol.NS_HTTP_BIND" class="py-name" href="#" onclick="return doclink('link-185', 'NS_HTTP_BIND', 'link-6');">NS_HTTP_BIND</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L633"></a><tt class="py-lineno">633</tt> <tt class="py-line"> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-186" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-186', 'setNamespace', 'link-66');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">defaultNamespace</tt><tt class="py-op">)</tt> </tt>
-<a name="L634"></a><tt class="py-lineno">634</tt> <tt class="py-line"> <tt id="link-187" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher" class="py-name" href="#" onclick="return doclink('link-187', 'XMPPDispatcher', 'link-19');">XMPPDispatcher</a></tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.dispatch
+nbxmpp.simplexml.NodeBuilder.dispatch" class="py-name" href="#" onclick="return doclink('link-137', 'dispatch', 'link-57');">dispatch</a></tt> </tt>
+<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">_dispatch_depth</tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
+<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.stream_header_received" class="py-name" href="#" onclick="return doclink('link-138', 'stream_header_received', 'link-63');">stream_header_received</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher._check_stream_start" class="py-name" href="#" onclick="return doclink('link-139', '_check_stream_start', 'link-64');">_check_stream_start</a></tt> </tt>
+<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">features</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">old_features</tt> </tt>
+<a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"> </tt>
+<a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt> <tt class="py-op">=</tt> <tt id="link-140" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-140', 'Node', 'link-11');">Node</a></tt><tt class="py-op">(</tt><tt class="py-string">'stream:stream'</tt><tt class="py-op">)</tt> </tt>
+<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-141', 'setNamespace', 'link-66');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Namespace</tt><tt class="py-op">)</tt> </tt>
+<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-142', 'setAttr', 'link-67');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'version'</tt><tt class="py-op">,</tt> <tt class="py-string">'1.0'</tt><tt class="py-op">)</tt> </tt>
+<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-143', 'setAttr', 'link-67');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'xmlns:stream'</tt><tt class="py-op">,</tt> <tt id="link-144" class="py-name"><a title="nbxmpp.protocol.NS_STREAMS" class="py-name" href="#" onclick="return doclink('link-144', 'NS_STREAMS', 'link-4');">NS_STREAMS</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-145', 'setAttr', 'link-67');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'to'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Server</tt><tt class="py-op">)</tt> </tt>
+<a name="L597"></a><tt class="py-lineno">597</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">locale</tt><tt class="py-op">.</tt><tt class="py-name">getdefaultlocale</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-146', 'setAttr', 'link-67');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'xml:lang'</tt><tt class="py-op">,</tt> </tt>
+<a name="L599"></a><tt class="py-lineno">599</tt> <tt class="py-line"> <tt class="py-name">locale</tt><tt class="py-op">.</tt><tt class="py-name">getdefaultlocale</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'_'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"> </tt>
+<a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">restart</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.send_init()=nbxmpp.bosh.NonBlockingBOSH-class.html#send_init"><a title="nbxmpp.bosh.NonBlockingBOSH.send_init" class="py-name" href="#" onclick="return doclink('link-147', 'send_init', 'link-147');">send_init</a></tt><tt class="py-op">(</tt><tt class="py-name">after_SASL</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">after_SASL</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"> </tt>
+<a name="BOSHDispatcher.StreamTerminate"></a><div id="BOSHDispatcher.StreamTerminate-def"><a name="L604"></a><tt class="py-lineno">604</tt> <a class="py-toggle" href="#" id="BOSHDispatcher.StreamTerminate-toggle" onclick="return toggle('BOSHDispatcher.StreamTerminate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#StreamTerminate">StreamTerminate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BOSHDispatcher.StreamTerminate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BOSHDispatcher.StreamTerminate-expanded"><a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"><tt class="py-docstring"> Send a stream terminator</tt> </tt>
+<a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt class="py-name">send_terminator</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"> </tt>
+<a name="BOSHDispatcher.ProcessNonBlocking"></a><div id="BOSHDispatcher.ProcessNonBlocking-def"><a name="L610"></a><tt class="py-lineno">610</tt> <a class="py-toggle" href="#" id="BOSHDispatcher.ProcessNonBlocking-toggle" onclick="return toggle('BOSHDispatcher.ProcessNonBlocking');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#ProcessNonBlocking">ProcessNonBlocking</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BOSHDispatcher.ProcessNonBlocking-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BOSHDispatcher.ProcessNonBlocking-expanded"><a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">restart</tt><tt class="py-op">:</tt> </tt>
+<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"> <tt class="py-name">fromstream</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_metastream</tt> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"> <tt class="py-name">fromstream</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-148', 'setAttr', 'link-67');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'from'</tt><tt class="py-op">,</tt> <tt class="py-name">fromstream</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-149', 'getAttr', 'link-128');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'to'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"> <tt class="py-name">fromstream</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name" targets="Method nbxmpp.simplexml.Node.delAttr()=nbxmpp.simplexml.Node-class.html#delAttr"><a title="nbxmpp.simplexml.Node.delAttr" class="py-name" href="#" onclick="return doclink('link-150', 'delAttr', 'link-150');">delAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'to'</tt><tt class="py-op">)</tt> </tt>
+<a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s%s&gt;%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-151" class="py-name"><a title="nbxmpp.dispatcher_nb.XML_DECLARATION" class="py-name" href="#" onclick="return doclink('link-151', 'XML_DECLARATION', 'link-18');">XML_DECLARATION</a></tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">fromstream</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L616"></a><tt class="py-lineno">616</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">restart</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-152" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher" class="py-name" href="#" onclick="return doclink('link-152', 'XMPPDispatcher', 'link-19');">XMPPDispatcher</a></tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
+nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-153', 'ProcessNonBlocking', 'link-115');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"> </tt>
+<a name="BOSHDispatcher.dispatch"></a><div id="BOSHDispatcher.dispatch-def"><a name="L619"></a><tt class="py-lineno">619</tt> <a class="py-toggle" href="#" id="BOSHDispatcher.dispatch-toggle" onclick="return toggle('BOSHDispatcher.dispatch');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#dispatch">dispatch</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">,</tt> <tt class="py-param">session</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">direct</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BOSHDispatcher.dispatch-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BOSHDispatcher.dispatch-expanded"><a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-154', 'getName', 'link-99');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'body'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-155', 'getNamespace', 'link-101');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-156" class="py-name"><a title="nbxmpp.protocol.NS_HTTP_BIND" class="py-name" href="#" onclick="return doclink('link-156', 'NS_HTTP_BIND', 'link-6');">NS_HTTP_BIND</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L621"></a><tt class="py-lineno">621</tt> <tt class="py-line"> </tt>
+<a name="L622"></a><tt class="py-lineno">622</tt> <tt class="py-line"> <tt class="py-name">stanza_attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name" targets="Method nbxmpp.simplexml.Node.getAttrs()=nbxmpp.simplexml.Node-class.html#getAttrs"><a title="nbxmpp.simplexml.Node.getAttrs" class="py-name" href="#" onclick="return doclink('link-157', 'getAttrs', 'link-157');">getAttrs</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L623"></a><tt class="py-lineno">623</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'authid'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">:</tt> </tt>
+<a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"> <tt class="py-comment"># should be only in init response</tt> </tt>
+<a name="L625"></a><tt class="py-lineno">625</tt> <tt class="py-line"> <tt class="py-comment"># auth module expects id of stream in document attributes</tt> </tt>
+<a name="L626"></a><tt class="py-lineno">626</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Stream</tt><tt class="py-op">.</tt><tt class="py-name">_document_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza_attrs</tt><tt class="py-op">[</tt><tt class="py-string">'authid'</tt><tt class="py-op">]</tt> </tt>
+<a name="L627"></a><tt class="py-lineno">627</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.handle_body_attrs()=nbxmpp.bosh.NonBlockingBOSH-class.html#handle_body_attrs"><a title="nbxmpp.bosh.NonBlockingBOSH.handle_body_attrs" class="py-name" href="#" onclick="return doclink('link-158', 'handle_body_attrs', 'link-158');">handle_body_attrs</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza_attrs</tt><tt class="py-op">)</tt> </tt>
+<a name="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"> </tt>
+<a name="L629"></a><tt class="py-lineno">629</tt> <tt class="py-line"> <tt class="py-name">children</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name" targets="Method nbxmpp.simplexml.Node.getChildren()=nbxmpp.simplexml.Node-class.html#getChildren"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-159', 'getChildren', 'link-159');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L630"></a><tt class="py-lineno">630</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">children</tt><tt class="py-op">:</tt> </tt>
+<a name="L631"></a><tt class="py-lineno">631</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">children</tt><tt class="py-op">:</tt> </tt>
+<a name="L632"></a><tt class="py-lineno">632</tt> <tt class="py-line"> <tt class="py-comment"># if child doesn't have any ns specified, simplexml (or expat)</tt> </tt>
+<a name="L633"></a><tt class="py-lineno">633</tt> <tt class="py-line"> <tt class="py-comment"># thinks it's of parent's (BOSH body) namespace, so we have to</tt> </tt>
+<a name="L634"></a><tt class="py-lineno">634</tt> <tt class="py-line"> <tt class="py-comment"># rewrite it to jabber:client</tt> </tt>
+<a name="L635"></a><tt class="py-lineno">635</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-160', 'getNamespace', 'link-101');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-161" class="py-name"><a title="nbxmpp.protocol.NS_HTTP_BIND" class="py-name" href="#" onclick="return doclink('link-161', 'NS_HTTP_BIND', 'link-6');">NS_HTTP_BIND</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L636"></a><tt class="py-lineno">636</tt> <tt class="py-line"> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-162', 'setNamespace', 'link-66');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">defaultNamespace</tt><tt class="py-op">)</tt> </tt>
+<a name="L637"></a><tt class="py-lineno">637</tt> <tt class="py-line"> <tt id="link-163" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher" class="py-name" href="#" onclick="return doclink('link-163', 'XMPPDispatcher', 'link-19');">XMPPDispatcher</a></tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.dispatch
nbxmpp.dispatcher_nb.XMPPDispatcher.dispatch
-nbxmpp.simplexml.NodeBuilder.dispatch" class="py-name" href="#" onclick="return doclink('link-188', 'dispatch', 'link-57');">dispatch</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">session</tt><tt class="py-op">,</tt> <tt class="py-name">direct</tt><tt class="py-op">)</tt> </tt>
-<a name="L635"></a><tt class="py-lineno">635</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L636"></a><tt class="py-lineno">636</tt> <tt class="py-line"> <tt id="link-189" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher" class="py-name" href="#" onclick="return doclink('link-189', 'XMPPDispatcher', 'link-19');">XMPPDispatcher</a></tt><tt class="py-op">.</tt><tt id="link-190" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.dispatch
+nbxmpp.simplexml.NodeBuilder.dispatch" class="py-name" href="#" onclick="return doclink('link-164', 'dispatch', 'link-57');">dispatch</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">session</tt><tt class="py-op">,</tt> <tt class="py-name">direct</tt><tt class="py-op">)</tt> </tt>
+<a name="L638"></a><tt class="py-lineno">638</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L639"></a><tt class="py-lineno">639</tt> <tt class="py-line"> <tt id="link-165" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher" class="py-name" href="#" onclick="return doclink('link-165', 'XMPPDispatcher', 'link-19');">XMPPDispatcher</a></tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.dispatch
nbxmpp.dispatcher_nb.XMPPDispatcher.dispatch
-nbxmpp.simplexml.NodeBuilder.dispatch" class="py-name" href="#" onclick="return doclink('link-190', 'dispatch', 'link-57');">dispatch</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">session</tt><tt class="py-op">,</tt> <tt class="py-name">direct</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L637"></a><tt class="py-lineno">637</tt> <tt class="py-line"> </tt><script type="text/javascript">
+nbxmpp.simplexml.NodeBuilder.dispatch" class="py-name" href="#" onclick="return doclink('link-166', 'dispatch', 'link-57');">dispatch</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">session</tt><tt class="py-op">,</tt> <tt class="py-name">direct</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L640"></a><tt class="py-lineno">640</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -1041,7 +1017,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.dispatcher_nb.BOSHDispatcher-class.html b/doc/apidocs/nbxmpp.dispatcher_nb.BOSHDispatcher-class.html
index f10a26f..e1e0465 100644
--- a/doc/apidocs/nbxmpp.dispatcher_nb.BOSHDispatcher-class.html
+++ b/doc/apidocs/nbxmpp.dispatcher_nb.BOSHDispatcher-class.html
@@ -70,21 +70,21 @@
<area shape="rect" id="node9" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#ProcessNonBlocking" title="Check incoming stream for data waiting" alt="" coords="141,529,519,548"/>
<area shape="rect" id="node9" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#dispatch" title="Main procedure that performs XMPP stanza recognition and calling apppropriate handlers for it. Called by simplexml" alt="" coords="141,548,519,567"/>
<area shape="rect" id="node1" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html" title="nbxmpp.dispatcher_nb.BOSHDispatcher" alt="" coords="129,441,529,573"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#__init__" title="nbxmpp.dispatcher_nb.XMPPDispatcher.__init__" alt="" coords="17,135,644,153"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#getAnID" title="nbxmpp.dispatcher_nb.XMPPDispatcher.getAnID" alt="" coords="17,153,644,172"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#dumpHandlers" title="Return set of user&#45;registered callbacks in it&#39;s internal format. Used within the library to carry user handlers set over Dispatcher replugins" alt="" coords="17,172,644,191"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#restoreHandlers" title="Restore user&#45;registered callbacks structure from dump previously obtained via dumpHandlers. Used within the library to carry user handlers set over Dispatcher replugins." alt="" coords="17,191,644,209"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#plugin" title="Plug the Dispatcher instance into Client class instance and send initial stream header. Used internally" alt="" coords="17,209,644,228"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#plugout" title="Prepare instance to be destructed" alt="" coords="17,228,644,247"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#replace_non_character" title="nbxmpp.dispatcher_nb.XMPPDispatcher.replace_non_character" alt="" coords="17,247,644,265"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterNamespace" title="Create internal structures for newly registered namespace" alt="" coords="17,265,644,284"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterProtocol" title="Used to declare some top&#45;level stanza name to dispatcher" alt="" coords="17,284,644,303"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterNamespaceHandler" title="Register handler for processing all stanzas for specified namespace" alt="" coords="17,303,644,321"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandler" title="Register user callback as stanzas handler of declared type" alt="" coords="17,321,644,340"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandlerOnce" title="Unregister handler after first call (not implemented yet)" alt="" coords="17,340,644,359"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#UnregisterHandler" title="Unregister handler. &quot;typ&quot; and &quot;ns&quot; must be specified exactly the same as with registering." alt="" coords="17,359,644,377"/>
-<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send" title="Wrap transports send method when plugged into NonBlockingClient. Makes sure stanzas get ID and from tag." alt="" coords="17,396,644,415"/>
-<area shape="rect" id="node2" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html" title="Handles XMPP stream and is the first who takes control over a fresh stanza" alt="" coords="5,102,656,421"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#__init__" title="nbxmpp.dispatcher_nb.XMPPDispatcher.__init__" alt="" coords="17,135,643,153"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#getAnID" title="nbxmpp.dispatcher_nb.XMPPDispatcher.getAnID" alt="" coords="17,153,643,172"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#dumpHandlers" title="Return set of user&#45;registered callbacks in it&#39;s internal format. Used within the library to carry user handlers set over Dispatcher replugins" alt="" coords="17,172,643,191"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#restoreHandlers" title="Restore user&#45;registered callbacks structure from dump previously obtained via dumpHandlers. Used within the library to carry user handlers set over Dispatcher replugins." alt="" coords="17,191,643,209"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#plugin" title="Plug the Dispatcher instance into Client class instance and send initial stream header. Used internally" alt="" coords="17,209,643,228"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#plugout" title="Prepare instance to be destructed" alt="" coords="17,228,643,247"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#replace_non_character" title="nbxmpp.dispatcher_nb.XMPPDispatcher.replace_non_character" alt="" coords="17,247,643,265"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterNamespace" title="Create internal structures for newly registered namespace" alt="" coords="17,265,643,284"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterProtocol" title="Used to declare some top&#45;level stanza name to dispatcher" alt="" coords="17,284,643,303"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterNamespaceHandler" title="Register handler for processing all stanzas for specified namespace" alt="" coords="17,303,643,321"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandler" title="Register user callback as stanzas handler of declared type" alt="" coords="17,321,643,340"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandlerOnce" title="Unregister handler after first call (not implemented yet)" alt="" coords="17,340,643,359"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#UnregisterHandler" title="Unregister handler. &quot;typ&quot; and &quot;ns&quot; must be specified exactly the same as with registering." alt="" coords="17,359,643,377"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send" title="Wrap transports send method when plugged into NonBlockingClient. Makes sure stanzas get ID and from tag." alt="" coords="17,396,643,415"/>
+<area shape="rect" id="node2" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html" title="Handles XMPP stream and is the first who takes control over a fresh stanza" alt="" coords="5,102,653,421"/>
<area shape="rect" id="node11" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="217,39,443,57"/>
<area shape="rect" id="node11" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="217,57,443,76"/>
<area shape="rect" id="node3" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="205,6,453,82"/>
@@ -447,7 +447,7 @@ apppropriate handlers for it. Called by simplexml
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.dispatcher_nb.Dispatcher-class.html b/doc/apidocs/nbxmpp.dispatcher_nb.Dispatcher-class.html
index 7a66738..d5e4849 100644
--- a/doc/apidocs/nbxmpp.dispatcher_nb.Dispatcher-class.html
+++ b/doc/apidocs/nbxmpp.dispatcher_nb.Dispatcher-class.html
@@ -240,7 +240,7 @@ unit testing much easier.</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.dispatcher_nb.XMPPDispatcher-class.html b/doc/apidocs/nbxmpp.dispatcher_nb.XMPPDispatcher-class.html
index 2548942..8bf9e8b 100644
--- a/doc/apidocs/nbxmpp.dispatcher_nb.XMPPDispatcher-class.html
+++ b/doc/apidocs/nbxmpp.dispatcher_nb.XMPPDispatcher-class.html
@@ -64,21 +64,21 @@
<h1 class="epydoc">Class XMPPDispatcher</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.dispatcher_nb-pysrc.html#XMPPDispatcher">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_d_2" name="uml_class_diagram_for_nbxmpp_d_2">
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#__init__" title="nbxmpp.dispatcher_nb.XMPPDispatcher.__init__" alt="" coords="17,153,644,172"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#getAnID" title="nbxmpp.dispatcher_nb.XMPPDispatcher.getAnID" alt="" coords="17,172,644,191"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#dumpHandlers" title="Return set of user&#45;registered callbacks in it&#39;s internal format. Used within the library to carry user handlers set over Dispatcher replugins" alt="" coords="17,191,644,209"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#restoreHandlers" title="Restore user&#45;registered callbacks structure from dump previously obtained via dumpHandlers. Used within the library to carry user handlers set over Dispatcher replugins." alt="" coords="17,209,644,228"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#plugin" title="Plug the Dispatcher instance into Client class instance and send initial stream header. Used internally" alt="" coords="17,228,644,247"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#plugout" title="Prepare instance to be destructed" alt="" coords="17,247,644,265"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#StreamInit" title="Send an initial stream header" alt="" coords="17,265,644,284"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#replace_non_character" title="nbxmpp.dispatcher_nb.XMPPDispatcher.replace_non_character" alt="" coords="17,284,644,303"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#ProcessNonBlocking" title="Check incoming stream for data waiting" alt="" coords="17,303,644,321"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterNamespace" title="Create internal structures for newly registered namespace" alt="" coords="17,321,644,340"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterProtocol" title="Used to declare some top&#45;level stanza name to dispatcher" alt="" coords="17,340,644,359"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterNamespaceHandler" title="Register handler for processing all stanzas for specified namespace" alt="" coords="17,359,644,377"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandler" title="Register user callback as stanzas handler of declared type" alt="" coords="17,377,644,396"/>
-<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send" title="Wrap transports send method when plugged into NonBlockingClient. Makes sure stanzas get ID and from tag." alt="" coords="17,415,644,433"/>
-<area shape="rect" id="node1" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html" title="Handles XMPP stream and is the first who takes control over a fresh stanza" alt="" coords="5,121,656,439"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#__init__" title="nbxmpp.dispatcher_nb.XMPPDispatcher.__init__" alt="" coords="17,153,643,172"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#getAnID" title="nbxmpp.dispatcher_nb.XMPPDispatcher.getAnID" alt="" coords="17,172,643,191"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#dumpHandlers" title="Return set of user&#45;registered callbacks in it&#39;s internal format. Used within the library to carry user handlers set over Dispatcher replugins" alt="" coords="17,191,643,209"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#restoreHandlers" title="Restore user&#45;registered callbacks structure from dump previously obtained via dumpHandlers. Used within the library to carry user handlers set over Dispatcher replugins." alt="" coords="17,209,643,228"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#plugin" title="Plug the Dispatcher instance into Client class instance and send initial stream header. Used internally" alt="" coords="17,228,643,247"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#plugout" title="Prepare instance to be destructed" alt="" coords="17,247,643,265"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#StreamInit" title="Send an initial stream header" alt="" coords="17,265,643,284"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#replace_non_character" title="nbxmpp.dispatcher_nb.XMPPDispatcher.replace_non_character" alt="" coords="17,284,643,303"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#ProcessNonBlocking" title="Check incoming stream for data waiting" alt="" coords="17,303,643,321"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterNamespace" title="Create internal structures for newly registered namespace" alt="" coords="17,321,643,340"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterProtocol" title="Used to declare some top&#45;level stanza name to dispatcher" alt="" coords="17,340,643,359"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterNamespaceHandler" title="Register handler for processing all stanzas for specified namespace" alt="" coords="17,359,643,377"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandler" title="Register user callback as stanzas handler of declared type" alt="" coords="17,377,643,396"/>
+<area shape="rect" id="node12" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send" title="Wrap transports send method when plugged into NonBlockingClient. Makes sure stanzas get ID and from tag." alt="" coords="17,415,643,433"/>
+<area shape="rect" id="node1" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html" title="Handles XMPP stream and is the first who takes control over a fresh stanza" alt="" coords="5,121,653,439"/>
<area shape="rect" id="node3" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html" title="nbxmpp.dispatcher_nb.BOSHDispatcher" alt="" coords="259,459,403,498"/>
<area shape="rect" id="node13" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="217,39,443,57"/>
<area shape="rect" id="node13" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="217,57,443,76"/>
@@ -1389,7 +1389,7 @@ sure stanzas get ID and from tag.
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.features_nb-module.html b/doc/apidocs/nbxmpp.features_nb-module.html
index 9995c64..4ec2085 100644
--- a/doc/apidocs/nbxmpp.features_nb-module.html
+++ b/doc/apidocs/nbxmpp.features_nb-module.html
@@ -960,7 +960,7 @@ taken from the server responce.
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.features_nb-pysrc.html b/doc/apidocs/nbxmpp.features_nb-pysrc.html
index 0ecc944..7ee6375 100644
--- a/doc/apidocs/nbxmpp.features_nb-pysrc.html
+++ b/doc/apidocs/nbxmpp.features_nb-pysrc.html
@@ -322,7 +322,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.idlequeue-module.html b/doc/apidocs/nbxmpp.idlequeue-module.html
index 238bc02..0ca2b85 100644
--- a/doc/apidocs/nbxmpp.idlequeue-module.html
+++ b/doc/apidocs/nbxmpp.idlequeue-module.html
@@ -529,7 +529,7 @@ True
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.idlequeue-pysrc.html b/doc/apidocs/nbxmpp.idlequeue-pysrc.html
index 3bfc63d..4538e7f 100644
--- a/doc/apidocs/nbxmpp.idlequeue-pysrc.html
+++ b/doc/apidocs/nbxmpp.idlequeue-pysrc.html
@@ -105,38 +105,35 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt id="link-2" class="py-name"><a title="nbxmpp.idlequeue.HAVE_GOBJECT" class="py-name" href="#" onclick="return doclink('link-2', 'HAVE_GOBJECT', 'link-1');">HAVE_GOBJECT</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> </tt>
<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-comment"># needed for idlecommand</tt> </tt>
-<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Variable nbxmpp.name=nbxmpp-module.html#name,Variable nbxmpp.protocol.name=nbxmpp.protocol-module.html#name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-3', 'name', 'link-3');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'nt'</tt><tt class="py-op">:</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">==</tt> <tt class="py-string">'nt'</tt><tt class="py-op">:</tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">subprocess</tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> <tt class="py-comment"># python24 only. we ask this for Windows</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-keyword">elif</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-4', 'name', 'link-3');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'posix'</tt><tt class="py-op">:</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-keyword">elif</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">==</tt> <tt class="py-string">'posix'</tt><tt class="py-op">:</tt> </tt>
<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">fcntl</tt> </tt>
<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> </tt>
-<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt id="link-5" class="py-name" targets="Variable nbxmpp.idlequeue.FLAG_WRITE=nbxmpp.idlequeue-module.html#FLAG_WRITE"><a title="nbxmpp.idlequeue.FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-5', 'FLAG_WRITE', 'link-5');">FLAG_WRITE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">20</tt> <tt class="py-comment"># write only</tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable nbxmpp.idlequeue.FLAG_READ=nbxmpp.idlequeue-module.html#FLAG_READ"><a title="nbxmpp.idlequeue.FLAG_READ" class="py-name" href="#" onclick="return doclink('link-6', 'FLAG_READ', 'link-6');">FLAG_READ</a></tt> <tt class="py-op">=</tt> <tt class="py-number">19</tt> <tt class="py-comment"># read only</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt id="link-7" class="py-name" targets="Variable nbxmpp.idlequeue.FLAG_READ_WRITE=nbxmpp.idlequeue-module.html#FLAG_READ_WRITE"><a title="nbxmpp.idlequeue.FLAG_READ_WRITE" class="py-name" href="#" onclick="return doclink('link-7', 'FLAG_READ_WRITE', 'link-7');">FLAG_READ_WRITE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">23</tt> <tt class="py-comment"># read and write</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt id="link-8" class="py-name" targets="Variable nbxmpp.idlequeue.FLAG_CLOSE=nbxmpp.idlequeue-module.html#FLAG_CLOSE"><a title="nbxmpp.idlequeue.FLAG_CLOSE" class="py-name" href="#" onclick="return doclink('link-8', 'FLAG_CLOSE', 'link-8');">FLAG_CLOSE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">16</tt> <tt class="py-comment"># wait for close</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable nbxmpp.idlequeue.FLAG_WRITE=nbxmpp.idlequeue-module.html#FLAG_WRITE"><a title="nbxmpp.idlequeue.FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-3', 'FLAG_WRITE', 'link-3');">FLAG_WRITE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">20</tt> <tt class="py-comment"># write only</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable nbxmpp.idlequeue.FLAG_READ=nbxmpp.idlequeue-module.html#FLAG_READ"><a title="nbxmpp.idlequeue.FLAG_READ" class="py-name" href="#" onclick="return doclink('link-4', 'FLAG_READ', 'link-4');">FLAG_READ</a></tt> <tt class="py-op">=</tt> <tt class="py-number">19</tt> <tt class="py-comment"># read only</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt id="link-5" class="py-name" targets="Variable nbxmpp.idlequeue.FLAG_READ_WRITE=nbxmpp.idlequeue-module.html#FLAG_READ_WRITE"><a title="nbxmpp.idlequeue.FLAG_READ_WRITE" class="py-name" href="#" onclick="return doclink('link-5', 'FLAG_READ_WRITE', 'link-5');">FLAG_READ_WRITE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">23</tt> <tt class="py-comment"># read and write</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable nbxmpp.idlequeue.FLAG_CLOSE=nbxmpp.idlequeue-module.html#FLAG_CLOSE"><a title="nbxmpp.idlequeue.FLAG_CLOSE" class="py-name" href="#" onclick="return doclink('link-6', 'FLAG_CLOSE', 'link-6');">FLAG_CLOSE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">16</tt> <tt class="py-comment"># wait for close</tt> </tt>
<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt id="link-9" class="py-name" targets="Variable nbxmpp.idlequeue.PENDING_READ=nbxmpp.idlequeue-module.html#PENDING_READ"><a title="nbxmpp.idlequeue.PENDING_READ" class="py-name" href="#" onclick="return doclink('link-9', 'PENDING_READ', 'link-9');">PENDING_READ</a></tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt> <tt class="py-comment"># waiting read event</tt> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt id="link-10" class="py-name" targets="Variable nbxmpp.idlequeue.PENDING_WRITE=nbxmpp.idlequeue-module.html#PENDING_WRITE"><a title="nbxmpp.idlequeue.PENDING_WRITE" class="py-name" href="#" onclick="return doclink('link-10', 'PENDING_WRITE', 'link-10');">PENDING_WRITE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">4</tt> <tt class="py-comment"># waiting write event</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt id="link-11" class="py-name" targets="Variable nbxmpp.idlequeue.IS_CLOSED=nbxmpp.idlequeue-module.html#IS_CLOSED"><a title="nbxmpp.idlequeue.IS_CLOSED" class="py-name" href="#" onclick="return doclink('link-11', 'IS_CLOSED', 'link-11');">IS_CLOSED</a></tt> <tt class="py-op">=</tt> <tt class="py-number">16</tt> <tt class="py-comment"># channel closed</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt id="link-7" class="py-name" targets="Variable nbxmpp.idlequeue.PENDING_READ=nbxmpp.idlequeue-module.html#PENDING_READ"><a title="nbxmpp.idlequeue.PENDING_READ" class="py-name" href="#" onclick="return doclink('link-7', 'PENDING_READ', 'link-7');">PENDING_READ</a></tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt> <tt class="py-comment"># waiting read event</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt id="link-8" class="py-name" targets="Variable nbxmpp.idlequeue.PENDING_WRITE=nbxmpp.idlequeue-module.html#PENDING_WRITE"><a title="nbxmpp.idlequeue.PENDING_WRITE" class="py-name" href="#" onclick="return doclink('link-8', 'PENDING_WRITE', 'link-8');">PENDING_WRITE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">4</tt> <tt class="py-comment"># waiting write event</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt id="link-9" class="py-name" targets="Variable nbxmpp.idlequeue.IS_CLOSED=nbxmpp.idlequeue-module.html#IS_CLOSED"><a title="nbxmpp.idlequeue.IS_CLOSED" class="py-name" href="#" onclick="return doclink('link-9', 'IS_CLOSED', 'link-9');">IS_CLOSED</a></tt> <tt class="py-op">=</tt> <tt class="py-number">16</tt> <tt class="py-comment"># channel closed</tt> </tt>
<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> </tt>
<a name="get_idlequeue"></a><div id="get_idlequeue-def"><a name="L49"></a><tt class="py-lineno"> 49</tt> <a class="py-toggle" href="#" id="get_idlequeue-toggle" onclick="return toggle('get_idlequeue');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue-module.html#get_idlequeue">get_idlequeue</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="get_idlequeue-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_idlequeue-expanded"><a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-docstring"> Get an appropriate idlequeue</tt> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-12', 'name', 'link-3');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'nt'</tt><tt class="py-op">:</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">==</tt> <tt class="py-string">'nt'</tt><tt class="py-op">:</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-comment"># gobject.io_add_watch does not work on windows</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-13" class="py-name" targets="Class nbxmpp.idlequeue.SelectIdleQueue=nbxmpp.idlequeue.SelectIdleQueue-class.html"><a title="nbxmpp.idlequeue.SelectIdleQueue" class="py-name" href="#" onclick="return doclink('link-13', 'SelectIdleQueue', 'link-13');">SelectIdleQueue</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-10" class="py-name" targets="Class nbxmpp.idlequeue.SelectIdleQueue=nbxmpp.idlequeue.SelectIdleQueue-class.html"><a title="nbxmpp.idlequeue.SelectIdleQueue" class="py-name" href="#" onclick="return doclink('link-10', 'SelectIdleQueue', 'link-10');">SelectIdleQueue</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-14" class="py-name"><a title="nbxmpp.idlequeue.HAVE_GOBJECT" class="py-name" href="#" onclick="return doclink('link-14', 'HAVE_GOBJECT', 'link-1');">HAVE_GOBJECT</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-11" class="py-name"><a title="nbxmpp.idlequeue.HAVE_GOBJECT" class="py-name" href="#" onclick="return doclink('link-11', 'HAVE_GOBJECT', 'link-1');">HAVE_GOBJECT</a></tt><tt class="py-op">:</tt> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-comment"># Gajim's default Idlequeue</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-15" class="py-name" targets="Class nbxmpp.idlequeue.GlibIdleQueue=nbxmpp.idlequeue.GlibIdleQueue-class.html"><a title="nbxmpp.idlequeue.GlibIdleQueue" class="py-name" href="#" onclick="return doclink('link-15', 'GlibIdleQueue', 'link-15');">GlibIdleQueue</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-12" class="py-name" targets="Class nbxmpp.idlequeue.GlibIdleQueue=nbxmpp.idlequeue.GlibIdleQueue-class.html"><a title="nbxmpp.idlequeue.GlibIdleQueue" class="py-name" href="#" onclick="return doclink('link-12', 'GlibIdleQueue', 'link-12');">GlibIdleQueue</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-comment"># GUI less implementation</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-16" class="py-name"><a title="nbxmpp.idlequeue.SelectIdleQueue" class="py-name" href="#" onclick="return doclink('link-16', 'SelectIdleQueue', 'link-13');">SelectIdleQueue</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-13" class="py-name"><a title="nbxmpp.idlequeue.SelectIdleQueue" class="py-name" href="#" onclick="return doclink('link-13', 'SelectIdleQueue', 'link-10');">SelectIdleQueue</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> </tt>
<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> </tt>
<a name="IdleObject"></a><div id="IdleObject-def"><a name="L65"></a><tt class="py-lineno"> 65</tt> <a class="py-toggle" href="#" id="IdleObject-toggle" onclick="return toggle('IdleObject');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleObject-class.html">IdleObject</a><tt class="py-op">:</tt> </tt>
@@ -179,7 +176,7 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-12'
<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> </tt>
<a name="IdleCommand.__init__"></a><div id="IdleCommand.__init__-def"><a name="L104"></a><tt class="py-lineno">104</tt> <a class="py-toggle" href="#" id="IdleCommand.__init__-toggle" onclick="return toggle('IdleCommand.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleCommand-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">on_result</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="IdleCommand.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.__init__-expanded"><a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt id="link-17" class="py-name" targets="Class nbxmpp.idlequeue.IdleObject=nbxmpp.idlequeue.IdleObject-class.html"><a title="nbxmpp.idlequeue.IdleObject" class="py-name" href="#" onclick="return doclink('link-17', 'IdleObject', 'link-17');">IdleObject</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method nbxmpp.auth_nb.NonBlockingBind.__init__()=nbxmpp.auth_nb.NonBlockingBind-class.html#__init__,Method nbxmpp.auth_nb.NonBlockingNonSASL.__init__()=nbxmpp.auth_nb.NonBlockingNonSASL-class.html#__init__,Method nbxmpp.auth_nb.SASL.__init__()=nbxmpp.auth_nb.SASL-class.html#__init__,Method nbxmpp.bosh.AckChecker.__init__()=nbxmpp.bosh.AckChecker-class.html#__init__,Method nbxmpp.bosh.KeyStack.__init__()=nbxmpp.bosh.KeyStack-class.html#__init__,Method nbxmpp.bosh.NonBlockingBOSH.__init__()=nbxmpp.bosh.NonBlockingBOSH-class.html#__init__,Method nbxmpp.client_nb.NonBlockingClient.__init__()=nbxmpp.client_nb.NonBlockingClient-class.html#__init__,Method nbxmpp.dispatcher_nb.XMPPDispatcher.__init__()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#__init__,Method nbxmpp.idlequeue.IdleCommand.__init__()=nbxmpp.idlequeue.IdleCommand-class.html#__init__,Method nbxmpp.idlequeue.IdleObject.__init__()=nbxmpp.idlequeue.IdleObject-class.html#__init__,Method nbxmpp.idlequeue.IdleQueue.__init__()=nbxmpp.idlequeue.IdleQueue-class.html#__init__,Method nbxmpp.plugin.PlugIn.__init__()=nbxmpp.plugin.PlugIn-class.html#__init__,Method nbxmpp.protocol.Acks.__init__()=nbxmpp.protocol.Acks-class.html#__init__,Method nbxmpp.protocol.BOSHBody.__init__()=nbxmpp.protocol.BOSHBody-class.html#__init__,Method nbxmpp.protocol.DataField.__init__()=nbxmpp.protocol.DataField-class.html#__init__,Method nbxmpp.protocol.DataForm.__init__()=nbxmpp.protocol.DataForm-class.html#__init__,Method nbxmpp.protocol.Error.__init__()=nbxmpp.protocol.Error-class.html#__init__,Method nbxmpp.protocol.ErrorNode.__init__()=nbxmpp.protocol.ErrorNode-class.html#__init__,Method nbxmpp.protocol.Hashes.__init__()=nbxmpp.protocol.Hashes-class.html#__init__,Method nbxmpp.protocol.Iq.__init__()=nbxmpp.protocol.Iq-class.html#__init__,Method nbxmpp.protocol.JID.__init__()=nbxmpp.protocol.JID-class.html#__init__,Method nbxmpp.protocol.Message.__init__()=nbxmpp.protocol.Message-class.html#__init__,Method nbxmpp.protocol.Presence.__init__()=nbxmpp.protocol.Presence-class.html#__init__,Method nbxmpp.protocol.Protocol.__init__()=nbxmpp.protocol.Protocol-class.html#__init__,Method nbxmpp.proxy_connectors.ProxyConnector.__init__()=nbxmpp.proxy_connectors.ProxyConnector-class.html#__init__,Method nbxmpp.roster_nb.NonBlockingRoster.__init__()=nbxmpp.roster_nb.NonBlockingRoster-class.html#__init__,Method nbxmpp.simplexml.Node.__init__()=nbxmpp.simplexml.Node-class.html#__init__,Method nbxmpp.simplexml.NodeBuilder.__init__()=nbxmpp.simplexml.NodeBuilder-class.html#__init__,Method nbxmpp.simplexml.T.__init__()=nbxmpp.simplexml.T-class.html#__init__,Method nbxmpp.smacks.Smacks.__init__()=nbxmpp.smacks.Smacks-class.html#__init__,Method nbxmpp.stringprepare.EmptyMappingTable.__init__()=nbxmpp.stringprepare.EmptyMappingTable-class.html#__init__,Method nbxmpp.stringprepare.LookupTable.__init__()=nbxmpp.stringprepare.LookupTable-class.html#__init__,Method nbxmpp.stringprepare.LookupTableFromFunction.__init__()=nbxmpp.stringprepare.LookupTableFromFunction-class.html#__init__,Method nbxmpp.stringprepare.MappingTableFromFunction.__init__()=nbxmpp.stringprepare.MappingTableFromFunction-class.html#__init__,Method nbxmpp.stringprepare.Profile.__init__()=nbxmpp.stringprepare.Profile-class.html#__init__,Method nbxmpp.tls_nb.NonBlockingTLS.__init__()=nbxmpp.tls_nb.NonBlockingTLS-class.html#__init__,Method nbxmpp.tls_nb.PyOpenSSLWrapper.__init__()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#__init__,Method nbxmpp.tls_nb.SSLWrapper.Error.__init__()=nbxmpp.tls_nb.SSLWrapper.Error-class.html#__init__,Method nbxmpp.tls_nb.SSLWrapper.__init__()=nbxmpp.tls_nb.SSLWrapper-class.html#__init__,Method nbxmpp.tls_nb.StdlibSSLWrapper.__init__()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingHTTP.__init__()=nbxmpp.transports_nb.NonBlockingHTTP-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingTCP.__init__()=nbxmpp.transports_nb.NonBlockingTCP-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingTransport.__init__()=nbxmpp.transports_nb.NonBlockingTransport-class.html#__init__"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+</div><div id="IdleCommand.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.__init__-expanded"><a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt id="link-14" class="py-name" targets="Class nbxmpp.idlequeue.IdleObject=nbxmpp.idlequeue.IdleObject-class.html"><a title="nbxmpp.idlequeue.IdleObject" class="py-name" href="#" onclick="return doclink('link-14', 'IdleObject', 'link-14');">IdleObject</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Method nbxmpp.auth_nb.NonBlockingBind.__init__()=nbxmpp.auth_nb.NonBlockingBind-class.html#__init__,Method nbxmpp.auth_nb.NonBlockingNonSASL.__init__()=nbxmpp.auth_nb.NonBlockingNonSASL-class.html#__init__,Method nbxmpp.auth_nb.SASL.__init__()=nbxmpp.auth_nb.SASL-class.html#__init__,Method nbxmpp.bosh.AckChecker.__init__()=nbxmpp.bosh.AckChecker-class.html#__init__,Method nbxmpp.bosh.KeyStack.__init__()=nbxmpp.bosh.KeyStack-class.html#__init__,Method nbxmpp.bosh.NonBlockingBOSH.__init__()=nbxmpp.bosh.NonBlockingBOSH-class.html#__init__,Method nbxmpp.client_nb.NonBlockingClient.__init__()=nbxmpp.client_nb.NonBlockingClient-class.html#__init__,Method nbxmpp.dispatcher_nb.XMPPDispatcher.__init__()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#__init__,Method nbxmpp.idlequeue.IdleCommand.__init__()=nbxmpp.idlequeue.IdleCommand-class.html#__init__,Method nbxmpp.idlequeue.IdleObject.__init__()=nbxmpp.idlequeue.IdleObject-class.html#__init__,Method nbxmpp.idlequeue.IdleQueue.__init__()=nbxmpp.idlequeue.IdleQueue-class.html#__init__,Method nbxmpp.plugin.PlugIn.__init__()=nbxmpp.plugin.PlugIn-class.html#__init__,Method nbxmpp.protocol.Acks.__init__()=nbxmpp.protocol.Acks-class.html#__init__,Method nbxmpp.protocol.BOSHBody.__init__()=nbxmpp.protocol.BOSHBody-class.html#__init__,Method nbxmpp.protocol.DataField.__init__()=nbxmpp.protocol.DataField-class.html#__init__,Method nbxmpp.protocol.DataForm.__init__()=nbxmpp.protocol.DataForm-class.html#__init__,Method nbxmpp.protocol.Error.__init__()=nbxmpp.protocol.Error-class.html#__init__,Method nbxmpp.protocol.ErrorNode.__init__()=nbxmpp.protocol.ErrorNode-class.html#__init__,Method nbxmpp.protocol.Hashes.__init__()=nbxmpp.protocol.Hashes-class.html#__init__,Method nbxmpp.protocol.Iq.__init__()=nbxmpp.protocol.Iq-class.html#__init__,Method nbxmpp.protocol.JID.__init__()=nbxmpp.protocol.JID-class.html#__init__,Method nbxmpp.protocol.Message.__init__()=nbxmpp.protocol.Message-class.html#__init__,Method nbxmpp.protocol.Presence.__init__()=nbxmpp.protocol.Presence-class.html#__init__,Method nbxmpp.protocol.Protocol.__init__()=nbxmpp.protocol.Protocol-class.html#__init__,Method nbxmpp.proxy_connectors.ProxyConnector.__init__()=nbxmpp.proxy_connectors.ProxyConnector-class.html#__init__,Method nbxmpp.roster_nb.NonBlockingRoster.__init__()=nbxmpp.roster_nb.NonBlockingRoster-class.html#__init__,Method nbxmpp.simplexml.Node.__init__()=nbxmpp.simplexml.Node-class.html#__init__,Method nbxmpp.simplexml.NodeBuilder.__init__()=nbxmpp.simplexml.NodeBuilder-class.html#__init__,Method nbxmpp.simplexml.T.__init__()=nbxmpp.simplexml.T-class.html#__init__,Method nbxmpp.smacks.Smacks.__init__()=nbxmpp.smacks.Smacks-class.html#__init__,Method nbxmpp.stringprepare.EmptyMappingTable.__init__()=nbxmpp.stringprepare.EmptyMappingTable-class.html#__init__,Method nbxmpp.stringprepare.LookupTable.__init__()=nbxmpp.stringprepare.LookupTable-class.html#__init__,Method nbxmpp.stringprepare.LookupTableFromFunction.__init__()=nbxmpp.stringprepare.LookupTableFromFunction-class.html#__init__,Method nbxmpp.stringprepare.MappingTableFromFunction.__init__()=nbxmpp.stringprepare.MappingTableFromFunction-class.html#__init__,Method nbxmpp.stringprepare.Profile.__init__()=nbxmpp.stringprepare.Profile-class.html#__init__,Method nbxmpp.tls_nb.NonBlockingTLS.__init__()=nbxmpp.tls_nb.NonBlockingTLS-class.html#__init__,Method nbxmpp.tls_nb.PyOpenSSLWrapper.__init__()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#__init__,Method nbxmpp.tls_nb.SSLWrapper.Error.__init__()=nbxmpp.tls_nb.SSLWrapper.Error-class.html#__init__,Method nbxmpp.tls_nb.SSLWrapper.__init__()=nbxmpp.tls_nb.SSLWrapper-class.html#__init__,Method nbxmpp.tls_nb.StdlibSSLWrapper.__init__()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingHTTP.__init__()=nbxmpp.transports_nb.NonBlockingHTTP-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingTCP.__init__()=nbxmpp.transports_nb.NonBlockingTCP-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingTransport.__init__()=nbxmpp.transports_nb.NonBlockingTransport-class.html#__init__"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -221,7 +218,7 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-18', '__init__', 'link-18');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-15', '__init__', 'link-15');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-comment"># how long (sec.) to wait for result ( 0 - forever )</tt> </tt>
<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-comment"># it is a class var, instead of a constant and we can override it.</tt> </tt>
<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">commandtimeout</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
@@ -229,11 +226,11 @@ nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onc
<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">on_result</tt> </tt>
<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-comment"># if it is True, we can safetely execute the command</tt> </tt>
<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">canexecute</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Module nbxmpp.idlequeue=nbxmpp.idlequeue-module.html"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-19', 'idlequeue', 'link-19');">idlequeue</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Module nbxmpp.idlequeue=nbxmpp.idlequeue-module.html"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-16', 'idlequeue', 'link-16');">idlequeue</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">=</tt><tt class="py-string">''</tt> </tt>
</div><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> </tt>
<a name="IdleCommand.set_idlequeue"></a><div id="IdleCommand.set_idlequeue-def"><a name="L116"></a><tt class="py-lineno">116</tt> <a class="py-toggle" href="#" id="IdleCommand.set_idlequeue-toggle" onclick="return toggle('IdleCommand.set_idlequeue');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleCommand-class.html#set_idlequeue">set_idlequeue</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">idlequeue</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="IdleCommand.set_idlequeue-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.set_idlequeue-expanded"><a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-20', 'idlequeue', 'link-19');">idlequeue</a></tt> <tt class="py-op">=</tt> <tt id="link-21" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-21', 'idlequeue', 'link-19');">idlequeue</a></tt> </tt>
+</div><div id="IdleCommand.set_idlequeue-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.set_idlequeue-expanded"><a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-17', 'idlequeue', 'link-16');">idlequeue</a></tt> <tt class="py-op">=</tt> <tt id="link-18" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-18', 'idlequeue', 'link-16');">idlequeue</a></tt> </tt>
</div><a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> </tt>
<a name="IdleCommand._return_result"></a><div id="IdleCommand._return_result-def"><a name="L119"></a><tt class="py-lineno">119</tt> <a class="py-toggle" href="#" id="IdleCommand._return_result-toggle" onclick="return toggle('IdleCommand._return_result');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleCommand-class.html#_return_result">_return_result</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IdleCommand._return_result-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand._return_result-expanded"><a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result_handler</tt><tt class="py-op">:</tt> </tt>
@@ -248,67 +245,65 @@ nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onc
<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-docstring"> Return one line representation of command and its arguments</tt> </tt>
<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">reduce</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">left</tt><tt class="py-op">,</tt> <tt class="py-name">right</tt><tt class="py-op">:</tt> <tt class="py-name">left</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">right</tt><tt class="py-op">,</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand._compose_command_args()=nbxmpp.idlequeue.IdleCommand-class.html#_compose_command_args"><a title="nbxmpp.idlequeue.IdleCommand._compose_command_args" class="py-name" href="#" onclick="return doclink('link-22', '_compose_command_args', 'link-22');">_compose_command_args</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand._compose_command_args()=nbxmpp.idlequeue.IdleCommand-class.html#_compose_command_args"><a title="nbxmpp.idlequeue.IdleCommand._compose_command_args" class="py-name" href="#" onclick="return doclink('link-19', '_compose_command_args', 'link-19');">_compose_command_args</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> </tt>
<a name="IdleCommand.wait_child"></a><div id="IdleCommand.wait_child-def"><a name="L134"></a><tt class="py-lineno">134</tt> <a class="py-toggle" href="#" id="IdleCommand.wait_child-toggle" onclick="return toggle('IdleCommand.wait_child');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleCommand-class.html#wait_child">wait_child</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IdleCommand.wait_child-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.wait_child-expanded"><a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt><tt class="py-op">.</tt><tt class="py-name">poll</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-comment"># result timeout</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">endtime</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-23', 'idlequeue', 'link-19');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.current_time()=nbxmpp.idlequeue.IdleQueue-class.html#current_time"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-24', 'current_time', 'link-24');">current_time</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand._return_result()=nbxmpp.idlequeue.IdleCommand-class.html#_return_result"><a title="nbxmpp.idlequeue.IdleCommand._return_result" class="py-name" href="#" onclick="return doclink('link-25', '_return_result', 'link-25');">_return_result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">endtime</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-20', 'idlequeue', 'link-16');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.current_time()=nbxmpp.idlequeue.IdleQueue-class.html#current_time"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-21', 'current_time', 'link-21');">current_time</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand._return_result()=nbxmpp.idlequeue.IdleCommand-class.html#_return_result"><a title="nbxmpp.idlequeue.IdleCommand._return_result" class="py-name" href="#" onclick="return doclink('link-22', '_return_result', 'link-22');">_return_result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt><tt class="py-op">.</tt><tt class="py-name">stdin</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-comment"># child is still active, continue to wait</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-26', 'idlequeue', 'link-19');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.set_alarm()=nbxmpp.idlequeue.IdleQueue-class.html#set_alarm"><a title="nbxmpp.idlequeue.IdleQueue.set_alarm" class="py-name" href="#" onclick="return doclink('link-27', 'set_alarm', 'link-27');">set_alarm</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand.wait_child()=nbxmpp.idlequeue.IdleCommand-class.html#wait_child"><a title="nbxmpp.idlequeue.IdleCommand.wait_child" class="py-name" href="#" onclick="return doclink('link-28', 'wait_child', 'link-28');">wait_child</a></tt><tt class="py-op">,</tt> <tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-23', 'idlequeue', 'link-16');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.set_alarm()=nbxmpp.idlequeue.IdleQueue-class.html#set_alarm"><a title="nbxmpp.idlequeue.IdleQueue.set_alarm" class="py-name" href="#" onclick="return doclink('link-24', 'set_alarm', 'link-24');">set_alarm</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand.wait_child()=nbxmpp.idlequeue.IdleCommand-class.html#wait_child"><a title="nbxmpp.idlequeue.IdleCommand.wait_child" class="py-name" href="#" onclick="return doclink('link-25', 'wait_child', 'link-25');">wait_child</a></tt><tt class="py-op">,</tt> <tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-comment"># child has quit</tt> </tt>
<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand._return_result" class="py-name" href="#" onclick="return doclink('link-29', '_return_result', 'link-25');">_return_result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand._return_result" class="py-name" href="#" onclick="return doclink('link-26', '_return_result', 'link-22');">_return_result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt><tt class="py-op">.</tt><tt class="py-name">stdin</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> </tt>
<a name="IdleCommand.start"></a><div id="IdleCommand.start-def"><a name="L151"></a><tt class="py-lineno">151</tt> <a class="py-toggle" href="#" id="IdleCommand.start-toggle" onclick="return toggle('IdleCommand.start');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleCommand-class.html#start">start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IdleCommand.start-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.start-expanded"><a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">canexecute</tt><tt class="py-op">:</tt> </tt>
<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand._return_result" class="py-name" href="#" onclick="return doclink('link-30', '_return_result', 'link-25');">_return_result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand._return_result" class="py-name" href="#" onclick="return doclink('link-27', '_return_result', 'link-22');">_return_result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-31', 'name', 'link-3');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'nt'</tt><tt class="py-op">:</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand._start_nt()=nbxmpp.idlequeue.IdleCommand-class.html#_start_nt"><a title="nbxmpp.idlequeue.IdleCommand._start_nt" class="py-name" href="#" onclick="return doclink('link-32', '_start_nt', 'link-32');">_start_nt</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-33', 'name', 'link-3');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'posix'</tt><tt class="py-op">:</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand._start_posix()=nbxmpp.idlequeue.IdleCommand-class.html#_start_posix"><a title="nbxmpp.idlequeue.IdleCommand._start_posix" class="py-name" href="#" onclick="return doclink('link-34', '_start_posix', 'link-34');">_start_posix</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">==</tt> <tt class="py-string">'nt'</tt><tt class="py-op">:</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand._start_nt()=nbxmpp.idlequeue.IdleCommand-class.html#_start_nt"><a title="nbxmpp.idlequeue.IdleCommand._start_nt" class="py-name" href="#" onclick="return doclink('link-28', '_start_nt', 'link-28');">_start_nt</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">==</tt> <tt class="py-string">'posix'</tt><tt class="py-op">:</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand._start_posix()=nbxmpp.idlequeue.IdleCommand-class.html#_start_posix"><a title="nbxmpp.idlequeue.IdleCommand._start_posix" class="py-name" href="#" onclick="return doclink('link-29', '_start_posix', 'link-29');">_start_posix</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> </tt>
<a name="IdleCommand._start_nt"></a><div id="IdleCommand._start_nt-def"><a name="L161"></a><tt class="py-lineno">161</tt> <a class="py-toggle" href="#" id="IdleCommand._start_nt-toggle" onclick="return toggle('IdleCommand._start_nt');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleCommand-class.html#_start_nt">_start_nt</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IdleCommand._start_nt-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand._start_nt-expanded"><a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-comment"># if program is started from noninteraactive shells stdin is closed and</tt> </tt>
<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-comment"># cannot be forwarded, so we have to keep it open</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt> <tt class="py-op">=</tt> <tt class="py-name">Popen</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand._compose_command_args" class="py-name" href="#" onclick="return doclink('link-35', '_compose_command_args', 'link-22');">_compose_command_args</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">stdout</tt><tt class="py-op">=</tt><tt class="py-name">PIPE</tt><tt class="py-op">,</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt> <tt class="py-op">=</tt> <tt class="py-name">Popen</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand._compose_command_args" class="py-name" href="#" onclick="return doclink('link-30', '_compose_command_args', 'link-19');">_compose_command_args</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">stdout</tt><tt class="py-op">=</tt><tt class="py-name">PIPE</tt><tt class="py-op">,</tt> </tt>
<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-name">bufsize</tt> <tt class="py-op">=</tt> <tt class="py-number">1024</tt><tt class="py-op">,</tt> <tt class="py-name">shell</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">stderr</tt> <tt class="py-op">=</tt> <tt class="py-name">STDOUT</tt><tt class="py-op">,</tt> <tt class="py-name">stdin</tt> <tt class="py-op">=</tt> <tt class="py-name">PIPE</tt><tt class="py-op">)</tt> </tt>
<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">commandtimeout</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">endtime</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-36', 'idlequeue', 'link-19');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-37', 'current_time', 'link-24');">current_time</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">commandtimeout</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-38', 'idlequeue', 'link-19');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.set_alarm" class="py-name" href="#" onclick="return doclink('link-39', 'set_alarm', 'link-27');">set_alarm</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand.wait_child" class="py-name" href="#" onclick="return doclink('link-40', 'wait_child', 'link-28');">wait_child</a></tt><tt class="py-op">,</tt> <tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">endtime</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-31', 'idlequeue', 'link-16');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-32', 'current_time', 'link-21');">current_time</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">commandtimeout</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-33', 'idlequeue', 'link-16');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.set_alarm" class="py-name" href="#" onclick="return doclink('link-34', 'set_alarm', 'link-24');">set_alarm</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand.wait_child" class="py-name" href="#" onclick="return doclink('link-35', 'wait_child', 'link-25');">wait_child</a></tt><tt class="py-op">,</tt> <tt class="py-number">0.1</tt><tt class="py-op">)</tt> </tt>
</div><a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> </tt>
<a name="IdleCommand._start_posix"></a><div id="IdleCommand._start_posix-def"><a name="L170"></a><tt class="py-lineno">170</tt> <a class="py-toggle" href="#" id="IdleCommand._start_posix-toggle" onclick="return toggle('IdleCommand._start_posix');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleCommand-class.html#_start_posix">_start_posix</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="IdleCommand._start_posix-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand._start_posix-expanded"><a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">popen</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand._compose_command_line()=nbxmpp.idlequeue.IdleCommand-class.html#_compose_command_line"><a title="nbxmpp.idlequeue.IdleCommand._compose_command_line" class="py-name" href="#" onclick="return doclink('link-41', '_compose_command_line', 'link-41');">_compose_command_line</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><div id="IdleCommand._start_posix-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand._start_posix-expanded"><a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">popen</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand._compose_command_line()=nbxmpp.idlequeue.IdleCommand-class.html#_compose_command_line"><a title="nbxmpp.idlequeue.IdleCommand._compose_command_line" class="py-name" href="#" onclick="return doclink('link-36', '_compose_command_line', 'link-36');">_compose_command_line</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt><tt class="py-op">.</tt><tt class="py-name">fileno</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-name">fcntl</tt><tt class="py-op">.</tt><tt class="py-name">fcntl</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt><tt class="py-op">,</tt> <tt class="py-name">fcntl</tt><tt class="py-op">.</tt><tt class="py-name">F_SETFL</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_NONBLOCK</tt><tt class="py-op">)</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-42', 'idlequeue', 'link-19');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.plug_idle()=nbxmpp.idlequeue.IdleQueue-class.html#plug_idle"><a title="nbxmpp.idlequeue.IdleQueue.plug_idle" class="py-name" href="#" onclick="return doclink('link-43', 'plug_idle', 'link-43');">plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-37', 'idlequeue', 'link-16');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.plug_idle()=nbxmpp.idlequeue.IdleQueue-class.html#plug_idle"><a title="nbxmpp.idlequeue.IdleQueue.plug_idle" class="py-name" href="#" onclick="return doclink('link-38', 'plug_idle', 'link-38');">plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">commandtimeout</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-44', 'idlequeue', 'link-19');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.set_read_timeout()=nbxmpp.idlequeue.IdleQueue-class.html#set_read_timeout"><a title="nbxmpp.idlequeue.IdleQueue.set_read_timeout" class="py-name" href="#" onclick="return doclink('link-45', 'set_read_timeout', 'link-45');">set_read_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">commandtimeout</tt><tt class="py-op">)</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-39', 'idlequeue', 'link-16');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.set_read_timeout()=nbxmpp.idlequeue.IdleQueue-class.html#set_read_timeout"><a title="nbxmpp.idlequeue.IdleQueue.set_read_timeout" class="py-name" href="#" onclick="return doclink('link-40', 'set_read_timeout', 'link-40');">set_read_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">commandtimeout</tt><tt class="py-op">)</tt> </tt>
</div><a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> </tt>
<a name="IdleCommand.end"></a><div id="IdleCommand.end-def"><a name="L178"></a><tt class="py-lineno">178</tt> <a class="py-toggle" href="#" id="IdleCommand.end-toggle" onclick="return toggle('IdleCommand.end');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleCommand-class.html#end">end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="IdleCommand.end-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.end-expanded"><a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-46', 'idlequeue', 'link-19');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.unplug_idle()=nbxmpp.idlequeue.IdleQueue-class.html#unplug_idle"><a title="nbxmpp.idlequeue.IdleQueue.unplug_idle" class="py-name" href="#" onclick="return doclink('link-47', 'unplug_idle', 'link-47');">unplug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+</div><div id="IdleCommand.end-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.end-expanded"><a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-41', 'idlequeue', 'link-16');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.unplug_idle()=nbxmpp.idlequeue.IdleQueue-class.html#unplug_idle"><a title="nbxmpp.idlequeue.IdleQueue.unplug_idle" class="py-name" href="#" onclick="return doclink('link-42', 'unplug_idle', 'link-42');">unplug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipe</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
</div><a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> </tt>
<a name="IdleCommand.pollend"></a><div id="IdleCommand.pollend-def"><a name="L185"></a><tt class="py-lineno">185</tt> <a class="py-toggle" href="#" id="IdleCommand.pollend-toggle" onclick="return toggle('IdleCommand.pollend');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleCommand-class.html#pollend">pollend</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="IdleCommand.pollend-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.pollend-expanded"><a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-48', 'idlequeue', 'link-19');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.remove_timeout()=nbxmpp.idlequeue.IdleQueue-class.html#remove_timeout,Method nbxmpp.transports_nb.NonBlockingTCP.remove_timeout()=nbxmpp.transports_nb.NonBlockingTCP-class.html#remove_timeout,Method nbxmpp.transports_nb.NonBlockingTransport.remove_timeout()=nbxmpp.transports_nb.NonBlockingTransport-class.html#remove_timeout"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
+</div><div id="IdleCommand.pollend-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.pollend-expanded"><a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-43', 'idlequeue', 'link-16');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-44" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.remove_timeout()=nbxmpp.idlequeue.IdleQueue-class.html#remove_timeout,Method nbxmpp.transports_nb.NonBlockingTCP.remove_timeout()=nbxmpp.transports_nb.NonBlockingTCP-class.html#remove_timeout,Method nbxmpp.transports_nb.NonBlockingTransport.remove_timeout()=nbxmpp.transports_nb.NonBlockingTransport-class.html#remove_timeout"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
nbxmpp.transports_nb.NonBlockingTCP.remove_timeout
-nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="#" onclick="return doclink('link-49', 'remove_timeout', 'link-49');">remove_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand.end()=nbxmpp.idlequeue.IdleCommand-class.html#end"><a title="nbxmpp.idlequeue.IdleCommand.end" class="py-name" href="#" onclick="return doclink('link-50', 'end', 'link-50');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand._return_result" class="py-name" href="#" onclick="return doclink('link-51', '_return_result', 'link-25');">_return_result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="#" onclick="return doclink('link-44', 'remove_timeout', 'link-44');">remove_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand.end()=nbxmpp.idlequeue.IdleCommand-class.html#end"><a title="nbxmpp.idlequeue.IdleCommand.end" class="py-name" href="#" onclick="return doclink('link-45', 'end', 'link-45');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand._return_result" class="py-name" href="#" onclick="return doclink('link-46', '_return_result', 'link-22');">_return_result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> </tt>
<a name="IdleCommand.pollin"></a><div id="IdleCommand.pollin-def"><a name="L190"></a><tt class="py-lineno">190</tt> <a class="py-toggle" href="#" id="IdleCommand.pollin-toggle" onclick="return toggle('IdleCommand.pollin');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleCommand-class.html#pollin">pollin</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IdleCommand.pollin-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.pollin-expanded"><a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
@@ -316,15 +311,15 @@ nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="
<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">res</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand.pollend()=nbxmpp.idlequeue.IdleCommand-class.html#pollend,Method nbxmpp.idlequeue.IdleObject.pollend()=nbxmpp.idlequeue.IdleObject-class.html#pollend,Method nbxmpp.transports_nb.NonBlockingTCP.pollend()=nbxmpp.transports_nb.NonBlockingTCP-class.html#pollend"><a title="nbxmpp.idlequeue.IdleCommand.pollend
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand.pollend()=nbxmpp.idlequeue.IdleCommand-class.html#pollend,Method nbxmpp.idlequeue.IdleObject.pollend()=nbxmpp.idlequeue.IdleObject-class.html#pollend,Method nbxmpp.transports_nb.NonBlockingTCP.pollend()=nbxmpp.transports_nb.NonBlockingTCP-class.html#pollend"><a title="nbxmpp.idlequeue.IdleCommand.pollend
nbxmpp.idlequeue.IdleObject.pollend
-nbxmpp.transports_nb.NonBlockingTCP.pollend" class="py-name" href="#" onclick="return doclink('link-52', 'pollend', 'link-52');">pollend</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTCP.pollend" class="py-name" href="#" onclick="return doclink('link-47', 'pollend', 'link-47');">pollend</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt class="py-name">res</tt> </tt>
</div><a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> </tt>
<a name="IdleCommand.read_timeout"></a><div id="IdleCommand.read_timeout-def"><a name="L200"></a><tt class="py-lineno">200</tt> <a class="py-toggle" href="#" id="IdleCommand.read_timeout-toggle" onclick="return toggle('IdleCommand.read_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleCommand-class.html#read_timeout">read_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="IdleCommand.read_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.read_timeout-expanded"><a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand.end" class="py-name" href="#" onclick="return doclink('link-53', 'end', 'link-50');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand._return_result" class="py-name" href="#" onclick="return doclink('link-54', '_return_result', 'link-25');">_return_result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><div id="IdleCommand.read_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleCommand.read_timeout-expanded"><a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand.end" class="py-name" href="#" onclick="return doclink('link-48', 'end', 'link-45');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand._return_result" class="py-name" href="#" onclick="return doclink('link-49', '_return_result', 'link-22');">_return_result</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> </tt>
<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> </tt>
<a name="IdleQueue"></a><div id="IdleQueue-def"><a name="L205"></a><tt class="py-lineno">205</tt> <a class="py-toggle" href="#" id="IdleQueue-toggle" onclick="return toggle('IdleQueue');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleQueue-class.html">IdleQueue</a><tt class="py-op">:</tt> </tt>
@@ -341,8 +336,8 @@ nbxmpp.transports_nb.NonBlockingTCP.pollend" class="py-name" href="#" onclick="r
<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> </tt>
<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-comment"># (timeout, boolean)</tt> </tt>
<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-comment"># Boolean is True if timeout is specified in seconds, False means miliseconds</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt id="link-55" class="py-name" targets="Variable nbxmpp.idlequeue.GlibIdleQueue.PROCESS_TIMEOUT=nbxmpp.idlequeue.GlibIdleQueue-class.html#PROCESS_TIMEOUT,Variable nbxmpp.idlequeue.IdleQueue.PROCESS_TIMEOUT=nbxmpp.idlequeue.IdleQueue-class.html#PROCESS_TIMEOUT"><a title="nbxmpp.idlequeue.GlibIdleQueue.PROCESS_TIMEOUT
-nbxmpp.idlequeue.IdleQueue.PROCESS_TIMEOUT" class="py-name" href="#" onclick="return doclink('link-55', 'PROCESS_TIMEOUT', 'link-55');">PROCESS_TIMEOUT</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">100</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt id="link-50" class="py-name" targets="Variable nbxmpp.idlequeue.GlibIdleQueue.PROCESS_TIMEOUT=nbxmpp.idlequeue.GlibIdleQueue-class.html#PROCESS_TIMEOUT,Variable nbxmpp.idlequeue.IdleQueue.PROCESS_TIMEOUT=nbxmpp.idlequeue.IdleQueue-class.html#PROCESS_TIMEOUT"><a title="nbxmpp.idlequeue.GlibIdleQueue.PROCESS_TIMEOUT
+nbxmpp.idlequeue.IdleQueue.PROCESS_TIMEOUT" class="py-name" href="#" onclick="return doclink('link-50', 'PROCESS_TIMEOUT', 'link-50');">PROCESS_TIMEOUT</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">100</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> </tt>
<a name="IdleQueue.__init__"></a><div id="IdleQueue.__init__-def"><a name="L221"></a><tt class="py-lineno">221</tt> <a class="py-toggle" href="#" id="IdleQueue.__init__-toggle" onclick="return toggle('IdleQueue.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleQueue-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IdleQueue.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleQueue.__init__-expanded"><a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
@@ -356,9 +351,9 @@ nbxmpp.idlequeue.IdleQueue.PROCESS_TIMEOUT" class="py-name" href="#" onclick="re
<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> </tt>
<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-comment"># cb, which are executed after XX sec., alarms are removed automatically</tt> </tt>
<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">alarms</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Method nbxmpp.idlequeue.GlibIdleQueue._init_idle()=nbxmpp.idlequeue.GlibIdleQueue-class.html#_init_idle,Method nbxmpp.idlequeue.IdleQueue._init_idle()=nbxmpp.idlequeue.IdleQueue-class.html#_init_idle,Method nbxmpp.idlequeue.SelectIdleQueue._init_idle()=nbxmpp.idlequeue.SelectIdleQueue-class.html#_init_idle"><a title="nbxmpp.idlequeue.GlibIdleQueue._init_idle
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Method nbxmpp.idlequeue.GlibIdleQueue._init_idle()=nbxmpp.idlequeue.GlibIdleQueue-class.html#_init_idle,Method nbxmpp.idlequeue.IdleQueue._init_idle()=nbxmpp.idlequeue.IdleQueue-class.html#_init_idle,Method nbxmpp.idlequeue.SelectIdleQueue._init_idle()=nbxmpp.idlequeue.SelectIdleQueue-class.html#_init_idle"><a title="nbxmpp.idlequeue.GlibIdleQueue._init_idle
nbxmpp.idlequeue.IdleQueue._init_idle
-nbxmpp.idlequeue.SelectIdleQueue._init_idle" class="py-name" href="#" onclick="return doclink('link-56', '_init_idle', 'link-56');">_init_idle</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.idlequeue.SelectIdleQueue._init_idle" class="py-name" href="#" onclick="return doclink('link-51', '_init_idle', 'link-51');">_init_idle</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> </tt>
<a name="IdleQueue._init_idle"></a><div id="IdleQueue._init_idle-def"><a name="L235"></a><tt class="py-lineno">235</tt> <a class="py-toggle" href="#" id="IdleQueue._init_idle-toggle" onclick="return toggle('IdleQueue._init_idle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleQueue-class.html#_init_idle">_init_idle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IdleQueue._init_idle-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleQueue._init_idle-expanded"><a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -370,7 +365,7 @@ nbxmpp.idlequeue.SelectIdleQueue._init_idle" class="py-name" href="#" onclick="r
</div><div id="IdleQueue.set_alarm-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleQueue.set_alarm-expanded"><a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"><tt class="py-docstring"> Set up a new alarm. alarm_cb will be called after specified seconds.</tt> </tt>
<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">alarm_time</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-57', 'current_time', 'link-24');">current_time</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">seconds</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">alarm_time</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-52', 'current_time', 'link-21');">current_time</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">seconds</tt> </tt>
<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-comment"># almost impossible, but in case we have another alarm_cb at this time</tt> </tt>
<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">alarm_time</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">alarms</tt><tt class="py-op">:</tt> </tt>
<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">alarms</tt><tt class="py-op">[</tt><tt class="py-name">alarm_time</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">alarm_cb</tt><tt class="py-op">)</tt> </tt>
@@ -402,7 +397,7 @@ nbxmpp.idlequeue.SelectIdleQueue._init_idle" class="py-name" href="#" onclick="r
</div><div id="IdleQueue.remove_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleQueue.remove_timeout-expanded"><a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"><tt class="py-docstring"> Remove the read timeout</tt> </tt>
<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt id="link-58" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt id="link-53" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -413,7 +408,7 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-58', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'read timeout removed for fd %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-53', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'read timeout removed for fd %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">fd</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">read_timeouts</tt><tt class="py-op">:</tt> </tt>
<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt><tt class="py-op">:</tt> </tt>
<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">read_timeouts</tt><tt class="py-op">[</tt><tt class="py-name">fd</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
@@ -433,7 +428,7 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-name">log_txt</tt> <tt class="py-op">=</tt> <tt class="py-string">'read timeout set for fd %s on %s seconds'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">seconds</tt><tt class="py-op">)</tt> </tt>
<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">func</tt><tt class="py-op">:</tt> </tt>
<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">log_txt</tt> <tt class="py-op">+=</tt> <tt class="py-string">' with function '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">func</tt><tt class="py-op">)</tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt id="link-59" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt id="link-54" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -444,8 +439,8 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-59', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-name">log_txt</tt><tt class="py-op">)</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-60', 'current_time', 'link-24');">current_time</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">seconds</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-54', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-name">log_txt</tt><tt class="py-op">)</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-name">timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-55', 'current_time', 'link-21');">current_time</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">seconds</tt> </tt>
<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">fd</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">read_timeouts</tt><tt class="py-op">:</tt> </tt>
<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">read_timeouts</tt><tt class="py-op">[</tt><tt class="py-name">fd</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">timeout</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">func</tt> </tt>
<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
@@ -456,19 +451,19 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"><tt class="py-docstring"> Execute and remove alarm callbacks and execute func() or read_timeout()</tt> </tt>
<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"><tt class="py-docstring"> for plugged objects if specified time has ellapsed</tt> </tt>
<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt id="link-61" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-61', 'current_time', 'link-24');">current_time</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-62', 'current_time', 'link-24');">current_time</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt id="link-56" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-56', 'current_time', 'link-21');">current_time</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-57', 'current_time', 'link-21');">current_time</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> </tt>
<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">timeouts</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">read_timeouts</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">fd</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">:</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
+<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
nbxmpp.transports_nb.NonBlockingTCP.remove_timeout
-nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="#" onclick="return doclink('link-63', 'remove_timeout', 'link-49');">remove_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="#" onclick="return doclink('link-58', 'remove_timeout', 'link-44');">remove_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">timeout</tt><tt class="py-op">,</tt> <tt class="py-name">func</tt> <tt class="py-keyword">in</tt> <tt class="py-name">timeouts</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-op">&gt;</tt> <tt id="link-64" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-64', 'current_time', 'link-24');">current_time</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-op">&gt;</tt> <tt id="link-59" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-59', 'current_time', 'link-21');">current_time</a></tt><tt class="py-op">:</tt> </tt>
<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">func</tt><tt class="py-op">:</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt id="link-65" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt id="link-60" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -479,10 +474,10 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-65', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Calling %s for fd %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">func</tt><tt class="py-op">,</tt> <tt class="py-name">fd</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-60', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Calling %s for fd %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">func</tt><tt class="py-op">,</tt> <tt class="py-name">fd</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-name">func</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt id="link-66" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt id="link-61" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -493,18 +488,18 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-66', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Calling read_timeout for fd %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">[</tt><tt class="py-name">fd</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand.read_timeout()=nbxmpp.idlequeue.IdleCommand-class.html#read_timeout,Method nbxmpp.idlequeue.IdleObject.read_timeout()=nbxmpp.idlequeue.IdleObject-class.html#read_timeout,Method nbxmpp.transports_nb.NonBlockingTCP.read_timeout()=nbxmpp.transports_nb.NonBlockingTCP-class.html#read_timeout,Method nbxmpp.transports_nb.NonBlockingTransport.read_timeout()=nbxmpp.transports_nb.NonBlockingTransport-class.html#read_timeout"><a title="nbxmpp.idlequeue.IdleCommand.read_timeout
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-61', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Calling read_timeout for fd %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">[</tt><tt class="py-name">fd</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand.read_timeout()=nbxmpp.idlequeue.IdleCommand-class.html#read_timeout,Method nbxmpp.idlequeue.IdleObject.read_timeout()=nbxmpp.idlequeue.IdleObject-class.html#read_timeout,Method nbxmpp.transports_nb.NonBlockingTCP.read_timeout()=nbxmpp.transports_nb.NonBlockingTCP-class.html#read_timeout,Method nbxmpp.transports_nb.NonBlockingTransport.read_timeout()=nbxmpp.transports_nb.NonBlockingTransport-class.html#read_timeout"><a title="nbxmpp.idlequeue.IdleCommand.read_timeout
nbxmpp.idlequeue.IdleObject.read_timeout
nbxmpp.transports_nb.NonBlockingTCP.read_timeout
-nbxmpp.transports_nb.NonBlockingTransport.read_timeout" class="py-name" href="#" onclick="return doclink('link-67', 'read_timeout', 'link-67');">read_timeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
+nbxmpp.transports_nb.NonBlockingTransport.read_timeout" class="py-name" href="#" onclick="return doclink('link-62', 'read_timeout', 'link-62');">read_timeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
nbxmpp.transports_nb.NonBlockingTCP.remove_timeout
-nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="#" onclick="return doclink('link-68', 'remove_timeout', 'link-49');">remove_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="#" onclick="return doclink('link-63', 'remove_timeout', 'link-44');">remove_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-name">times</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">alarms</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.keys()=nbxmpp.roster_nb.NonBlockingRoster-class.html#keys"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-69', 'keys', 'link-69');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-name">times</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">alarms</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.keys()=nbxmpp.roster_nb.NonBlockingRoster-class.html#keys"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-64', 'keys', 'link-64');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">alarm_time</tt> <tt class="py-keyword">in</tt> <tt class="py-name">times</tt><tt class="py-op">:</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">alarm_time</tt> <tt class="py-op">&gt;</tt> <tt id="link-70" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-70', 'current_time', 'link-24');">current_time</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">alarm_time</tt> <tt class="py-op">&gt;</tt> <tt id="link-65" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-65', 'current_time', 'link-21');">current_time</a></tt><tt class="py-op">:</tt> </tt>
<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">alarm_time</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">alarms</tt><tt class="py-op">:</tt> </tt>
<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">callback</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">alarms</tt><tt class="py-op">[</tt><tt class="py-name">alarm_time</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
@@ -523,28 +518,28 @@ nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="
<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">:</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.unplug_idle" class="py-name" href="#" onclick="return doclink('link-71', 'unplug_idle', 'link-47');">unplug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.unplug_idle" class="py-name" href="#" onclick="return doclink('link-66', 'unplug_idle', 'link-42');">unplug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">[</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">obj</tt> </tt>
<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">writable</tt><tt class="py-op">:</tt> </tt>
<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">readable</tt><tt class="py-op">:</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt id="link-72" class="py-name"><a title="nbxmpp.idlequeue.FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-72', 'FLAG_WRITE', 'link-5');">FLAG_WRITE</a></tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name"><a title="nbxmpp.idlequeue.FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-67', 'FLAG_WRITE', 'link-3');">FLAG_WRITE</a></tt> </tt>
<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name"><a title="nbxmpp.idlequeue.FLAG_READ_WRITE" class="py-name" href="#" onclick="return doclink('link-73', 'FLAG_READ_WRITE', 'link-7');">FLAG_READ_WRITE</a></tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt id="link-68" class="py-name"><a title="nbxmpp.idlequeue.FLAG_READ_WRITE" class="py-name" href="#" onclick="return doclink('link-68', 'FLAG_READ_WRITE', 'link-5');">FLAG_READ_WRITE</a></tt> </tt>
<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">readable</tt><tt class="py-op">:</tt> </tt>
-<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt id="link-74" class="py-name"><a title="nbxmpp.idlequeue.FLAG_READ" class="py-name" href="#" onclick="return doclink('link-74', 'FLAG_READ', 'link-6');">FLAG_READ</a></tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt id="link-69" class="py-name"><a title="nbxmpp.idlequeue.FLAG_READ" class="py-name" href="#" onclick="return doclink('link-69', 'FLAG_READ', 'link-4');">FLAG_READ</a></tt> </tt>
<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-comment"># when we paused a FT, we expect only a close event</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt id="link-75" class="py-name"><a title="nbxmpp.idlequeue.FLAG_CLOSE" class="py-name" href="#" onclick="return doclink('link-75', 'FLAG_CLOSE', 'link-8');">FLAG_CLOSE</a></tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name" targets="Method nbxmpp.idlequeue.GlibIdleQueue._add_idle()=nbxmpp.idlequeue.GlibIdleQueue-class.html#_add_idle,Method nbxmpp.idlequeue.IdleQueue._add_idle()=nbxmpp.idlequeue.IdleQueue-class.html#_add_idle,Method nbxmpp.idlequeue.SelectIdleQueue._add_idle()=nbxmpp.idlequeue.SelectIdleQueue-class.html#_add_idle"><a title="nbxmpp.idlequeue.GlibIdleQueue._add_idle
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt id="link-70" class="py-name"><a title="nbxmpp.idlequeue.FLAG_CLOSE" class="py-name" href="#" onclick="return doclink('link-70', 'FLAG_CLOSE', 'link-6');">FLAG_CLOSE</a></tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name" targets="Method nbxmpp.idlequeue.GlibIdleQueue._add_idle()=nbxmpp.idlequeue.GlibIdleQueue-class.html#_add_idle,Method nbxmpp.idlequeue.IdleQueue._add_idle()=nbxmpp.idlequeue.IdleQueue-class.html#_add_idle,Method nbxmpp.idlequeue.SelectIdleQueue._add_idle()=nbxmpp.idlequeue.SelectIdleQueue-class.html#_add_idle"><a title="nbxmpp.idlequeue.GlibIdleQueue._add_idle
nbxmpp.idlequeue.IdleQueue._add_idle
-nbxmpp.idlequeue.SelectIdleQueue._add_idle" class="py-name" href="#" onclick="return doclink('link-76', '_add_idle', 'link-76');">_add_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.idlequeue.SelectIdleQueue._add_idle" class="py-name" href="#" onclick="return doclink('link-71', '_add_idle', 'link-71');">_add_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
</div><a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> </tt>
<a name="IdleQueue._add_idle"></a><div id="IdleQueue._add_idle-def"><a name="L362"></a><tt class="py-lineno">362</tt> <a class="py-toggle" href="#" id="IdleQueue._add_idle-toggle" onclick="return toggle('IdleQueue._add_idle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleQueue-class.html#_add_idle">_add_idle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fd</tt><tt class="py-op">,</tt> <tt class="py-param">flags</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IdleQueue._add_idle-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleQueue._add_idle-expanded"><a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"><tt class="py-docstring"> Hook method for subclasses, called by plug_idle</tt> </tt>
<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">selector</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Function nbxmpp.features_nb.register()=nbxmpp.features_nb-module.html#register"><a title="nbxmpp.features_nb.register" class="py-name" href="#" onclick="return doclink('link-77', 'register', 'link-77');">register</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">selector</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Function nbxmpp.features_nb.register()=nbxmpp.features_nb-module.html#register"><a title="nbxmpp.features_nb.register" class="py-name" href="#" onclick="return doclink('link-72', 'register', 'link-72');">register</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
</div><a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> </tt>
<a name="IdleQueue.unplug_idle"></a><div id="IdleQueue.unplug_idle-def"><a name="L368"></a><tt class="py-lineno">368</tt> <a class="py-toggle" href="#" id="IdleQueue.unplug_idle-toggle" onclick="return toggle('IdleQueue.unplug_idle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleQueue-class.html#unplug_idle">unplug_idle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fd</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IdleQueue.unplug_idle-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleQueue.unplug_idle-expanded"><a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -552,9 +547,9 @@ nbxmpp.idlequeue.SelectIdleQueue._add_idle" class="py-name" href="#" onclick="re
<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">fd</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">:</tt> </tt>
<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-keyword">del</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">[</tt><tt class="py-name">fd</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name" targets="Method nbxmpp.idlequeue.GlibIdleQueue._remove_idle()=nbxmpp.idlequeue.GlibIdleQueue-class.html#_remove_idle,Method nbxmpp.idlequeue.IdleQueue._remove_idle()=nbxmpp.idlequeue.IdleQueue-class.html#_remove_idle,Method nbxmpp.idlequeue.SelectIdleQueue._remove_idle()=nbxmpp.idlequeue.SelectIdleQueue-class.html#_remove_idle"><a title="nbxmpp.idlequeue.GlibIdleQueue._remove_idle
+<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name" targets="Method nbxmpp.idlequeue.GlibIdleQueue._remove_idle()=nbxmpp.idlequeue.GlibIdleQueue-class.html#_remove_idle,Method nbxmpp.idlequeue.IdleQueue._remove_idle()=nbxmpp.idlequeue.IdleQueue-class.html#_remove_idle,Method nbxmpp.idlequeue.SelectIdleQueue._remove_idle()=nbxmpp.idlequeue.SelectIdleQueue-class.html#_remove_idle"><a title="nbxmpp.idlequeue.GlibIdleQueue._remove_idle
nbxmpp.idlequeue.IdleQueue._remove_idle
-nbxmpp.idlequeue.SelectIdleQueue._remove_idle" class="py-name" href="#" onclick="return doclink('link-78', '_remove_idle', 'link-78');">_remove_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.idlequeue.SelectIdleQueue._remove_idle" class="py-name" href="#" onclick="return doclink('link-73', '_remove_idle', 'link-73');">_remove_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
</div><a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> </tt>
<a name="IdleQueue.current_time"></a><div id="IdleQueue.current_time-def"><a name="L376"></a><tt class="py-lineno">376</tt> <a class="py-toggle" href="#" id="IdleQueue.current_time-toggle" onclick="return toggle('IdleQueue.current_time');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleQueue-class.html#current_time">current_time</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IdleQueue.current_time-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleQueue.current_time-expanded"><a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">time</tt> <tt class="py-keyword">import</tt> <tt class="py-name">time</tt> </tt>
@@ -564,36 +559,36 @@ nbxmpp.idlequeue.SelectIdleQueue._remove_idle" class="py-name" href="#" onclick=
</div><div id="IdleQueue._remove_idle-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleQueue._remove_idle-expanded"><a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"><tt class="py-docstring"> Hook method for subclassed, called by unplug_idle</tt> </tt>
<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">selector</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Function nbxmpp.features_nb.unregister()=nbxmpp.features_nb-module.html#unregister"><a title="nbxmpp.features_nb.unregister" class="py-name" href="#" onclick="return doclink('link-79', 'unregister', 'link-79');">unregister</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">selector</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name" targets="Function nbxmpp.features_nb.unregister()=nbxmpp.features_nb-module.html#unregister"><a title="nbxmpp.features_nb.unregister" class="py-name" href="#" onclick="return doclink('link-74', 'unregister', 'link-74');">unregister</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
</div><a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> </tt>
<a name="IdleQueue._process_events"></a><div id="IdleQueue._process_events-def"><a name="L386"></a><tt class="py-lineno">386</tt> <a class="py-toggle" href="#" id="IdleQueue._process_events-toggle" onclick="return toggle('IdleQueue._process_events');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.IdleQueue-class.html#_process_events">_process_events</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fd</tt><tt class="py-op">,</tt> <tt class="py-param">flags</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="IdleQueue._process_events-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleQueue._process_events-expanded"><a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name" targets="Method nbxmpp.bosh.KeyStack.get()=nbxmpp.bosh.KeyStack-class.html#get"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-80', 'get', 'link-80');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+</div><div id="IdleQueue._process_events-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IdleQueue._process_events-expanded"><a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name" targets="Method nbxmpp.bosh.KeyStack.get()=nbxmpp.bosh.KeyStack-class.html#get"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-75', 'get', 'link-75');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">obj</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.unplug_idle" class="py-name" href="#" onclick="return doclink('link-81', 'unplug_idle', 'link-47');">unplug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.unplug_idle" class="py-name" href="#" onclick="return doclink('link-76', 'unplug_idle', 'link-42');">unplug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> </tt>
<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-name">read_write</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">flags</tt> <tt class="py-op">&amp;</tt> <tt id="link-82" class="py-name"><a title="nbxmpp.idlequeue.PENDING_READ" class="py-name" href="#" onclick="return doclink('link-82', 'PENDING_READ', 'link-9');">PENDING_READ</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">flags</tt> <tt class="py-op">&amp;</tt> <tt id="link-77" class="py-name"><a title="nbxmpp.idlequeue.PENDING_READ" class="py-name" href="#" onclick="return doclink('link-77', 'PENDING_READ', 'link-7');">PENDING_READ</a></tt><tt class="py-op">:</tt> </tt>
<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-comment">#print 'waiting read on %d, flags are %d' % (fd, flags)</tt> </tt>
-<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand.pollin()=nbxmpp.idlequeue.IdleCommand-class.html#pollin,Method nbxmpp.idlequeue.IdleObject.pollin()=nbxmpp.idlequeue.IdleObject-class.html#pollin,Method nbxmpp.transports_nb.NonBlockingTCP.pollin()=nbxmpp.transports_nb.NonBlockingTCP-class.html#pollin"><a title="nbxmpp.idlequeue.IdleCommand.pollin
+<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand.pollin()=nbxmpp.idlequeue.IdleCommand-class.html#pollin,Method nbxmpp.idlequeue.IdleObject.pollin()=nbxmpp.idlequeue.IdleObject-class.html#pollin,Method nbxmpp.transports_nb.NonBlockingTCP.pollin()=nbxmpp.transports_nb.NonBlockingTCP-class.html#pollin"><a title="nbxmpp.idlequeue.IdleCommand.pollin
nbxmpp.idlequeue.IdleObject.pollin
-nbxmpp.transports_nb.NonBlockingTCP.pollin" class="py-name" href="#" onclick="return doclink('link-83', 'pollin', 'link-83');">pollin</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTCP.pollin" class="py-name" href="#" onclick="return doclink('link-78', 'pollin', 'link-78');">pollin</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> <tt class="py-name">read_write</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> </tt>
-<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">flags</tt> <tt class="py-op">&amp;</tt> <tt id="link-84" class="py-name"><a title="nbxmpp.idlequeue.PENDING_WRITE" class="py-name" href="#" onclick="return doclink('link-84', 'PENDING_WRITE', 'link-10');">PENDING_WRITE</a></tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">flags</tt> <tt class="py-op">&amp;</tt> <tt id="link-85" class="py-name"><a title="nbxmpp.idlequeue.IS_CLOSED" class="py-name" href="#" onclick="return doclink('link-85', 'IS_CLOSED', 'link-11');">IS_CLOSED</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method nbxmpp.idlequeue.IdleObject.pollout()=nbxmpp.idlequeue.IdleObject-class.html#pollout,Method nbxmpp.transports_nb.NonBlockingTCP.pollout()=nbxmpp.transports_nb.NonBlockingTCP-class.html#pollout"><a title="nbxmpp.idlequeue.IdleObject.pollout
-nbxmpp.transports_nb.NonBlockingTCP.pollout" class="py-name" href="#" onclick="return doclink('link-86', 'pollout', 'link-86');">pollout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">flags</tt> <tt class="py-op">&amp;</tt> <tt id="link-79" class="py-name"><a title="nbxmpp.idlequeue.PENDING_WRITE" class="py-name" href="#" onclick="return doclink('link-79', 'PENDING_WRITE', 'link-8');">PENDING_WRITE</a></tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">flags</tt> <tt class="py-op">&amp;</tt> <tt id="link-80" class="py-name"><a title="nbxmpp.idlequeue.IS_CLOSED" class="py-name" href="#" onclick="return doclink('link-80', 'IS_CLOSED', 'link-9');">IS_CLOSED</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name" targets="Method nbxmpp.idlequeue.IdleObject.pollout()=nbxmpp.idlequeue.IdleObject-class.html#pollout,Method nbxmpp.transports_nb.NonBlockingTCP.pollout()=nbxmpp.transports_nb.NonBlockingTCP-class.html#pollout"><a title="nbxmpp.idlequeue.IdleObject.pollout
+nbxmpp.transports_nb.NonBlockingTCP.pollout" class="py-name" href="#" onclick="return doclink('link-81', 'pollout', 'link-81');">pollout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-name">read_write</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> </tt>
-<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">flags</tt> <tt class="py-op">&amp;</tt> <tt id="link-87" class="py-name"><a title="nbxmpp.idlequeue.IS_CLOSED" class="py-name" href="#" onclick="return doclink('link-87', 'IS_CLOSED', 'link-11');">IS_CLOSED</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">flags</tt> <tt class="py-op">&amp;</tt> <tt id="link-82" class="py-name"><a title="nbxmpp.idlequeue.IS_CLOSED" class="py-name" href="#" onclick="return doclink('link-82', 'IS_CLOSED', 'link-9');">IS_CLOSED</a></tt><tt class="py-op">:</tt> </tt>
<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-comment"># io error, don't expect more events</tt> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
+<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
nbxmpp.transports_nb.NonBlockingTCP.remove_timeout
-nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="#" onclick="return doclink('link-88', 'remove_timeout', 'link-49');">remove_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
-<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.unplug_idle" class="py-name" href="#" onclick="return doclink('link-89', 'unplug_idle', 'link-47');">unplug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
-<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand.pollend
+nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="#" onclick="return doclink('link-83', 'remove_timeout', 'link-44');">remove_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.unplug_idle" class="py-name" href="#" onclick="return doclink('link-84', 'unplug_idle', 'link-42');">unplug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand.pollend
nbxmpp.idlequeue.IdleObject.pollend
-nbxmpp.transports_nb.NonBlockingTCP.pollend" class="py-name" href="#" onclick="return doclink('link-90', 'pollend', 'link-52');">pollend</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTCP.pollend" class="py-name" href="#" onclick="return doclink('link-85', 'pollend', 'link-47');">pollend</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> </tt>
<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">read_write</tt><tt class="py-op">:</tt> </tt>
@@ -610,7 +605,7 @@ nbxmpp.transports_nb.NonBlockingTCP.pollend" class="py-name" href="#" onclick="r
<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">:</tt> </tt>
<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-comment"># check for timeouts/alert also when there are no active fds</tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue._check_time_events()=nbxmpp.idlequeue.IdleQueue-class.html#_check_time_events"><a title="nbxmpp.idlequeue.IdleQueue._check_time_events" class="py-name" href="#" onclick="return doclink('link-91', '_check_time_events', 'link-91');">_check_time_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue._check_time_events()=nbxmpp.idlequeue.IdleQueue-class.html#_check_time_events"><a title="nbxmpp.idlequeue.IdleQueue._check_time_events" class="py-name" href="#" onclick="return doclink('link-86', '_check_time_events', 'link-86');">_check_time_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-name">waiting_descriptors</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">selector</tt><tt class="py-op">.</tt><tt class="py-name">poll</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
@@ -619,9 +614,9 @@ nbxmpp.transports_nb.NonBlockingTCP.pollend" class="py-name" href="#" onclick="r
<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> <tt class="py-comment"># interrupt</tt> </tt>
<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt> <tt class="py-keyword">in</tt> <tt class="py-name">waiting_descriptors</tt><tt class="py-op">:</tt> </tt>
-<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name" targets="Method nbxmpp.idlequeue.GlibIdleQueue._process_events()=nbxmpp.idlequeue.GlibIdleQueue-class.html#_process_events,Method nbxmpp.idlequeue.IdleQueue._process_events()=nbxmpp.idlequeue.IdleQueue-class.html#_process_events"><a title="nbxmpp.idlequeue.GlibIdleQueue._process_events
-nbxmpp.idlequeue.IdleQueue._process_events" class="py-name" href="#" onclick="return doclink('link-92', '_process_events', 'link-92');">_process_events</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue._check_time_events" class="py-name" href="#" onclick="return doclink('link-93', '_check_time_events', 'link-91');">_check_time_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name" targets="Method nbxmpp.idlequeue.GlibIdleQueue._process_events()=nbxmpp.idlequeue.GlibIdleQueue-class.html#_process_events,Method nbxmpp.idlequeue.IdleQueue._process_events()=nbxmpp.idlequeue.IdleQueue-class.html#_process_events"><a title="nbxmpp.idlequeue.GlibIdleQueue._process_events
+nbxmpp.idlequeue.IdleQueue._process_events" class="py-name" href="#" onclick="return doclink('link-87', '_process_events', 'link-87');">_process_events</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue._check_time_events" class="py-name" href="#" onclick="return doclink('link-88', '_check_time_events', 'link-86');">_check_time_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
</div></div><a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> </tt>
<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> </tt>
@@ -666,33 +661,33 @@ nbxmpp.idlequeue.IdleQueue._process_events" class="py-name" href="#" onclick="re
</div><a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> </tt>
<a name="SelectIdleQueue.process"></a><div id="SelectIdleQueue.process-def"><a name="L476"></a><tt class="py-lineno">476</tt> <a class="py-toggle" href="#" id="SelectIdleQueue.process-toggle" onclick="return toggle('SelectIdleQueue.process');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.SelectIdleQueue-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SelectIdleQueue.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SelectIdleQueue.process-expanded"><a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">write_fds</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">read_fds</tt><tt class="py-op">:</tt> </tt>
-<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue._check_time_events" class="py-name" href="#" onclick="return doclink('link-94', '_check_time_events', 'link-91');">_check_time_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue._check_time_events" class="py-name" href="#" onclick="return doclink('link-89', '_check_time_events', 'link-86');">_check_time_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-name">waiting_descriptors</tt> <tt class="py-op">=</tt> <tt class="py-name">select</tt><tt class="py-op">.</tt><tt class="py-name">select</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">read_fds</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-95', 'keys', 'link-69');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">write_fds</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-96', 'keys', 'link-69');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">error_fds</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-97', 'keys', 'link-69');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-name">waiting_descriptors</tt> <tt class="py-op">=</tt> <tt class="py-name">select</tt><tt class="py-op">.</tt><tt class="py-name">select</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">read_fds</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-90', 'keys', 'link-64');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">write_fds</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-91', 'keys', 'link-64');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">error_fds</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-92', 'keys', 'link-64');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">select</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt class="py-name">waiting_descriptors</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> <tt class="py-comment"># interrupt</tt> </tt>
<a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">fd</tt> <tt class="py-keyword">in</tt> <tt class="py-name">waiting_descriptors</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-98', 'get', 'link-80');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-93', 'get', 'link-75');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">q</tt><tt class="py-op">:</tt> </tt>
-<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-name">q</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand.pollin
+<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-name">q</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand.pollin
nbxmpp.idlequeue.IdleObject.pollin
-nbxmpp.transports_nb.NonBlockingTCP.pollin" class="py-name" href="#" onclick="return doclink('link-99', 'pollin', 'link-83');">pollin</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTCP.pollin" class="py-name" href="#" onclick="return doclink('link-94', 'pollin', 'link-78');">pollin</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">fd</tt> <tt class="py-keyword">in</tt> <tt class="py-name">waiting_descriptors</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-100', 'get', 'link-80');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-95', 'get', 'link-75');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">q</tt><tt class="py-op">:</tt> </tt>
-<a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> <tt class="py-name">q</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="nbxmpp.idlequeue.IdleObject.pollout
-nbxmpp.transports_nb.NonBlockingTCP.pollout" class="py-name" href="#" onclick="return doclink('link-101', 'pollout', 'link-86');">pollout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> <tt class="py-name">q</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="nbxmpp.idlequeue.IdleObject.pollout
+nbxmpp.transports_nb.NonBlockingTCP.pollout" class="py-name" href="#" onclick="return doclink('link-96', 'pollout', 'link-81');">pollout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">fd</tt> <tt class="py-keyword">in</tt> <tt class="py-name">waiting_descriptors</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-102', 'get', 'link-80');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">queue</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-97', 'get', 'link-75');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">q</tt><tt class="py-op">:</tt> </tt>
-<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt class="py-name">q</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand.pollend
+<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt class="py-name">q</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="nbxmpp.idlequeue.IdleCommand.pollend
nbxmpp.idlequeue.IdleObject.pollend
-nbxmpp.transports_nb.NonBlockingTCP.pollend" class="py-name" href="#" onclick="return doclink('link-103', 'pollend', 'link-52');">pollend</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue._check_time_events" class="py-name" href="#" onclick="return doclink('link-104', '_check_time_events', 'link-91');">_check_time_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTCP.pollend" class="py-name" href="#" onclick="return doclink('link-98', 'pollend', 'link-47');">pollend</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue._check_time_events" class="py-name" href="#" onclick="return doclink('link-99', '_check_time_events', 'link-86');">_check_time_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
</div></div><a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> </tt>
<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> </tt>
@@ -704,8 +699,8 @@ nbxmpp.transports_nb.NonBlockingTCP.pollend" class="py-name" href="#" onclick="r
<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> </tt>
<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"> <tt class="py-comment"># (timeout, boolean)</tt> </tt>
<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"> <tt class="py-comment"># Boolean is True if timeout is specified in seconds, False means miliseconds</tt> </tt>
-<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt id="link-105" class="py-name"><a title="nbxmpp.idlequeue.GlibIdleQueue.PROCESS_TIMEOUT
-nbxmpp.idlequeue.IdleQueue.PROCESS_TIMEOUT" class="py-name" href="#" onclick="return doclink('link-105', 'PROCESS_TIMEOUT', 'link-55');">PROCESS_TIMEOUT</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt id="link-100" class="py-name"><a title="nbxmpp.idlequeue.GlibIdleQueue.PROCESS_TIMEOUT
+nbxmpp.idlequeue.IdleQueue.PROCESS_TIMEOUT" class="py-name" href="#" onclick="return doclink('link-100', 'PROCESS_TIMEOUT', 'link-50');">PROCESS_TIMEOUT</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"> </tt>
<a name="GlibIdleQueue._init_idle"></a><div id="GlibIdleQueue._init_idle-def"><a name="L513"></a><tt class="py-lineno">513</tt> <a class="py-toggle" href="#" id="GlibIdleQueue._init_idle-toggle" onclick="return toggle('GlibIdleQueue._init_idle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.GlibIdleQueue-class.html#_init_idle">_init_idle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="GlibIdleQueue._init_idle-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GlibIdleQueue._init_idle-expanded"><a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -714,30 +709,30 @@ nbxmpp.idlequeue.IdleQueue.PROCESS_TIMEOUT" class="py-name" href="#" onclick="re
<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-comment"># time() is already called in glib, we just get the last value</tt> </tt>
<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> <tt class="py-comment"># overrides IdleQueue.current_time()</tt> </tt>
-<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-106', 'current_time', 'link-24');">current_time</a></tt> <tt class="py-op">=</tt> <tt class="py-name">gobject</tt><tt class="py-op">.</tt><tt class="py-name">get_current_time</tt> </tt>
+<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.current_time" class="py-name" href="#" onclick="return doclink('link-101', 'current_time', 'link-21');">current_time</a></tt> <tt class="py-op">=</tt> <tt class="py-name">gobject</tt><tt class="py-op">.</tt><tt class="py-name">get_current_time</tt> </tt>
</div><a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> </tt>
<a name="GlibIdleQueue._add_idle"></a><div id="GlibIdleQueue._add_idle-def"><a name="L522"></a><tt class="py-lineno">522</tt> <a class="py-toggle" href="#" id="GlibIdleQueue._add_idle-toggle" onclick="return toggle('GlibIdleQueue._add_idle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.GlibIdleQueue-class.html#_add_idle">_add_idle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fd</tt><tt class="py-op">,</tt> <tt class="py-param">flags</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="GlibIdleQueue._add_idle-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GlibIdleQueue._add_idle-expanded"><a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"><tt class="py-docstring"> This method is called when we plug a new idle object. Start listening for</tt> </tt>
<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"><tt class="py-docstring"> events from fd</tt> </tt>
<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"> <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">gobject</tt><tt class="py-op">.</tt><tt class="py-name">io_add_watch</tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="nbxmpp.idlequeue.GlibIdleQueue._process_events
-nbxmpp.idlequeue.IdleQueue._process_events" class="py-name" href="#" onclick="return doclink('link-107', '_process_events', 'link-92');">_process_events</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"> <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">gobject</tt><tt class="py-op">.</tt><tt class="py-name">io_add_watch</tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="nbxmpp.idlequeue.GlibIdleQueue._process_events
+nbxmpp.idlequeue.IdleQueue._process_events" class="py-name" href="#" onclick="return doclink('link-102', '_process_events', 'link-87');">_process_events</a></tt><tt class="py-op">,</tt> </tt>
<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"> <tt class="py-name">priority</tt><tt class="py-op">=</tt><tt class="py-name">gobject</tt><tt class="py-op">.</tt><tt class="py-name">PRIORITY_LOW</tt><tt class="py-op">)</tt> </tt>
<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> <tt class="py-comment"># store the id of the watch, so that we can remove it on unplug</tt> </tt>
<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">events</tt><tt class="py-op">[</tt><tt class="py-name">fd</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">res</tt> </tt>
</div><a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> </tt>
<a name="GlibIdleQueue._process_events"></a><div id="GlibIdleQueue._process_events-def"><a name="L532"></a><tt class="py-lineno">532</tt> <a class="py-toggle" href="#" id="GlibIdleQueue._process_events-toggle" onclick="return toggle('GlibIdleQueue._process_events');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.GlibIdleQueue-class.html#_process_events">_process_events</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fd</tt><tt class="py-op">,</tt> <tt class="py-param">flags</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="GlibIdleQueue._process_events-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GlibIdleQueue._process_events-expanded"><a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-108" class="py-name" targets="Class nbxmpp.idlequeue.IdleQueue=nbxmpp.idlequeue.IdleQueue-class.html"><a title="nbxmpp.idlequeue.IdleQueue" class="py-name" href="#" onclick="return doclink('link-108', 'IdleQueue', 'link-108');">IdleQueue</a></tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="nbxmpp.idlequeue.GlibIdleQueue._process_events
-nbxmpp.idlequeue.IdleQueue._process_events" class="py-name" href="#" onclick="return doclink('link-109', '_process_events', 'link-92');">_process_events</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
+<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-103" class="py-name" targets="Class nbxmpp.idlequeue.IdleQueue=nbxmpp.idlequeue.IdleQueue-class.html"><a title="nbxmpp.idlequeue.IdleQueue" class="py-name" href="#" onclick="return doclink('link-103', 'IdleQueue', 'link-103');">IdleQueue</a></tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="nbxmpp.idlequeue.GlibIdleQueue._process_events
+nbxmpp.idlequeue.IdleQueue._process_events" class="py-name" href="#" onclick="return doclink('link-104', '_process_events', 'link-87');">_process_events</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
<a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
-<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="nbxmpp.idlequeue.GlibIdleQueue._remove_idle
+<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="nbxmpp.idlequeue.GlibIdleQueue._remove_idle
nbxmpp.idlequeue.IdleQueue._remove_idle
-nbxmpp.idlequeue.SelectIdleQueue._remove_idle" class="py-name" href="#" onclick="return doclink('link-110', '_remove_idle', 'link-78');">_remove_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
-<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="nbxmpp.idlequeue.GlibIdleQueue._add_idle
+nbxmpp.idlequeue.SelectIdleQueue._remove_idle" class="py-name" href="#" onclick="return doclink('link-105', '_remove_idle', 'link-73');">_remove_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="nbxmpp.idlequeue.GlibIdleQueue._add_idle
nbxmpp.idlequeue.IdleQueue._add_idle
-nbxmpp.idlequeue.SelectIdleQueue._add_idle" class="py-name" href="#" onclick="return doclink('link-111', '_add_idle', 'link-76');">_add_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.idlequeue.SelectIdleQueue._add_idle" class="py-name" href="#" onclick="return doclink('link-106', '_add_idle', 'link-71');">_add_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
</div><a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"> </tt>
<a name="GlibIdleQueue._remove_idle"></a><div id="GlibIdleQueue._remove_idle-def"><a name="L540"></a><tt class="py-lineno">540</tt> <a class="py-toggle" href="#" id="GlibIdleQueue._remove_idle-toggle" onclick="return toggle('GlibIdleQueue._remove_idle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.GlibIdleQueue-class.html#_remove_idle">_remove_idle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fd</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -751,7 +746,7 @@ nbxmpp.idlequeue.SelectIdleQueue._add_idle" class="py-name" href="#" onclick="re
<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> <tt class="py-keyword">del</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">events</tt><tt class="py-op">[</tt><tt class="py-name">fd</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
</div><a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"> </tt>
<a name="GlibIdleQueue.process"></a><div id="GlibIdleQueue.process-def"><a name="L550"></a><tt class="py-lineno">550</tt> <a class="py-toggle" href="#" id="GlibIdleQueue.process-toggle" onclick="return toggle('GlibIdleQueue.process');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.idlequeue.GlibIdleQueue-class.html#process">process</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="GlibIdleQueue.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GlibIdleQueue.process-expanded"><a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue._check_time_events" class="py-name" href="#" onclick="return doclink('link-112', '_check_time_events', 'link-91');">_check_time_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><div id="GlibIdleQueue.process-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="GlibIdleQueue.process-expanded"><a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue._check_time_events" class="py-name" href="#" onclick="return doclink('link-107', '_check_time_events', 'link-86');">_check_time_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -790,7 +785,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:09 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.idlequeue.GlibIdleQueue-class.html b/doc/apidocs/nbxmpp.idlequeue.GlibIdleQueue-class.html
index e5da4ba..be06a0b 100644
--- a/doc/apidocs/nbxmpp.idlequeue.GlibIdleQueue-class.html
+++ b/doc/apidocs/nbxmpp.idlequeue.GlibIdleQueue-class.html
@@ -445,7 +445,7 @@ their file descriptors</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.idlequeue.IdleCommand-class.html b/doc/apidocs/nbxmpp.idlequeue.IdleCommand-class.html
index ce9dcc8..331c14c 100644
--- a/doc/apidocs/nbxmpp.idlequeue.IdleCommand-class.html
+++ b/doc/apidocs/nbxmpp.idlequeue.IdleCommand-class.html
@@ -663,7 +663,7 @@ Result will be optained via file descriptor of created pipe
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.idlequeue.IdleObject-class.html b/doc/apidocs/nbxmpp.idlequeue.IdleObject-class.html
index d6a0924..7cb8703 100644
--- a/doc/apidocs/nbxmpp.idlequeue.IdleObject-class.html
+++ b/doc/apidocs/nbxmpp.idlequeue.IdleObject-class.html
@@ -386,7 +386,7 @@ Idle listener interface. Listed methods are called by IdleQueue.
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.idlequeue.IdleQueue-class.html b/doc/apidocs/nbxmpp.idlequeue.IdleQueue-class.html
index 3000afe..f13ba93 100644
--- a/doc/apidocs/nbxmpp.idlequeue.IdleQueue-class.html
+++ b/doc/apidocs/nbxmpp.idlequeue.IdleQueue-class.html
@@ -779,7 +779,7 @@ their file descriptors</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.idlequeue.SelectIdleQueue-class.html b/doc/apidocs/nbxmpp.idlequeue.SelectIdleQueue-class.html
index 203d351..8631916 100644
--- a/doc/apidocs/nbxmpp.idlequeue.SelectIdleQueue-class.html
+++ b/doc/apidocs/nbxmpp.idlequeue.SelectIdleQueue-class.html
@@ -368,7 +368,7 @@ their file descriptors</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.plugin-module.html b/doc/apidocs/nbxmpp.plugin-module.html
index 0b6bfbc..49db93b 100644
--- a/doc/apidocs/nbxmpp.plugin-module.html
+++ b/doc/apidocs/nbxmpp.plugin-module.html
@@ -211,7 +211,7 @@ logging.getLogger('nbxmpp.plugin')
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:11 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.plugin-pysrc.html b/doc/apidocs/nbxmpp.plugin-pysrc.html
index c0da1eb..ce1838d 100644
--- a/doc/apidocs/nbxmpp.plugin-pysrc.html
+++ b/doc/apidocs/nbxmpp.plugin-pysrc.html
@@ -249,7 +249,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:09 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.plugin.PlugIn-class.html b/doc/apidocs/nbxmpp.plugin.PlugIn-class.html
index b520e0f..e4571d3 100644
--- a/doc/apidocs/nbxmpp.plugin.PlugIn-class.html
+++ b/doc/apidocs/nbxmpp.plugin.PlugIn-class.html
@@ -64,23 +64,23 @@
<h1 class="epydoc">Class PlugIn</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.plugin-pysrc.html#PlugIn">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p" name="uml_class_diagram_for_nbxmpp_p">
-<area shape="rect" id="node29" href="nbxmpp.plugin.PlugIn-class.html#__init__" title="nbxmpp.plugin.PlugIn.__init__" alt="" coords="673,39,899,57"/>
-<area shape="rect" id="node29" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="673,57,899,76"/>
-<area shape="rect" id="node29" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="673,76,899,95"/>
-<area shape="rect" id="node29" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="673,95,899,113"/>
-<area shape="rect" id="node1" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="661,6,909,119"/>
-<area shape="rect" id="node2" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html" title="Handles XMPP stream and is the first who takes control over a fresh stanza" alt="" coords="7,139,241,178"/>
-<area shape="rect" id="node3" href="nbxmpp.auth_nb.SASL-class.html" title="Implements SASL authentication. Can be plugged into NonBlockingClient to start authentication" alt="" coords="271,139,396,178"/>
-<area shape="rect" id="node4" href="nbxmpp.auth_nb.NonBlockingNonSASL-class.html" title="Implements old Non&#45;SASL (JEP&#45;0078) authentication used in jabberd1.4 and transport authentication" alt="" coords="425,139,657,178"/>
-<area shape="rect" id="node6" href="nbxmpp.auth_nb.NonBlockingBind-class.html" title="Bind some JID to the current connection to allow router know of our location. Must be plugged after successful SASL auth" alt="" coords="687,139,887,178"/>
-<area shape="rect" id="node7" href="nbxmpp.tls_nb.NonBlockingTLS-class.html" title="TLS connection used to encrypts already estabilished tcp connection" alt="" coords="916,139,1097,178"/>
-<area shape="rect" id="node8" href="nbxmpp.roster_nb.NonBlockingRoster-class.html" title="Defines a plenty of methods that will allow you to manage roster. Also automatically track presences from remote JIDs taking into account that every JID can have multiple resources connected. Does not currently support &#39;error&#39; presences. You can also use mapping interface for access to the internal representation of contacts in roster" alt="" coords="1127,139,1348,178"/>
-<area shape="rect" id="node10" href="nbxmpp.transports_nb.NonBlockingTransport-class.html" title="Abstract class representing a transport" alt="" coords="1377,139,1644,178"/>
-<area shape="rect" id="node9" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html" title="nbxmpp.dispatcher_nb.BOSHDispatcher" alt="" coords="5,198,243,237"/>
-<area shape="rect" id="node5" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html" title="Socket wrapper that creates HTTP message out of sent data and peels&#45;off HTTP headers from incoming messages" alt="" coords="1511,257,1751,295"/>
-<area shape="rect" id="node12" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html" title="Class for BOSH HTTP connections. Slightly redefines HTTP transport by calling bosh bodytag generating callback before putting data on wire" alt="" coords="1492,315,1769,354"/>
-<area shape="rect" id="node11" href="nbxmpp.bosh.NonBlockingBOSH-class.html" title="nbxmpp.bosh.NonBlockingBOSH" alt="" coords="1296,198,1485,237"/>
-<area shape="rect" id="node13" href="nbxmpp.transports_nb.NonBlockingTCP-class.html" title="Non&#45;blocking TCP socket wrapper" alt="" coords="1515,198,1747,237"/>
+<area shape="rect" id="node29" href="nbxmpp.plugin.PlugIn-class.html#__init__" title="nbxmpp.plugin.PlugIn.__init__" alt="" coords="897,39,1123,57"/>
+<area shape="rect" id="node29" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="897,57,1123,76"/>
+<area shape="rect" id="node29" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="897,76,1123,95"/>
+<area shape="rect" id="node29" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="897,95,1123,113"/>
+<area shape="rect" id="node1" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="885,6,1133,119"/>
+<area shape="rect" id="node2" href="nbxmpp.transports_nb.NonBlockingTransport-class.html" title="Abstract class representing a transport" alt="" coords="129,139,396,178"/>
+<area shape="rect" id="node3" href="nbxmpp.tls_nb.NonBlockingTLS-class.html" title="TLS connection used to encrypts already estabilished tcp connection" alt="" coords="425,139,607,178"/>
+<area shape="rect" id="node5" href="nbxmpp.dispatcher_nb.XMPPDispatcher-class.html" title="Handles XMPP stream and is the first who takes control over a fresh stanza" alt="" coords="636,139,871,178"/>
+<area shape="rect" id="node6" href="nbxmpp.roster_nb.NonBlockingRoster-class.html" title="Defines a plenty of methods that will allow you to manage roster. Also automatically track presences from remote JIDs taking into account that every JID can have multiple resources connected. Does not currently support &#39;error&#39; presences. You can also use mapping interface for access to the internal representation of contacts in roster" alt="" coords="900,139,1121,178"/>
+<area shape="rect" id="node7" href="nbxmpp.auth_nb.SASL-class.html" title="Implements SASL authentication. Can be plugged into NonBlockingClient to start authentication" alt="" coords="1151,139,1276,178"/>
+<area shape="rect" id="node9" href="nbxmpp.auth_nb.NonBlockingNonSASL-class.html" title="Implements old Non&#45;SASL (JEP&#45;0078) authentication used in jabberd1.4 and transport authentication" alt="" coords="1305,139,1537,178"/>
+<area shape="rect" id="node12" href="nbxmpp.auth_nb.NonBlockingBind-class.html" title="Bind some JID to the current connection to allow router know of our location. Must be plugged after successful SASL auth" alt="" coords="1567,139,1767,178"/>
+<area shape="rect" id="node4" href="nbxmpp.transports_nb.NonBlockingTCP-class.html" title="Non&#45;blocking TCP socket wrapper" alt="" coords="28,198,260,237"/>
+<area shape="rect" id="node8" href="nbxmpp.bosh.NonBlockingBOSH-class.html" title="nbxmpp.bosh.NonBlockingBOSH" alt="" coords="289,198,476,237"/>
+<area shape="rect" id="node13" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html" title="Socket wrapper that creates HTTP message out of sent data and peels&#45;off HTTP headers from incoming messages" alt="" coords="24,257,264,295"/>
+<area shape="rect" id="node10" href="nbxmpp.dispatcher_nb.BOSHDispatcher-class.html" title="nbxmpp.dispatcher_nb.BOSHDispatcher" alt="" coords="635,198,872,237"/>
+<area shape="rect" id="node11" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html" title="Class for BOSH HTTP connections. Slightly redefines HTTP transport by calling bosh bodytag generating callback before putting data on wire" alt="" coords="5,315,283,354"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p" ismap="ismap" class="graph-without-title" />
</center>
@@ -341,7 +341,7 @@ mock objects.</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol-module.html b/doc/apidocs/nbxmpp.protocol-module.html
index 9a1a719..686cac1 100644
--- a/doc/apidocs/nbxmpp.protocol-module.html
+++ b/doc/apidocs/nbxmpp.protocol-module.html
@@ -558,6 +558,13 @@ and messages
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a href="nbxmpp.protocol-module.html#NS_BLOCKING" class="summary-name">NS_BLOCKING</a> = <code title="'urn:xmpp:blocking'"><code class="variable-quote">'</code><code class="variable-string">urn:xmpp:blocking</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a href="nbxmpp.protocol-module.html#NS_BOB" class="summary-name">NS_BOB</a> = <code title="'urn:xmpp:bob'"><code class="variable-quote">'</code><code class="variable-string">urn:xmpp:bob</code><code class="variable-quote">'</code></code>
</td>
</tr>
@@ -607,7 +614,7 @@ and messages
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#NS_CARBONS" class="summary-name">NS_CARBONS</a> = <code title="'urn:xmpp:carbons:1'"><code class="variable-quote">'</code><code class="variable-string">urn:xmpp:carbons:1</code><code class="variable-quote">'</code></code>
+ <a href="nbxmpp.protocol-module.html#NS_CARBONS" class="summary-name">NS_CARBONS</a> = <code title="'urn:xmpp:carbons:2'"><code class="variable-quote">'</code><code class="variable-string">urn:xmpp:carbons:2</code><code class="variable-quote">'</code></code>
</td>
</tr>
<tr>
@@ -677,6 +684,13 @@ and messages
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a href="nbxmpp.protocol-module.html#NS_CORRECT" class="summary-name">NS_CORRECT</a> = <code title="'urn:xmpp:message-correct:0'"><code class="variable-quote">'</code><code class="variable-string">urn:xmpp:message-correct:0</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a href="nbxmpp.protocol-module.html#NS_DATA" class="summary-name">NS_DATA</a> = <code title="'jabber:x:data'"><code class="variable-quote">'</code><code class="variable-string">jabber:x:data</code><code class="variable-quote">'</code></code>
</td>
</tr>
@@ -936,6 +950,13 @@ and messages
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a href="nbxmpp.protocol-module.html#NS_MAM" class="summary-name">NS_MAM</a> = <code title="'urn:xmpp:mam:tmp'"><code class="variable-quote">'</code><code class="variable-string">urn:xmpp:mam:tmp</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a href="nbxmpp.protocol-module.html#NS_MESSAGE" class="summary-name">NS_MESSAGE</a> = <code title="'message'"><code class="variable-quote">'</code><code class="variable-string">message</code><code class="variable-quote">'</code></code>
</td>
</tr>
@@ -1321,6 +1342,13 @@ and messages
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
+ <a href="nbxmpp.protocol-module.html#NS_X_OOB" class="summary-name">NS_X_OOB</a> = <code title="'jabber:x:oob'"><code class="variable-quote">'</code><code class="variable-string">jabber:x:oob</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
<a href="nbxmpp.protocol-module.html#NS_DATA_LAYOUT" class="summary-name">NS_DATA_LAYOUT</a> = <code title="'http://jabber.org/protocol/xdata-layout'"><code class="variable-quote">'</code><code class="variable-string">http://jabber.org/protocol/xdata-layout</code><code class="variable-quote">'</code></code>
</td>
</tr>
@@ -1377,7 +1405,7 @@ and messages
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#NS_HASHES" class="summary-name">NS_HASHES</a> = <code title="'urn:xmpp:hashes:0'"><code class="variable-quote">'</code><code class="variable-string">urn:xmpp:hashes:0</code><code class="variable-quote">'</code></code>
+ <a href="nbxmpp.protocol-module.html#NS_HASHES" class="summary-name">NS_HASHES</a> = <code title="'urn:xmpp:hashes:1'"><code class="variable-quote">'</code><code class="variable-string">urn:xmpp:hashes:1</code><code class="variable-quote">'</code></code>
</td>
</tr>
<tr>
@@ -1412,66 +1440,6 @@ and messages
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#xmpp_stream_error_conditions" class="summary-name">xmpp_stream_error_conditions</a> = <code title="'''
-bad-format -- -- -- The entity has sent XML that cannot be processed\
-.
-bad-namespace-prefix -- -- -- The entity has sent a namespace prefix\
- that is unsupported, or has sent no namespace prefix on an element th\
-at requires such a prefix.
-conflict -- -- -- The server is closing the active stream for this e\
-ntity because a new stream has been initiated that conflicts with the \
-..."><code class="variable-quote">'</code><code class="variable-string">\nbad-format -- -- -- The en</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp.protocol-module.html#xmpp_stanza_error_conditions" class="summary-name">xmpp_stanza_error_conditions</a> = <code title="'''
-bad-request -- 400 -- modify -- The sender has sent XML that is malfor\
-med or that cannot be processed.
-conflict -- 409 -- cancel -- Access cannot be granted because an exist\
-ing resource or session exists with the same name or address.
-feature-not-implemented -- 501 -- cancel -- The feature requested is n\
-ot implemented by the recipient or server and therefore cannot be proc\
-essed.
-..."><code class="variable-quote">'</code><code class="variable-string">\nbad-request -- 400 -- modify</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp.protocol-module.html#sasl_error_conditions" class="summary-name">sasl_error_conditions</a> = <code title="'''
-aborted -- -- -- The receiving entity acknowledges an &lt;abort/&gt; eleme\
-nt sent by the initiating entity; sent in reply to the &lt;abort/&gt; elemen\
-t.
-incorrect-encoding -- -- -- The data provided by the initiating enti\
-ty could not be processed because the [BASE64]Josefsson, S., The Base1\
-6, Base32, and Base64 Data Encodings, July 2003. encoding is incorrect\
- (e.g., because the encoding does not adhere to the definition in Sect\
-..."><code class="variable-quote">'</code><code class="variable-string">\naborted -- -- -- The receiving en</code><code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
- <a href="nbxmpp.protocol-module.html#stream_exceptions" class="summary-name">stream_exceptions</a> = <code title="{'bad-format': &lt;class 'nbxmpp.protocol.BadFormat'&gt;,
- 'bad-namespace-prefix': &lt;class 'nbxmpp.protocol.BadNamespacePrefix'&gt;,
- 'conflict': &lt;class 'nbxmpp.protocol.Conflict'&gt;,
- 'connection-timeout': &lt;class 'nbxmpp.protocol.ConnectionTimeout'&gt;,
- 'host-gone': &lt;class 'nbxmpp.protocol.HostGone'&gt;,
- 'host-unknown': &lt;class 'nbxmpp.protocol.HostUnknown'&gt;,
- 'improper-addressing': &lt;class 'nbxmpp.protocol.ImproperAddressing'&gt;,
- 'internal-server-error': &lt;class 'nbxmpp.protocol.InternalServerError'\
-..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">bad-format</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.Bad<code class="variable-ellipsis">...</code></code>
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type">&nbsp;</span>
- </td><td class="summary">
<a href="nbxmpp.protocol-module.html#ERRORS" class="summary-name">ERRORS</a> = <code title="{'urn:ietf:params:xml:ns:xmpp-sasl aborted': ['',
'',
'The receiving entity ac\
@@ -1483,319 +1451,327 @@ reply to the &lt;abort/&gt; element.'],
..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl aborted</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
-<tr>
+<tr class="private">
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_BAD_REQUEST" class="summary-name">ERR_BAD_REQUEST</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas bad-request'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas bad-req</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#_errorcodes" class="summary-name" onclick="show_private();">_errorcodes</a> = <code title="{'302': 'redirect',
+ '400': 'unexpected-request',
+ '401': 'not-authorized',
+ '402': 'payment-required',
+ '403': 'forbidden',
+ '404': 'remote-server-not-found',
+ '405': 'not-allowed',
+ '406': 'not-acceptable',
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">302</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">redirect</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">400</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unexpected-request</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_CONFLICT" class="summary-name">ERR_CONFLICT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas conflict'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas conflict</code><code class="variable-quote">'</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_NOT_AUTHORIZED" class="summary-name">STREAM_NOT_AUTHORIZED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams not-authorized'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams n</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_FEATURE_NOT_IMPLEMENTED" class="summary-name">ERR_FEATURE_NOT_IMPLEMENTED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas feature-not-implemented'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sta</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_REMOTE_CONNECTION_FAILED" class="summary-name">STREAM_REMOTE_CONNECTION_FAILED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams remote-connection-failed'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_FORBIDDEN" class="summary-name">ERR_FORBIDDEN</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas forbidden'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas forbidden</code><code class="variable-quote">'</code></code>
+ <a href="nbxmpp.protocol-module.html#SASL_MECHANISM_TOO_WEAK" class="summary-name">SASL_MECHANISM_TOO_WEAK</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl mechanism-too-weak'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl me</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_GONE" class="summary-name">ERR_GONE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas gone'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas gone</code><code class="variable-quote">'</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_XML_NOT_WELL_FORMED" class="summary-name">STREAM_XML_NOT_WELL_FORMED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams xml-not-well-formed'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_INTERNAL_SERVER_ERROR" class="summary-name">ERR_INTERNAL_SERVER_ERROR</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas internal-server-error'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_JID_MALFORMED" class="summary-name">ERR_JID_MALFORMED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas jid-malformed'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas jid-m</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_ITEM_NOT_FOUND" class="summary-name">ERR_ITEM_NOT_FOUND</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas item-not-found'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas item</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_SEE_OTHER_HOST" class="summary-name">STREAM_SEE_OTHER_HOST</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams see-other-host'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams s</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_JID_MALFORMED" class="summary-name">ERR_JID_MALFORMED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas jid-malformed'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas jid-m</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_BAD_NAMESPACE_PREFIX" class="summary-name">STREAM_BAD_NAMESPACE_PREFIX</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams bad-namespace-prefix'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-str</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_NOT_ACCEPTABLE" class="summary-name">ERR_NOT_ACCEPTABLE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas not-acceptable'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_SERVICE_UNAVAILABLE" class="summary-name">ERR_SERVICE_UNAVAILABLE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas service-unavailable'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_NOT_ALLOWED" class="summary-name">ERR_NOT_ALLOWED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas not-allowed'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-all</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_CONNECTION_TIMEOUT" class="summary-name">STREAM_CONNECTION_TIMEOUT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams connection-timeout'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-strea</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_NOT_AUTHORIZED" class="summary-name">ERR_NOT_AUTHORIZED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas not-authorized'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_VERSION" class="summary-name">STREAM_UNSUPPORTED_VERSION</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams unsupported-version'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_PAYMENT_REQUIRED" class="summary-name">ERR_PAYMENT_REQUIRED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas payment-required'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas pa</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_IMPROPER_ADDRESSING" class="summary-name">STREAM_IMPROPER_ADDRESSING</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams improper-addressing'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_RECIPIENT_UNAVAILABLE" class="summary-name">ERR_RECIPIENT_UNAVAILABLE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas recipient-unavailable'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_UNDEFINED_CONDITION" class="summary-name">STREAM_UNDEFINED_CONDITION</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams undefined-condition'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_REDIRECT" class="summary-name">ERR_REDIRECT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas redirect'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas redirect</code><code class="variable-quote">'</code></code>
+ <a href="nbxmpp.protocol-module.html#SASL_NOT_AUTHORIZED" class="summary-name">SASL_NOT_AUTHORIZED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl not-authorized'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl not-au</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_REGISTRATION_REQUIRED" class="summary-name">ERR_REGISTRATION_REQUIRED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas registration-required'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_GONE" class="summary-name">ERR_GONE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas gone'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas gone</code><code class="variable-quote">'</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_REMOTE_SERVER_NOT_FOUND" class="summary-name">ERR_REMOTE_SERVER_NOT_FOUND</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-not-found'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sta</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#SASL_TEMPORARY_AUTH_FAILURE" class="summary-name">SASL_TEMPORARY_AUTH_FAILURE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl temporary-auth-failure'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sas</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_REMOTE_SERVER_TIMEOUT" class="summary-name">ERR_REMOTE_SERVER_TIMEOUT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-timeout'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_REMOTE_SERVER_NOT_FOUND" class="summary-name">ERR_REMOTE_SERVER_NOT_FOUND</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-not-found'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sta</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_RESOURCE_CONSTRAINT" class="summary-name">ERR_RESOURCE_CONSTRAINT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas resource-constraint'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_UNEXPECTED_REQUEST" class="summary-name">ERR_UNEXPECTED_REQUEST</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas unexpected-request'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas </code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_SERVICE_UNAVAILABLE" class="summary-name">ERR_SERVICE_UNAVAILABLE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas service-unavailable'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_RECIPIENT_UNAVAILABLE" class="summary-name">ERR_RECIPIENT_UNAVAILABLE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas recipient-unavailable'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_SUBSCRIPTION_REQUIRED" class="summary-name">ERR_SUBSCRIPTION_REQUIRED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas subscription-required'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_CONFLICT" class="summary-name">ERR_CONFLICT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas conflict'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas conflict</code><code class="variable-quote">'</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_UNDEFINED_CONDITION" class="summary-name">ERR_UNDEFINED_CONDITION</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas undefined-condition'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_SYSTEM_SHUTDOWN" class="summary-name">STREAM_SYSTEM_SHUTDOWN</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams system-shutdown'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams </code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#ERR_UNEXPECTED_REQUEST" class="summary-name">ERR_UNEXPECTED_REQUEST</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas unexpected-request'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas </code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_BAD_FORMAT" class="summary-name">STREAM_BAD_FORMAT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams bad-format'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams bad-f</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#SASL_ABORTED" class="summary-name">SASL_ABORTED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl aborted'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl aborted</code><code class="variable-quote">'</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_SUBSCRIPTION_REQUIRED" class="summary-name">ERR_SUBSCRIPTION_REQUIRED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas subscription-required'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#SASL_INCORRECT_ENCODING" class="summary-name">SASL_INCORRECT_ENCODING</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl in</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_INTERNAL_SERVER_ERROR" class="summary-name">STREAM_INTERNAL_SERVER_ERROR</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams internal-server-error'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-st</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#SASL_INVALID_AUTHZID" class="summary-name">SASL_INVALID_AUTHZID</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl invalid-authzid'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl inval</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_NOT_AUTHORIZED" class="summary-name">ERR_NOT_AUTHORIZED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas not-authorized'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#SASL_INVALID_MECHANISM" class="summary-name">SASL_INVALID_MECHANISM</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl invalid-mechanism'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl inv</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#SASL_ABORTED" class="summary-name">SASL_ABORTED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl aborted'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl aborted</code><code class="variable-quote">'</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#SASL_MECHANISM_TOO_WEAK" class="summary-name">SASL_MECHANISM_TOO_WEAK</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl mechanism-too-weak'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl me</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_REGISTRATION_REQUIRED" class="summary-name">ERR_REGISTRATION_REQUIRED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas registration-required'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#SASL_NOT_AUTHORIZED" class="summary-name">SASL_NOT_AUTHORIZED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl not-authorized'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl not-au</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_INTERNAL_SERVER_ERROR" class="summary-name">ERR_INTERNAL_SERVER_ERROR</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas internal-server-error'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#SASL_TEMPORARY_AUTH_FAILURE" class="summary-name">SASL_TEMPORARY_AUTH_FAILURE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl temporary-auth-failure'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sas</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#SASL_INCORRECT_ENCODING" class="summary-name">SASL_INCORRECT_ENCODING</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl in</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_BAD_FORMAT" class="summary-name">STREAM_BAD_FORMAT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams bad-format'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams bad-f</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_HOST_GONE" class="summary-name">STREAM_HOST_GONE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams host-gone'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams host-g</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_BAD_NAMESPACE_PREFIX" class="summary-name">STREAM_BAD_NAMESPACE_PREFIX</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams bad-namespace-prefix'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-str</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_POLICY_VIOLATION" class="summary-name">STREAM_POLICY_VIOLATION</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams policy-violation'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_CONFLICT" class="summary-name">STREAM_CONFLICT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams conflict'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams conflict</code><code class="variable-quote">'</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_INVALID_XML" class="summary-name">STREAM_INVALID_XML</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams invalid-xml'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams inva</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_CONNECTION_TIMEOUT" class="summary-name">STREAM_CONNECTION_TIMEOUT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams connection-timeout'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-strea</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_CONFLICT" class="summary-name">STREAM_CONFLICT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams conflict'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams conflict</code><code class="variable-quote">'</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_HOST_GONE" class="summary-name">STREAM_HOST_GONE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams host-gone'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams host-g</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_RESOURCE_CONSTRAINT" class="summary-name">STREAM_RESOURCE_CONSTRAINT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams resource-constraint'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_HOST_UNKNOWN" class="summary-name">STREAM_HOST_UNKNOWN</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams host-unknown'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams hos</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_ENCODING" class="summary-name">STREAM_UNSUPPORTED_ENCODING</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams unsupported-encoding'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-str</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_IMPROPER_ADDRESSING" class="summary-name">STREAM_IMPROPER_ADDRESSING</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams improper-addressing'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_NOT_ALLOWED" class="summary-name">ERR_NOT_ALLOWED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas not-allowed'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-all</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_INTERNAL_SERVER_ERROR" class="summary-name">STREAM_INTERNAL_SERVER_ERROR</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams internal-server-error'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-st</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_ITEM_NOT_FOUND" class="summary-name">ERR_ITEM_NOT_FOUND</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas item-not-found'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas item</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_INVALID_FROM" class="summary-name">STREAM_INVALID_FROM</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams invalid-from'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams inv</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_NOT_ACCEPTABLE" class="summary-name">ERR_NOT_ACCEPTABLE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas not-acceptable'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_INVALID_ID" class="summary-name">STREAM_INVALID_ID</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams invalid-id'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams inval</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_INVALID_FROM" class="summary-name">STREAM_INVALID_FROM</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams invalid-from'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams inv</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_INVALID_NAMESPACE" class="summary-name">STREAM_INVALID_NAMESPACE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams invalid-namespace'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stream</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_FEATURE_NOT_IMPLEMENTED" class="summary-name">ERR_FEATURE_NOT_IMPLEMENTED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas feature-not-implemented'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sta</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_INVALID_XML" class="summary-name">STREAM_INVALID_XML</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams invalid-xml'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams inva</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_BAD_REQUEST" class="summary-name">ERR_BAD_REQUEST</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas bad-request'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas bad-req</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_NOT_AUTHORIZED" class="summary-name">STREAM_NOT_AUTHORIZED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams not-authorized'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams n</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_INVALID_ID" class="summary-name">STREAM_INVALID_ID</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams invalid-id'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams inval</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_POLICY_VIOLATION" class="summary-name">STREAM_POLICY_VIOLATION</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams policy-violation'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_HOST_UNKNOWN" class="summary-name">STREAM_HOST_UNKNOWN</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams host-unknown'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams hos</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_REMOTE_CONNECTION_FAILED" class="summary-name">STREAM_REMOTE_CONNECTION_FAILED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams remote-connection-failed'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_UNDEFINED_CONDITION" class="summary-name">ERR_UNDEFINED_CONDITION</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas undefined-condition'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_RESOURCE_CONSTRAINT" class="summary-name">STREAM_RESOURCE_CONSTRAINT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams resource-constraint'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#SASL_INVALID_MECHANISM" class="summary-name">SASL_INVALID_MECHANISM</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl invalid-mechanism'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl inv</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
@@ -1809,78 +1785,78 @@ reply to the &lt;abort/&gt; element.'],
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_SEE_OTHER_HOST" class="summary-name">STREAM_SEE_OTHER_HOST</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams see-other-host'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams s</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_RESOURCE_CONSTRAINT" class="summary-name">ERR_RESOURCE_CONSTRAINT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas resource-constraint'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_SYSTEM_SHUTDOWN" class="summary-name">STREAM_SYSTEM_SHUTDOWN</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams system-shutdown'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams </code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_REMOTE_SERVER_TIMEOUT" class="summary-name">ERR_REMOTE_SERVER_TIMEOUT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-timeout'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanz</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_UNDEFINED_CONDITION" class="summary-name">STREAM_UNDEFINED_CONDITION</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams undefined-condition'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#SASL_INVALID_AUTHZID" class="summary-name">SASL_INVALID_AUTHZID</a> = <code title="'urn:ietf:params:xml:ns:xmpp-sasl invalid-authzid'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl inval</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_ENCODING" class="summary-name">STREAM_UNSUPPORTED_ENCODING</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams unsupported-encoding'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-str</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_PAYMENT_REQUIRED" class="summary-name">ERR_PAYMENT_REQUIRED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas payment-required'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas pa</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_STANZA_TYPE" class="summary-name">STREAM_UNSUPPORTED_STANZA_TYPE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams unsupported-stanza-type'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_INVALID_NAMESPACE" class="summary-name">STREAM_INVALID_NAMESPACE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams invalid-namespace'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stream</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_VERSION" class="summary-name">STREAM_UNSUPPORTED_VERSION</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams unsupported-version'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_REDIRECT" class="summary-name">ERR_REDIRECT</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas redirect'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas redirect</code><code class="variable-quote">'</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#STREAM_XML_NOT_WELL_FORMED" class="summary-name">STREAM_XML_NOT_WELL_FORMED</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams xml-not-well-formed'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stre</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_STANZA_TYPE" class="summary-name">STREAM_UNSUPPORTED_STANZA_TYPE</a> = <code title="'urn:ietf:params:xml:ns:xmpp-streams unsupported-stanza-type'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-</code><code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#__package__" class="summary-name">__package__</a> = <code title="'nbxmpp'"><code class="variable-quote">'</code><code class="variable-string">nbxmpp</code><code class="variable-quote">'</code></code>
+ <a href="nbxmpp.protocol-module.html#ERR_FORBIDDEN" class="summary-name">ERR_FORBIDDEN</a> = <code title="'urn:ietf:params:xml:ns:xmpp-stanzas forbidden'"><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas forbidden</code><code class="variable-quote">'</code></code>
</td>
</tr>
-<tr class="private">
+<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#_errorcodes" class="summary-name" onclick="show_private();">_errorcodes</a> = <code title="{'302': 'redirect',
- '400': 'unexpected-request',
- '401': 'not-authorized',
- '402': 'payment-required',
- '403': 'forbidden',
- '404': 'remote-server-not-found',
- '405': 'not-allowed',
- '406': 'not-acceptable',
-..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">302</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">redirect</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">400</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unexpected-request</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</code></code>
+ <a href="nbxmpp.protocol-module.html#stream_exceptions" class="summary-name">stream_exceptions</a> = <code title="{'bad-format': &lt;class 'nbxmpp.protocol.BadFormat'&gt;,
+ 'bad-namespace-prefix': &lt;class 'nbxmpp.protocol.BadNamespacePrefix'&gt;,
+ 'conflict': &lt;class 'nbxmpp.protocol.Conflict'&gt;,
+ 'connection-timeout': &lt;class 'nbxmpp.protocol.ConnectionTimeout'&gt;,
+ 'host-gone': &lt;class 'nbxmpp.protocol.HostGone'&gt;,
+ 'host-unknown': &lt;class 'nbxmpp.protocol.HostUnknown'&gt;,
+ 'improper-addressing': &lt;class 'nbxmpp.protocol.ImproperAddressing'&gt;,
+ 'internal-server-error': &lt;class 'nbxmpp.protocol.InternalServerError'\
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">bad-format</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.Bad<code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type">&nbsp;</span>
</td><td class="summary">
- <a href="nbxmpp.protocol-module.html#name" class="summary-name">name</a> = <code title="'SASL_TEMPORARY_AUTH_FAILURE'"><code class="variable-quote">'</code><code class="variable-string">SASL_TEMPORARY_AUTH_FAILURE</code><code class="variable-quote">'</code></code>
+ <a href="nbxmpp.protocol-module.html#__package__" class="summary-name">__package__</a> = <code title="'nbxmpp'"><code class="variable-quote">'</code><code class="variable-string">nbxmpp</code><code class="variable-quote">'</code></code>
</td>
</tr>
</table>
@@ -2255,6 +2231,24 @@ reply to the &lt;abort/&gt; element.'],
</dl>
</td></tr></table>
</div>
+<a name="NS_BLOCKING"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">NS_BLOCKING</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">urn:xmpp:blocking</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
<a name="NS_BOB"></a>
<div>
<table class="details" border="1" cellpadding="3"
@@ -2393,7 +2387,7 @@ reply to the &lt;abort/&gt; element.'],
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:xmpp:carbons:1</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:xmpp:carbons:2</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
@@ -2561,6 +2555,24 @@ reply to the &lt;abort/&gt; element.'],
</dl>
</td></tr></table>
</div>
+<a name="NS_CORRECT"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">NS_CORRECT</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">urn:xmpp:message-correct:0</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
<a name="NS_DATA"></a>
<div>
<table class="details" border="1" cellpadding="3"
@@ -3227,6 +3239,24 @@ reply to the &lt;abort/&gt; element.'],
</dl>
</td></tr></table>
</div>
+<a name="NS_MAM"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">NS_MAM</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">urn:xmpp:mam:tmp</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
<a name="NS_MESSAGE"></a>
<div>
<table class="details" border="1" cellpadding="3"
@@ -4217,6 +4247,24 @@ reply to the &lt;abort/&gt; element.'],
</dl>
</td></tr></table>
</div>
+<a name="NS_X_OOB"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">NS_X_OOB</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-quote">'</code><code class="variable-string">jabber:x:oob</code><code class="variable-quote">'</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
<a name="NS_DATA_LAYOUT"></a>
<div>
<table class="details" border="1" cellpadding="3"
@@ -4373,7 +4421,7 @@ reply to the &lt;abort/&gt; element.'],
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:xmpp:hashes:0</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:xmpp:hashes:1</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
@@ -4451,473 +4499,431 @@ reply to the &lt;abort/&gt; element.'],
</dl>
</td></tr></table>
</div>
-<a name="xmpp_stream_error_conditions"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">xmpp_stream_error_conditions</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'''</code><code class="variable-string"></code>
-<code class="variable-string">bad-format -- -- -- The entity has sent XML that cannot be processed</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">.</code>
-<code class="variable-string">bad-namespace-prefix -- -- -- The entity has sent a namespace prefix</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string"> that is unsupported, or has sent no namespace prefix on an element th</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">at requires such a prefix.</code>
-<code class="variable-string">conflict -- -- -- The server is closing the active stream for this e</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">ntity because a new stream has been initiated that conflicts with the </code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-ellipsis">...</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="xmpp_stanza_error_conditions"></a>
+<a name="ERRORS"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">xmpp_stanza_error_conditions</h3>
+ <h3 class="epydoc">ERRORS</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'''</code><code class="variable-string"></code>
-<code class="variable-string">bad-request -- 400 -- modify -- The sender has sent XML that is malfor</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">med or that cannot be processed.</code>
-<code class="variable-string">conflict -- 409 -- cancel -- Access cannot be granted because an exist</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">ing resource or session exists with the same name or address.</code>
-<code class="variable-string">feature-not-implemented -- 501 -- cancel -- The feature requested is n</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">ot implemented by the recipient or server and therefore cannot be proc</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">essed.</code>
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl aborted</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">The receiving entity ac</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">knowledges an &lt;abort/&gt; element sent by the initiating entity; sent in </code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-string">reply to the &lt;abort/&gt; element.</code><code class="variable-quote">'</code><code class="variable-group">]</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">The data pro</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
<code class="variable-ellipsis">...</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="sasl_error_conditions"></a>
-<div>
+<a name="_errorcodes"></a>
+<div class="private">
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">sasl_error_conditions</h3>
+ <h3 class="epydoc">_errorcodes</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'''</code><code class="variable-string"></code>
-<code class="variable-string">aborted -- -- -- The receiving entity acknowledges an &lt;abort/&gt; eleme</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">nt sent by the initiating entity; sent in reply to the &lt;abort/&gt; elemen</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">t.</code>
-<code class="variable-string">incorrect-encoding -- -- -- The data provided by the initiating enti</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">ty could not be processed because the [BASE64]Josefsson, S., The Base1</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">6, Base32, and Base64 Data Encodings, July 2003. encoding is incorrect</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string"> (e.g., because the encoding does not adhere to the definition in Sect</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">302</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">redirect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">400</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unexpected-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">401</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">not-authorized</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">402</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">payment-required</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">403</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">forbidden</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">404</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">remote-server-not-found</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">405</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">not-allowed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">406</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">not-acceptable</code><code class="variable-quote">'</code><code class="variable-op">,</code>
<code class="variable-ellipsis">...</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="stream_exceptions"></a>
+<a name="STREAM_NOT_AUTHORIZED"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">stream_exceptions</h3>
+ <h3 class="epydoc">STREAM_NOT_AUTHORIZED</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">bad-format</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.BadFormat'&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">bad-namespace-prefix</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.BadNamespacePrefix'&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">conflict</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.Conflict'&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">connection-timeout</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.ConnectionTimeout'&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">host-gone</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.HostGone'&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">host-unknown</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.HostUnknown'&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">improper-addressing</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.ImproperAddressing'&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">internal-server-error</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.InternalServerError'<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-ellipsis">...</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams not-authorized</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERRORS"></a>
+<a name="STREAM_REMOTE_CONNECTION_FAILED"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERRORS</h3>
+ <h3 class="epydoc">STREAM_REMOTE_CONNECTION_FAILED</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl aborted</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">The receiving entity ac</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">knowledges an &lt;abort/&gt; element sent by the initiating entity; sent in </code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-string">reply to the &lt;abort/&gt; element.</code><code class="variable-quote">'</code><code class="variable-group">]</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">The data pro</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-<code class="variable-ellipsis">...</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams remote-connection-failed</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_BAD_REQUEST"></a>
+<a name="SASL_MECHANISM_TOO_WEAK"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_BAD_REQUEST</h3>
+ <h3 class="epydoc">SASL_MECHANISM_TOO_WEAK</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas bad-request</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl mechanism-too-weak</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_CONFLICT"></a>
+<a name="STREAM_XML_NOT_WELL_FORMED"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_CONFLICT</h3>
+ <h3 class="epydoc">STREAM_XML_NOT_WELL_FORMED</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas conflict</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams xml-not-well-formed</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_FEATURE_NOT_IMPLEMENTED"></a>
+<a name="ERR_JID_MALFORMED"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_FEATURE_NOT_IMPLEMENTED</h3>
+ <h3 class="epydoc">ERR_JID_MALFORMED</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas feature-not-implemented</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas jid-malformed</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_FORBIDDEN"></a>
+<a name="STREAM_SEE_OTHER_HOST"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_FORBIDDEN</h3>
+ <h3 class="epydoc">STREAM_SEE_OTHER_HOST</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas forbidden</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams see-other-host</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_GONE"></a>
+<a name="STREAM_BAD_NAMESPACE_PREFIX"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_GONE</h3>
+ <h3 class="epydoc">STREAM_BAD_NAMESPACE_PREFIX</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas gone</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams bad-namespace-prefix</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_INTERNAL_SERVER_ERROR"></a>
+<a name="ERR_SERVICE_UNAVAILABLE"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_INTERNAL_SERVER_ERROR</h3>
+ <h3 class="epydoc">ERR_SERVICE_UNAVAILABLE</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas internal-server-error</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas service-unavailable</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_ITEM_NOT_FOUND"></a>
+<a name="STREAM_CONNECTION_TIMEOUT"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_ITEM_NOT_FOUND</h3>
+ <h3 class="epydoc">STREAM_CONNECTION_TIMEOUT</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas item-not-found</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams connection-timeout</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_JID_MALFORMED"></a>
+<a name="STREAM_UNSUPPORTED_VERSION"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_JID_MALFORMED</h3>
+ <h3 class="epydoc">STREAM_UNSUPPORTED_VERSION</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas jid-malformed</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams unsupported-version</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_NOT_ACCEPTABLE"></a>
+<a name="STREAM_IMPROPER_ADDRESSING"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_NOT_ACCEPTABLE</h3>
+ <h3 class="epydoc">STREAM_IMPROPER_ADDRESSING</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-acceptable</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams improper-addressing</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_NOT_ALLOWED"></a>
+<a name="STREAM_UNDEFINED_CONDITION"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_NOT_ALLOWED</h3>
+ <h3 class="epydoc">STREAM_UNDEFINED_CONDITION</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-allowed</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams undefined-condition</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_NOT_AUTHORIZED"></a>
+<a name="SASL_NOT_AUTHORIZED"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_NOT_AUTHORIZED</h3>
+ <h3 class="epydoc">SASL_NOT_AUTHORIZED</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-authorized</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl not-authorized</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_PAYMENT_REQUIRED"></a>
+<a name="ERR_GONE"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_PAYMENT_REQUIRED</h3>
+ <h3 class="epydoc">ERR_GONE</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas payment-required</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas gone</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_RECIPIENT_UNAVAILABLE"></a>
+<a name="SASL_TEMPORARY_AUTH_FAILURE"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_RECIPIENT_UNAVAILABLE</h3>
+ <h3 class="epydoc">SASL_TEMPORARY_AUTH_FAILURE</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas recipient-unavailable</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl temporary-auth-failure</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_REDIRECT"></a>
+<a name="ERR_REMOTE_SERVER_NOT_FOUND"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_REDIRECT</h3>
+ <h3 class="epydoc">ERR_REMOTE_SERVER_NOT_FOUND</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas redirect</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas remote-server-not-found</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_REGISTRATION_REQUIRED"></a>
+<a name="ERR_UNEXPECTED_REQUEST"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_REGISTRATION_REQUIRED</h3>
+ <h3 class="epydoc">ERR_UNEXPECTED_REQUEST</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas registration-required</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas unexpected-request</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_REMOTE_SERVER_NOT_FOUND"></a>
+<a name="ERR_RECIPIENT_UNAVAILABLE"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_REMOTE_SERVER_NOT_FOUND</h3>
+ <h3 class="epydoc">ERR_RECIPIENT_UNAVAILABLE</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas remote-server-not-found</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas recipient-unavailable</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_REMOTE_SERVER_TIMEOUT"></a>
+<a name="ERR_CONFLICT"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_REMOTE_SERVER_TIMEOUT</h3>
+ <h3 class="epydoc">ERR_CONFLICT</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas remote-server-timeout</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas conflict</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_RESOURCE_CONSTRAINT"></a>
+<a name="STREAM_SYSTEM_SHUTDOWN"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_RESOURCE_CONSTRAINT</h3>
+ <h3 class="epydoc">STREAM_SYSTEM_SHUTDOWN</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas resource-constraint</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams system-shutdown</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_SERVICE_UNAVAILABLE"></a>
+<a name="STREAM_BAD_FORMAT"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_SERVICE_UNAVAILABLE</h3>
+ <h3 class="epydoc">STREAM_BAD_FORMAT</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas service-unavailable</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams bad-format</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
@@ -4941,37 +4947,37 @@ reply to the &lt;abort/&gt; element.'],
</dl>
</td></tr></table>
</div>
-<a name="ERR_UNDEFINED_CONDITION"></a>
+<a name="STREAM_INTERNAL_SERVER_ERROR"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_UNDEFINED_CONDITION</h3>
+ <h3 class="epydoc">STREAM_INTERNAL_SERVER_ERROR</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas undefined-condition</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams internal-server-error</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="ERR_UNEXPECTED_REQUEST"></a>
+<a name="ERR_NOT_AUTHORIZED"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">ERR_UNEXPECTED_REQUEST</h3>
+ <h3 class="epydoc">ERR_NOT_AUTHORIZED</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas unexpected-request</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-authorized</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
@@ -4995,145 +5001,109 @@ reply to the &lt;abort/&gt; element.'],
</dl>
</td></tr></table>
</div>
-<a name="SASL_INCORRECT_ENCODING"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">SASL_INCORRECT_ENCODING</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="SASL_INVALID_AUTHZID"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">SASL_INVALID_AUTHZID</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl invalid-authzid</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="SASL_INVALID_MECHANISM"></a>
+<a name="ERR_REGISTRATION_REQUIRED"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">SASL_INVALID_MECHANISM</h3>
+ <h3 class="epydoc">ERR_REGISTRATION_REQUIRED</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl invalid-mechanism</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas registration-required</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="SASL_MECHANISM_TOO_WEAK"></a>
+<a name="ERR_INTERNAL_SERVER_ERROR"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">SASL_MECHANISM_TOO_WEAK</h3>
+ <h3 class="epydoc">ERR_INTERNAL_SERVER_ERROR</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl mechanism-too-weak</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas internal-server-error</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="SASL_NOT_AUTHORIZED"></a>
+<a name="SASL_INCORRECT_ENCODING"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">SASL_NOT_AUTHORIZED</h3>
+ <h3 class="epydoc">SASL_INCORRECT_ENCODING</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl not-authorized</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="SASL_TEMPORARY_AUTH_FAILURE"></a>
+<a name="STREAM_HOST_GONE"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">SASL_TEMPORARY_AUTH_FAILURE</h3>
+ <h3 class="epydoc">STREAM_HOST_GONE</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl temporary-auth-failure</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams host-gone</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_BAD_FORMAT"></a>
+<a name="STREAM_POLICY_VIOLATION"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_BAD_FORMAT</h3>
+ <h3 class="epydoc">STREAM_POLICY_VIOLATION</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams bad-format</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams policy-violation</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_BAD_NAMESPACE_PREFIX"></a>
+<a name="STREAM_INVALID_XML"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_BAD_NAMESPACE_PREFIX</h3>
+ <h3 class="epydoc">STREAM_INVALID_XML</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams bad-namespace-prefix</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams invalid-xml</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
@@ -5157,91 +5127,91 @@ reply to the &lt;abort/&gt; element.'],
</dl>
</td></tr></table>
</div>
-<a name="STREAM_CONNECTION_TIMEOUT"></a>
+<a name="STREAM_RESOURCE_CONSTRAINT"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_CONNECTION_TIMEOUT</h3>
+ <h3 class="epydoc">STREAM_RESOURCE_CONSTRAINT</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams connection-timeout</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams resource-constraint</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_HOST_GONE"></a>
+<a name="STREAM_UNSUPPORTED_ENCODING"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_HOST_GONE</h3>
+ <h3 class="epydoc">STREAM_UNSUPPORTED_ENCODING</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams host-gone</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams unsupported-encoding</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_HOST_UNKNOWN"></a>
+<a name="ERR_NOT_ALLOWED"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_HOST_UNKNOWN</h3>
+ <h3 class="epydoc">ERR_NOT_ALLOWED</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams host-unknown</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-allowed</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_IMPROPER_ADDRESSING"></a>
+<a name="ERR_ITEM_NOT_FOUND"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_IMPROPER_ADDRESSING</h3>
+ <h3 class="epydoc">ERR_ITEM_NOT_FOUND</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams improper-addressing</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas item-not-found</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_INTERNAL_SERVER_ERROR"></a>
+<a name="ERR_NOT_ACCEPTABLE"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_INTERNAL_SERVER_ERROR</h3>
+ <h3 class="epydoc">ERR_NOT_ACCEPTABLE</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams internal-server-error</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas not-acceptable</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
@@ -5265,127 +5235,109 @@ reply to the &lt;abort/&gt; element.'],
</dl>
</td></tr></table>
</div>
-<a name="STREAM_INVALID_ID"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STREAM_INVALID_ID</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams invalid-id</code><code class="variable-quote">'</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
-<a name="STREAM_INVALID_NAMESPACE"></a>
+<a name="ERR_FEATURE_NOT_IMPLEMENTED"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_INVALID_NAMESPACE</h3>
+ <h3 class="epydoc">ERR_FEATURE_NOT_IMPLEMENTED</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams invalid-namespace</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas feature-not-implemented</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_INVALID_XML"></a>
+<a name="ERR_BAD_REQUEST"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_INVALID_XML</h3>
+ <h3 class="epydoc">ERR_BAD_REQUEST</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams invalid-xml</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas bad-request</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_NOT_AUTHORIZED"></a>
+<a name="STREAM_INVALID_ID"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_NOT_AUTHORIZED</h3>
+ <h3 class="epydoc">STREAM_INVALID_ID</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams not-authorized</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams invalid-id</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_POLICY_VIOLATION"></a>
+<a name="STREAM_HOST_UNKNOWN"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_POLICY_VIOLATION</h3>
+ <h3 class="epydoc">STREAM_HOST_UNKNOWN</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams policy-violation</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams host-unknown</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_REMOTE_CONNECTION_FAILED"></a>
+<a name="ERR_UNDEFINED_CONDITION"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_REMOTE_CONNECTION_FAILED</h3>
+ <h3 class="epydoc">ERR_UNDEFINED_CONDITION</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams remote-connection-failed</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas undefined-condition</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_RESOURCE_CONSTRAINT"></a>
+<a name="SASL_INVALID_MECHANISM"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_RESOURCE_CONSTRAINT</h3>
+ <h3 class="epydoc">SASL_INVALID_MECHANISM</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams resource-constraint</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl invalid-mechanism</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
@@ -5409,189 +5361,189 @@ reply to the &lt;abort/&gt; element.'],
</dl>
</td></tr></table>
</div>
-<a name="STREAM_SEE_OTHER_HOST"></a>
+<a name="ERR_RESOURCE_CONSTRAINT"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_SEE_OTHER_HOST</h3>
+ <h3 class="epydoc">ERR_RESOURCE_CONSTRAINT</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams see-other-host</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas resource-constraint</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_SYSTEM_SHUTDOWN"></a>
+<a name="ERR_REMOTE_SERVER_TIMEOUT"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_SYSTEM_SHUTDOWN</h3>
+ <h3 class="epydoc">ERR_REMOTE_SERVER_TIMEOUT</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams system-shutdown</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas remote-server-timeout</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_UNDEFINED_CONDITION"></a>
+<a name="SASL_INVALID_AUTHZID"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_UNDEFINED_CONDITION</h3>
+ <h3 class="epydoc">SASL_INVALID_AUTHZID</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams undefined-condition</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-sasl invalid-authzid</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_UNSUPPORTED_ENCODING"></a>
+<a name="ERR_PAYMENT_REQUIRED"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_UNSUPPORTED_ENCODING</h3>
+ <h3 class="epydoc">ERR_PAYMENT_REQUIRED</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams unsupported-encoding</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas payment-required</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_UNSUPPORTED_STANZA_TYPE"></a>
+<a name="STREAM_INVALID_NAMESPACE"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_UNSUPPORTED_STANZA_TYPE</h3>
+ <h3 class="epydoc">STREAM_INVALID_NAMESPACE</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams unsupported-stanza-type</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams invalid-namespace</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_UNSUPPORTED_VERSION"></a>
+<a name="ERR_REDIRECT"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_UNSUPPORTED_VERSION</h3>
+ <h3 class="epydoc">ERR_REDIRECT</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams unsupported-version</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas redirect</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="STREAM_XML_NOT_WELL_FORMED"></a>
+<a name="STREAM_UNSUPPORTED_STANZA_TYPE"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">STREAM_XML_NOT_WELL_FORMED</h3>
+ <h3 class="epydoc">STREAM_UNSUPPORTED_STANZA_TYPE</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams xml-not-well-formed</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-streams unsupported-stanza-type</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="__package__"></a>
+<a name="ERR_FORBIDDEN"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">__package__</h3>
+ <h3 class="epydoc">ERR_FORBIDDEN</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">nbxmpp</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">urn:ietf:params:xml:ns:xmpp-stanzas forbidden</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="_errorcodes"></a>
-<div class="private">
+<a name="stream_exceptions"></a>
+<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">_errorcodes</h3>
+ <h3 class="epydoc">stream_exceptions</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">302</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">redirect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">400</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unexpected-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">401</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">not-authorized</code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">402</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">payment-required</code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">403</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">forbidden</code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">404</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">remote-server-not-found</code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">405</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">not-allowed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">406</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">not-acceptable</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">bad-format</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.BadFormat'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">bad-namespace-prefix</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.BadNamespacePrefix'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">conflict</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.Conflict'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">connection-timeout</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.ConnectionTimeout'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">host-gone</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.HostGone'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">host-unknown</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.HostUnknown'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">improper-addressing</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.ImproperAddressing'&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">internal-server-error</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;class 'nbxmpp.protocol.InternalServerError'<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
<code class="variable-ellipsis">...</code>
</pre></td></tr></table>
</dd>
</dl>
</td></tr></table>
</div>
-<a name="name"></a>
+<a name="__package__"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
- <h3 class="epydoc">name</h3>
+ <h3 class="epydoc">__package__</h3>
<dl class="fields">
</dl>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-quote">'</code><code class="variable-string">SASL_TEMPORARY_AUTH_FAILURE</code><code class="variable-quote">'</code>
+<code class="variable-quote">'</code><code class="variable-string">nbxmpp</code><code class="variable-quote">'</code>
</pre></td></tr></table>
</dd>
</dl>
@@ -5629,7 +5581,7 @@ reply to the &lt;abort/&gt; element.'],
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol-pysrc.html b/doc/apidocs/nbxmpp.protocol-pysrc.html
index 63f88db..f657bb0 100644
--- a/doc/apidocs/nbxmpp.protocol-pysrc.html
+++ b/doc/apidocs/nbxmpp.protocol-pysrc.html
@@ -108,464 +108,704 @@
<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt id="link-20" class="py-name" targets="Variable nbxmpp.protocol.NS_AUTH=nbxmpp.protocol-module.html#NS_AUTH"><a title="nbxmpp.protocol.NS_AUTH" class="py-name" href="#" onclick="return doclink('link-20', 'NS_AUTH', 'link-20');">NS_AUTH</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:auth'</tt> </tt>
<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt id="link-21" class="py-name" targets="Variable nbxmpp.protocol.NS_AVATAR=nbxmpp.protocol-module.html#NS_AVATAR"><a title="nbxmpp.protocol.NS_AVATAR" class="py-name" href="#" onclick="return doclink('link-21', 'NS_AVATAR', 'link-21');">NS_AVATAR</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'</tt> </tt>
<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt id="link-22" class="py-name" targets="Variable nbxmpp.protocol.NS_BIND=nbxmpp.protocol-module.html#NS_BIND"><a title="nbxmpp.protocol.NS_BIND" class="py-name" href="#" onclick="return doclink('link-22', 'NS_BIND', 'link-22');">NS_BIND</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-bind'</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt id="link-23" class="py-name" targets="Variable nbxmpp.protocol.NS_BOB=nbxmpp.protocol-module.html#NS_BOB"><a title="nbxmpp.protocol.NS_BOB" class="py-name" href="#" onclick="return doclink('link-23', 'NS_BOB', 'link-23');">NS_BOB</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:bob'</tt> <tt class="py-comment"># XEP-0231</tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt id="link-24" class="py-name" targets="Variable nbxmpp.protocol.NS_BOOKMARKS=nbxmpp.protocol-module.html#NS_BOOKMARKS"><a title="nbxmpp.protocol.NS_BOOKMARKS" class="py-name" href="#" onclick="return doclink('link-24', 'NS_BOOKMARKS', 'link-24');">NS_BOOKMARKS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'storage:bookmarks'</tt> <tt class="py-comment"># XEP-0048</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt id="link-25" class="py-name" targets="Variable nbxmpp.protocol.NS_BROWSE=nbxmpp.protocol-module.html#NS_BROWSE"><a title="nbxmpp.protocol.NS_BROWSE" class="py-name" href="#" onclick="return doclink('link-25', 'NS_BROWSE', 'link-25');">NS_BROWSE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:browse'</tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt id="link-26" class="py-name" targets="Variable nbxmpp.protocol.NS_BROWSING=nbxmpp.protocol-module.html#NS_BROWSING"><a title="nbxmpp.protocol.NS_BROWSING" class="py-name" href="#" onclick="return doclink('link-26', 'NS_BROWSING', 'link-26');">NS_BROWSING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/browsing'</tt> <tt class="py-comment"># XEP-0195</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt id="link-27" class="py-name" targets="Variable nbxmpp.protocol.NS_BYTESTREAM=nbxmpp.protocol-module.html#NS_BYTESTREAM"><a title="nbxmpp.protocol.NS_BYTESTREAM" class="py-name" href="#" onclick="return doclink('link-27', 'NS_BYTESTREAM', 'link-27');">NS_BYTESTREAM</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/bytestreams'</tt> <tt class="py-comment"># XEP-0065</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt id="link-28" class="py-name" targets="Variable nbxmpp.protocol.NS_CAPS=nbxmpp.protocol-module.html#NS_CAPS"><a title="nbxmpp.protocol.NS_CAPS" class="py-name" href="#" onclick="return doclink('link-28', 'NS_CAPS', 'link-28');">NS_CAPS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/caps'</tt> <tt class="py-comment"># XEP-0115</tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt id="link-29" class="py-name" targets="Variable nbxmpp.protocol.NS_CAPTCHA=nbxmpp.protocol-module.html#NS_CAPTCHA"><a title="nbxmpp.protocol.NS_CAPTCHA" class="py-name" href="#" onclick="return doclink('link-29', 'NS_CAPTCHA', 'link-29');">NS_CAPTCHA</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:captcha'</tt> <tt class="py-comment"># XEP-0158</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt id="link-30" class="py-name" targets="Variable nbxmpp.protocol.NS_CARBONS=nbxmpp.protocol-module.html#NS_CARBONS"><a title="nbxmpp.protocol.NS_CARBONS" class="py-name" href="#" onclick="return doclink('link-30', 'NS_CARBONS', 'link-30');">NS_CARBONS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:carbons:1'</tt> <tt class="py-comment"># XEP-0280</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt id="link-31" class="py-name" targets="Variable nbxmpp.protocol.NS_CHATSTATES=nbxmpp.protocol-module.html#NS_CHATSTATES"><a title="nbxmpp.protocol.NS_CHATSTATES" class="py-name" href="#" onclick="return doclink('link-31', 'NS_CHATSTATES', 'link-31');">NS_CHATSTATES</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/chatstates'</tt> <tt class="py-comment"># XEP-0085</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt id="link-32" class="py-name" targets="Variable nbxmpp.protocol.NS_CHATTING=nbxmpp.protocol-module.html#NS_CHATTING"><a title="nbxmpp.protocol.NS_CHATTING" class="py-name" href="#" onclick="return doclink('link-32', 'NS_CHATTING', 'link-32');">NS_CHATTING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/chatting'</tt> <tt class="py-comment"># XEP-0194</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt id="link-33" class="py-name" targets="Variable nbxmpp.protocol.NS_CLIENT=nbxmpp.protocol-module.html#NS_CLIENT"><a title="nbxmpp.protocol.NS_CLIENT" class="py-name" href="#" onclick="return doclink('link-33', 'NS_CLIENT', 'link-33');">NS_CLIENT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:client'</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt id="link-34" class="py-name" targets="Variable nbxmpp.protocol.NS_CONDITIONS=nbxmpp.protocol-module.html#NS_CONDITIONS"><a title="nbxmpp.protocol.NS_CONDITIONS" class="py-name" href="#" onclick="return doclink('link-34', 'NS_CONDITIONS', 'link-34');">NS_CONDITIONS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:muc:conditions:0'</tt> <tt class="py-comment"># XEP-0306</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt id="link-35" class="py-name" targets="Variable nbxmpp.protocol.NS_COMMANDS=nbxmpp.protocol-module.html#NS_COMMANDS"><a title="nbxmpp.protocol.NS_COMMANDS" class="py-name" href="#" onclick="return doclink('link-35', 'NS_COMMANDS', 'link-35');">NS_COMMANDS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/commands'</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt id="link-36" class="py-name" targets="Variable nbxmpp.protocol.NS_COMPONENT_ACCEPT=nbxmpp.protocol-module.html#NS_COMPONENT_ACCEPT"><a title="nbxmpp.protocol.NS_COMPONENT_ACCEPT" class="py-name" href="#" onclick="return doclink('link-36', 'NS_COMPONENT_ACCEPT', 'link-36');">NS_COMPONENT_ACCEPT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:component:accept'</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt id="link-37" class="py-name" targets="Variable nbxmpp.protocol.NS_COMPONENT_1=nbxmpp.protocol-module.html#NS_COMPONENT_1"><a title="nbxmpp.protocol.NS_COMPONENT_1" class="py-name" href="#" onclick="return doclink('link-37', 'NS_COMPONENT_1', 'link-37');">NS_COMPONENT_1</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabberd.jabberstudio.org/ns/component/1.0'</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt id="link-38" class="py-name" targets="Variable nbxmpp.protocol.NS_COMPRESS=nbxmpp.protocol-module.html#NS_COMPRESS"><a title="nbxmpp.protocol.NS_COMPRESS" class="py-name" href="#" onclick="return doclink('link-38', 'NS_COMPRESS', 'link-38');">NS_COMPRESS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/compress'</tt> <tt class="py-comment"># XEP-0138</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt id="link-39" class="py-name" targets="Variable nbxmpp.protocol.NS_CONFERENCE=nbxmpp.protocol-module.html#NS_CONFERENCE"><a title="nbxmpp.protocol.NS_CONFERENCE" class="py-name" href="#" onclick="return doclink('link-39', 'NS_CONFERENCE', 'link-39');">NS_CONFERENCE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:conference'</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt id="link-40" class="py-name" targets="Variable nbxmpp.protocol.NS_DATA=nbxmpp.protocol-module.html#NS_DATA"><a title="nbxmpp.protocol.NS_DATA" class="py-name" href="#" onclick="return doclink('link-40', 'NS_DATA', 'link-40');">NS_DATA</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:data'</tt> <tt class="py-comment"># XEP-0004</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt id="link-41" class="py-name" targets="Variable nbxmpp.protocol.NS_DATA_MEDIA=nbxmpp.protocol-module.html#NS_DATA_MEDIA"><a title="nbxmpp.protocol.NS_DATA_MEDIA" class="py-name" href="#" onclick="return doclink('link-41', 'NS_DATA_MEDIA', 'link-41');">NS_DATA_MEDIA</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:media-element'</tt> <tt class="py-comment"># XEP-0221</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt id="link-42" class="py-name" targets="Variable nbxmpp.protocol.NS_DELAY=nbxmpp.protocol-module.html#NS_DELAY"><a title="nbxmpp.protocol.NS_DELAY" class="py-name" href="#" onclick="return doclink('link-42', 'NS_DELAY', 'link-42');">NS_DELAY</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:delay'</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt id="link-43" class="py-name" targets="Variable nbxmpp.protocol.NS_DELAY2=nbxmpp.protocol-module.html#NS_DELAY2"><a title="nbxmpp.protocol.NS_DELAY2" class="py-name" href="#" onclick="return doclink('link-43', 'NS_DELAY2', 'link-43');">NS_DELAY2</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:delay'</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt id="link-44" class="py-name" targets="Variable nbxmpp.protocol.NS_DIALBACK=nbxmpp.protocol-module.html#NS_DIALBACK"><a title="nbxmpp.protocol.NS_DIALBACK" class="py-name" href="#" onclick="return doclink('link-44', 'NS_DIALBACK', 'link-44');">NS_DIALBACK</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:server:dialback'</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt id="link-45" class="py-name" targets="Variable nbxmpp.protocol.NS_DISCO=nbxmpp.protocol-module.html#NS_DISCO"><a title="nbxmpp.protocol.NS_DISCO" class="py-name" href="#" onclick="return doclink('link-45', 'NS_DISCO', 'link-45');">NS_DISCO</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/disco'</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt id="link-46" class="py-name" targets="Variable nbxmpp.protocol.NS_DISCO_INFO=nbxmpp.protocol-module.html#NS_DISCO_INFO"><a title="nbxmpp.protocol.NS_DISCO_INFO" class="py-name" href="#" onclick="return doclink('link-46', 'NS_DISCO_INFO', 'link-46');">NS_DISCO_INFO</a></tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="nbxmpp.protocol.NS_DISCO" class="py-name" href="#" onclick="return doclink('link-47', 'NS_DISCO', 'link-45');">NS_DISCO</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#info'</tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt id="link-48" class="py-name" targets="Variable nbxmpp.protocol.NS_DISCO_ITEMS=nbxmpp.protocol-module.html#NS_DISCO_ITEMS"><a title="nbxmpp.protocol.NS_DISCO_ITEMS" class="py-name" href="#" onclick="return doclink('link-48', 'NS_DISCO_ITEMS', 'link-48');">NS_DISCO_ITEMS</a></tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name"><a title="nbxmpp.protocol.NS_DISCO" class="py-name" href="#" onclick="return doclink('link-49', 'NS_DISCO', 'link-45');">NS_DISCO</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#items'</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt id="link-50" class="py-name" targets="Variable nbxmpp.protocol.NS_ENCRYPTED=nbxmpp.protocol-module.html#NS_ENCRYPTED"><a title="nbxmpp.protocol.NS_ENCRYPTED" class="py-name" href="#" onclick="return doclink('link-50', 'NS_ENCRYPTED', 'link-50');">NS_ENCRYPTED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:encrypted'</tt> <tt class="py-comment"># XEP-0027</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt id="link-51" class="py-name" targets="Variable nbxmpp.protocol.NS_ESESSION=nbxmpp.protocol-module.html#NS_ESESSION"><a title="nbxmpp.protocol.NS_ESESSION" class="py-name" href="#" onclick="return doclink('link-51', 'NS_ESESSION', 'link-51');">NS_ESESSION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.xmpp.org/extensions/xep-0116.html#ns'</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt id="link-52" class="py-name" targets="Variable nbxmpp.protocol.NS_ESESSION_INIT=nbxmpp.protocol-module.html#NS_ESESSION_INIT"><a title="nbxmpp.protocol.NS_ESESSION_INIT" class="py-name" href="#" onclick="return doclink('link-52', 'NS_ESESSION_INIT', 'link-52');">NS_ESESSION_INIT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.xmpp.org/extensions/xep-0116.html#ns-init'</tt> <tt class="py-comment"># XEP-0116</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt id="link-53" class="py-name" targets="Variable nbxmpp.protocol.NS_EVENT=nbxmpp.protocol-module.html#NS_EVENT"><a title="nbxmpp.protocol.NS_EVENT" class="py-name" href="#" onclick="return doclink('link-53', 'NS_EVENT', 'link-53');">NS_EVENT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:event'</tt> <tt class="py-comment"># XEP-0022</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt id="link-54" class="py-name" targets="Variable nbxmpp.protocol.NS_FEATURE=nbxmpp.protocol-module.html#NS_FEATURE"><a title="nbxmpp.protocol.NS_FEATURE" class="py-name" href="#" onclick="return doclink('link-54', 'NS_FEATURE', 'link-54');">NS_FEATURE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/feature-neg'</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt id="link-55" class="py-name" targets="Variable nbxmpp.protocol.NS_FILE=nbxmpp.protocol-module.html#NS_FILE"><a title="nbxmpp.protocol.NS_FILE" class="py-name" href="#" onclick="return doclink('link-55', 'NS_FILE', 'link-55');">NS_FILE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/si/profile/file-transfer'</tt> <tt class="py-comment"># XEP-0096</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt id="link-56" class="py-name" targets="Variable nbxmpp.protocol.NS_FORWARD=nbxmpp.protocol-module.html#NS_FORWARD"><a title="nbxmpp.protocol.NS_FORWARD" class="py-name" href="#" onclick="return doclink('link-56', 'NS_FORWARD', 'link-56');">NS_FORWARD</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:forward:0'</tt> <tt class="py-comment"># XEP-0297</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt id="link-57" class="py-name" targets="Variable nbxmpp.protocol.NS_GAMING=nbxmpp.protocol-module.html#NS_GAMING"><a title="nbxmpp.protocol.NS_GAMING" class="py-name" href="#" onclick="return doclink('link-57', 'NS_GAMING', 'link-57');">NS_GAMING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/gaming'</tt> <tt class="py-comment"># XEP-0196</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt id="link-58" class="py-name" targets="Variable nbxmpp.protocol.NS_GATEWAY=nbxmpp.protocol-module.html#NS_GATEWAY"><a title="nbxmpp.protocol.NS_GATEWAY" class="py-name" href="#" onclick="return doclink('link-58', 'NS_GATEWAY', 'link-58');">NS_GATEWAY</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:gateway'</tt> <tt class="py-comment"># XEP-0100</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt id="link-59" class="py-name" targets="Variable nbxmpp.protocol.NS_GEOLOC=nbxmpp.protocol-module.html#NS_GEOLOC"><a title="nbxmpp.protocol.NS_GEOLOC" class="py-name" href="#" onclick="return doclink('link-59', 'NS_GEOLOC', 'link-59');">NS_GEOLOC</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/geoloc'</tt> <tt class="py-comment"># XEP-0080</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt id="link-60" class="py-name" targets="Variable nbxmpp.protocol.NS_GROUPCHAT=nbxmpp.protocol-module.html#NS_GROUPCHAT"><a title="nbxmpp.protocol.NS_GROUPCHAT" class="py-name" href="#" onclick="return doclink('link-60', 'NS_GROUPCHAT', 'link-60');">NS_GROUPCHAT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'gc-1.0'</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt id="link-61" class="py-name" targets="Variable nbxmpp.protocol.NS_HTTP_AUTH=nbxmpp.protocol-module.html#NS_HTTP_AUTH"><a title="nbxmpp.protocol.NS_HTTP_AUTH" class="py-name" href="#" onclick="return doclink('link-61', 'NS_HTTP_AUTH', 'link-61');">NS_HTTP_AUTH</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/http-auth'</tt> <tt class="py-comment"># XEP-0070</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt id="link-62" class="py-name" targets="Variable nbxmpp.protocol.NS_HTTP_BIND=nbxmpp.protocol-module.html#NS_HTTP_BIND"><a title="nbxmpp.protocol.NS_HTTP_BIND" class="py-name" href="#" onclick="return doclink('link-62', 'NS_HTTP_BIND', 'link-62');">NS_HTTP_BIND</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/httpbind'</tt> <tt class="py-comment"># XEP-0124</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt id="link-63" class="py-name" targets="Variable nbxmpp.protocol.NS_IBB=nbxmpp.protocol-module.html#NS_IBB"><a title="nbxmpp.protocol.NS_IBB" class="py-name" href="#" onclick="return doclink('link-63', 'NS_IBB', 'link-63');">NS_IBB</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/ibb'</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt id="link-64" class="py-name" targets="Variable nbxmpp.protocol.NS_INVISIBLE=nbxmpp.protocol-module.html#NS_INVISIBLE"><a title="nbxmpp.protocol.NS_INVISIBLE" class="py-name" href="#" onclick="return doclink('link-64', 'NS_INVISIBLE', 'link-64');">NS_INVISIBLE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'presence-invisible'</tt> <tt class="py-comment"># Jabberd2</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt id="link-65" class="py-name" targets="Variable nbxmpp.protocol.NS_IQ=nbxmpp.protocol-module.html#NS_IQ"><a title="nbxmpp.protocol.NS_IQ" class="py-name" href="#" onclick="return doclink('link-65', 'NS_IQ', 'link-65');">NS_IQ</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'iq'</tt> <tt class="py-comment"># Jabberd2</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt id="link-66" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE=nbxmpp.protocol-module.html#NS_JINGLE"><a title="nbxmpp.protocol.NS_JINGLE" class="py-name" href="#" onclick="return doclink('link-66', 'NS_JINGLE', 'link-66');">NS_JINGLE</a></tt> <tt class="py-op">=</tt><tt class="py-string">'urn:xmpp:jingle:1'</tt> <tt class="py-comment"># XEP-0166</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt id="link-67" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_ERRORS=nbxmpp.protocol-module.html#NS_JINGLE_ERRORS"><a title="nbxmpp.protocol.NS_JINGLE_ERRORS" class="py-name" href="#" onclick="return doclink('link-67', 'NS_JINGLE_ERRORS', 'link-67');">NS_JINGLE_ERRORS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:errors:1'</tt> <tt class="py-comment"># XEP-0166</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt id="link-68" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_RTP=nbxmpp.protocol-module.html#NS_JINGLE_RTP"><a title="nbxmpp.protocol.NS_JINGLE_RTP" class="py-name" href="#" onclick="return doclink('link-68', 'NS_JINGLE_RTP', 'link-68');">NS_JINGLE_RTP</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:apps:rtp:1'</tt> <tt class="py-comment"># XEP-0167</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt id="link-69" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_RTP_AUDIO=nbxmpp.protocol-module.html#NS_JINGLE_RTP_AUDIO"><a title="nbxmpp.protocol.NS_JINGLE_RTP_AUDIO" class="py-name" href="#" onclick="return doclink('link-69', 'NS_JINGLE_RTP_AUDIO', 'link-69');">NS_JINGLE_RTP_AUDIO</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:apps:rtp:audio'</tt> <tt class="py-comment"># XEP-0167</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt id="link-70" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_RTP_VIDEO=nbxmpp.protocol-module.html#NS_JINGLE_RTP_VIDEO"><a title="nbxmpp.protocol.NS_JINGLE_RTP_VIDEO" class="py-name" href="#" onclick="return doclink('link-70', 'NS_JINGLE_RTP_VIDEO', 'link-70');">NS_JINGLE_RTP_VIDEO</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:apps:rtp:video'</tt> <tt class="py-comment"># XEP-0167</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt id="link-71" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_FILE_TRANSFER=nbxmpp.protocol-module.html#NS_JINGLE_FILE_TRANSFER"><a title="nbxmpp.protocol.NS_JINGLE_FILE_TRANSFER" class="py-name" href="#" onclick="return doclink('link-71', 'NS_JINGLE_FILE_TRANSFER', 'link-71');">NS_JINGLE_FILE_TRANSFER</a></tt> <tt class="py-op">=</tt><tt class="py-string">'urn:xmpp:jingle:apps:file-transfer:3'</tt> <tt class="py-comment"># XEP-0234</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt id="link-72" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_XTLS=nbxmpp.protocol-module.html#NS_JINGLE_XTLS"><a title="nbxmpp.protocol.NS_JINGLE_XTLS" class="py-name" href="#" onclick="return doclink('link-72', 'NS_JINGLE_XTLS', 'link-72');">NS_JINGLE_XTLS</a></tt><tt class="py-op">=</tt><tt class="py-string">'urn:xmpp:jingle:security:xtls:0'</tt> <tt class="py-comment"># XTLS: EXPERIMENTAL security layer of jingle</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt id="link-73" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_RAW_UDP=nbxmpp.protocol-module.html#NS_JINGLE_RAW_UDP"><a title="nbxmpp.protocol.NS_JINGLE_RAW_UDP" class="py-name" href="#" onclick="return doclink('link-73', 'NS_JINGLE_RAW_UDP', 'link-73');">NS_JINGLE_RAW_UDP</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:transports:raw-udp:1'</tt> <tt class="py-comment"># XEP-0177</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt id="link-74" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_ICE_UDP=nbxmpp.protocol-module.html#NS_JINGLE_ICE_UDP"><a title="nbxmpp.protocol.NS_JINGLE_ICE_UDP" class="py-name" href="#" onclick="return doclink('link-74', 'NS_JINGLE_ICE_UDP', 'link-74');">NS_JINGLE_ICE_UDP</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:transports:ice-udp:1'</tt> <tt class="py-comment"># XEP-0176</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt id="link-75" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_BYTESTREAM=nbxmpp.protocol-module.html#NS_JINGLE_BYTESTREAM"><a title="nbxmpp.protocol.NS_JINGLE_BYTESTREAM" class="py-name" href="#" onclick="return doclink('link-75', 'NS_JINGLE_BYTESTREAM', 'link-75');">NS_JINGLE_BYTESTREAM</a></tt> <tt class="py-op">=</tt><tt class="py-string">'urn:xmpp:jingle:transports:s5b:1'</tt> <tt class="py-comment"># XEP-0260</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt id="link-76" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_IBB=nbxmpp.protocol-module.html#NS_JINGLE_IBB"><a title="nbxmpp.protocol.NS_JINGLE_IBB" class="py-name" href="#" onclick="return doclink('link-76', 'NS_JINGLE_IBB', 'link-76');">NS_JINGLE_IBB</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:transports:ibb:1'</tt> <tt class="py-comment"># XEP-0261</tt> </tt>
-<a name="L100"></a><tt class="py-lineno"> 100</tt> <tt class="py-line"><tt id="link-77" class="py-name" targets="Variable nbxmpp.protocol.NS_LAST=nbxmpp.protocol-module.html#NS_LAST"><a title="nbxmpp.protocol.NS_LAST" class="py-name" href="#" onclick="return doclink('link-77', 'NS_LAST', 'link-77');">NS_LAST</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:last'</tt> </tt>
-<a name="L101"></a><tt class="py-lineno"> 101</tt> <tt class="py-line"><tt id="link-78" class="py-name" targets="Variable nbxmpp.protocol.NS_LOCATION=nbxmpp.protocol-module.html#NS_LOCATION"><a title="nbxmpp.protocol.NS_LOCATION" class="py-name" href="#" onclick="return doclink('link-78', 'NS_LOCATION', 'link-78');">NS_LOCATION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/geoloc'</tt> <tt class="py-comment"># XEP-0080</tt> </tt>
-<a name="L102"></a><tt class="py-lineno"> 102</tt> <tt class="py-line"><tt id="link-79" class="py-name" targets="Variable nbxmpp.protocol.NS_MESSAGE=nbxmpp.protocol-module.html#NS_MESSAGE"><a title="nbxmpp.protocol.NS_MESSAGE" class="py-name" href="#" onclick="return doclink('link-79', 'NS_MESSAGE', 'link-79');">NS_MESSAGE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'message'</tt> <tt class="py-comment"># Jabberd2</tt> </tt>
-<a name="L103"></a><tt class="py-lineno"> 103</tt> <tt class="py-line"><tt id="link-80" class="py-name" targets="Variable nbxmpp.protocol.NS_MOOD=nbxmpp.protocol-module.html#NS_MOOD"><a title="nbxmpp.protocol.NS_MOOD" class="py-name" href="#" onclick="return doclink('link-80', 'NS_MOOD', 'link-80');">NS_MOOD</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/mood'</tt> <tt class="py-comment"># XEP-0107</tt> </tt>
-<a name="L104"></a><tt class="py-lineno"> 104</tt> <tt class="py-line"><tt id="link-81" class="py-name" targets="Variable nbxmpp.protocol.NS_MUC=nbxmpp.protocol-module.html#NS_MUC"><a title="nbxmpp.protocol.NS_MUC" class="py-name" href="#" onclick="return doclink('link-81', 'NS_MUC', 'link-81');">NS_MUC</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/muc'</tt> </tt>
-<a name="L105"></a><tt class="py-lineno"> 105</tt> <tt class="py-line"><tt id="link-82" class="py-name" targets="Variable nbxmpp.protocol.NS_MUC_USER=nbxmpp.protocol-module.html#NS_MUC_USER"><a title="nbxmpp.protocol.NS_MUC_USER" class="py-name" href="#" onclick="return doclink('link-82', 'NS_MUC_USER', 'link-82');">NS_MUC_USER</a></tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name"><a title="nbxmpp.protocol.NS_MUC" class="py-name" href="#" onclick="return doclink('link-83', 'NS_MUC', 'link-81');">NS_MUC</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#user'</tt> </tt>
-<a name="L106"></a><tt class="py-lineno"> 106</tt> <tt class="py-line"><tt id="link-84" class="py-name" targets="Variable nbxmpp.protocol.NS_MUC_ADMIN=nbxmpp.protocol-module.html#NS_MUC_ADMIN"><a title="nbxmpp.protocol.NS_MUC_ADMIN" class="py-name" href="#" onclick="return doclink('link-84', 'NS_MUC_ADMIN', 'link-84');">NS_MUC_ADMIN</a></tt> <tt class="py-op">=</tt> <tt id="link-85" class="py-name"><a title="nbxmpp.protocol.NS_MUC" class="py-name" href="#" onclick="return doclink('link-85', 'NS_MUC', 'link-81');">NS_MUC</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#admin'</tt> </tt>
-<a name="L107"></a><tt class="py-lineno"> 107</tt> <tt class="py-line"><tt id="link-86" class="py-name" targets="Variable nbxmpp.protocol.NS_MUC_OWNER=nbxmpp.protocol-module.html#NS_MUC_OWNER"><a title="nbxmpp.protocol.NS_MUC_OWNER" class="py-name" href="#" onclick="return doclink('link-86', 'NS_MUC_OWNER', 'link-86');">NS_MUC_OWNER</a></tt> <tt class="py-op">=</tt> <tt id="link-87" class="py-name"><a title="nbxmpp.protocol.NS_MUC" class="py-name" href="#" onclick="return doclink('link-87', 'NS_MUC', 'link-81');">NS_MUC</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#owner'</tt> </tt>
-<a name="L108"></a><tt class="py-lineno"> 108</tt> <tt class="py-line"><tt id="link-88" class="py-name" targets="Variable nbxmpp.protocol.NS_MUC_UNIQUE=nbxmpp.protocol-module.html#NS_MUC_UNIQUE"><a title="nbxmpp.protocol.NS_MUC_UNIQUE" class="py-name" href="#" onclick="return doclink('link-88', 'NS_MUC_UNIQUE', 'link-88');">NS_MUC_UNIQUE</a></tt> <tt class="py-op">=</tt> <tt id="link-89" class="py-name"><a title="nbxmpp.protocol.NS_MUC" class="py-name" href="#" onclick="return doclink('link-89', 'NS_MUC', 'link-81');">NS_MUC</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#unique'</tt> </tt>
-<a name="L109"></a><tt class="py-lineno"> 109</tt> <tt class="py-line"><tt id="link-90" class="py-name" targets="Variable nbxmpp.protocol.NS_MUC_CONFIG=nbxmpp.protocol-module.html#NS_MUC_CONFIG"><a title="nbxmpp.protocol.NS_MUC_CONFIG" class="py-name" href="#" onclick="return doclink('link-90', 'NS_MUC_CONFIG', 'link-90');">NS_MUC_CONFIG</a></tt> <tt class="py-op">=</tt> <tt id="link-91" class="py-name"><a title="nbxmpp.protocol.NS_MUC" class="py-name" href="#" onclick="return doclink('link-91', 'NS_MUC', 'link-81');">NS_MUC</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#roomconfig'</tt> </tt>
-<a name="L110"></a><tt class="py-lineno"> 110</tt> <tt class="py-line"><tt id="link-92" class="py-name" targets="Variable nbxmpp.protocol.NS_NICK=nbxmpp.protocol-module.html#NS_NICK"><a title="nbxmpp.protocol.NS_NICK" class="py-name" href="#" onclick="return doclink('link-92', 'NS_NICK', 'link-92');">NS_NICK</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/nick'</tt> <tt class="py-comment"># XEP-0172</tt> </tt>
-<a name="L111"></a><tt class="py-lineno"> 111</tt> <tt class="py-line"><tt id="link-93" class="py-name" targets="Variable nbxmpp.protocol.NS_OFFLINE=nbxmpp.protocol-module.html#NS_OFFLINE"><a title="nbxmpp.protocol.NS_OFFLINE" class="py-name" href="#" onclick="return doclink('link-93', 'NS_OFFLINE', 'link-93');">NS_OFFLINE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.jabber.org/jeps/jep-0030.html'</tt> <tt class="py-comment"># XEP-0013</tt> </tt>
-<a name="L112"></a><tt class="py-lineno"> 112</tt> <tt class="py-line"><tt id="link-94" class="py-name" targets="Variable nbxmpp.protocol.NS_PHYSLOC=nbxmpp.protocol-module.html#NS_PHYSLOC"><a title="nbxmpp.protocol.NS_PHYSLOC" class="py-name" href="#" onclick="return doclink('link-94', 'NS_PHYSLOC', 'link-94');">NS_PHYSLOC</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/physloc'</tt> <tt class="py-comment"># XEP-0112</tt> </tt>
-<a name="L113"></a><tt class="py-lineno"> 113</tt> <tt class="py-line"><tt id="link-95" class="py-name" targets="Variable nbxmpp.protocol.NS_PING=nbxmpp.protocol-module.html#NS_PING"><a title="nbxmpp.protocol.NS_PING" class="py-name" href="#" onclick="return doclink('link-95', 'NS_PING', 'link-95');">NS_PING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:ping'</tt> <tt class="py-comment"># XEP-0199</tt> </tt>
-<a name="L114"></a><tt class="py-lineno"> 114</tt> <tt class="py-line"><tt id="link-96" class="py-name" targets="Variable nbxmpp.protocol.NS_PRESENCE=nbxmpp.protocol-module.html#NS_PRESENCE"><a title="nbxmpp.protocol.NS_PRESENCE" class="py-name" href="#" onclick="return doclink('link-96', 'NS_PRESENCE', 'link-96');">NS_PRESENCE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'presence'</tt> <tt class="py-comment"># Jabberd2</tt> </tt>
-<a name="L115"></a><tt class="py-lineno"> 115</tt> <tt class="py-line"><tt id="link-97" class="py-name" targets="Variable nbxmpp.protocol.NS_PRIVACY=nbxmpp.protocol-module.html#NS_PRIVACY"><a title="nbxmpp.protocol.NS_PRIVACY" class="py-name" href="#" onclick="return doclink('link-97', 'NS_PRIVACY', 'link-97');">NS_PRIVACY</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:privacy'</tt> </tt>
-<a name="L116"></a><tt class="py-lineno"> 116</tt> <tt class="py-line"><tt id="link-98" class="py-name" targets="Variable nbxmpp.protocol.NS_PRIVATE=nbxmpp.protocol-module.html#NS_PRIVATE"><a title="nbxmpp.protocol.NS_PRIVATE" class="py-name" href="#" onclick="return doclink('link-98', 'NS_PRIVATE', 'link-98');">NS_PRIVATE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:private'</tt> </tt>
-<a name="L117"></a><tt class="py-lineno"> 117</tt> <tt class="py-line"><tt id="link-99" class="py-name" targets="Variable nbxmpp.protocol.NS_PROFILE=nbxmpp.protocol-module.html#NS_PROFILE"><a title="nbxmpp.protocol.NS_PROFILE" class="py-name" href="#" onclick="return doclink('link-99', 'NS_PROFILE', 'link-99');">NS_PROFILE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/profile'</tt> <tt class="py-comment"># XEP-0154</tt> </tt>
-<a name="L118"></a><tt class="py-lineno"> 118</tt> <tt class="py-line"><tt id="link-100" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBSUB=nbxmpp.protocol-module.html#NS_PUBSUB"><a title="nbxmpp.protocol.NS_PUBSUB" class="py-name" href="#" onclick="return doclink('link-100', 'NS_PUBSUB', 'link-100');">NS_PUBSUB</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/pubsub'</tt> <tt class="py-comment"># XEP-0060</tt> </tt>
-<a name="L119"></a><tt class="py-lineno"> 119</tt> <tt class="py-line"><tt id="link-101" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBSUB_EVENT=nbxmpp.protocol-module.html#NS_PUBSUB_EVENT"><a title="nbxmpp.protocol.NS_PUBSUB_EVENT" class="py-name" href="#" onclick="return doclink('link-101', 'NS_PUBSUB_EVENT', 'link-101');">NS_PUBSUB_EVENT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/pubsub#event'</tt> </tt>
-<a name="L120"></a><tt class="py-lineno"> 120</tt> <tt class="py-line"><tt id="link-102" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBSUB_PUBLISH_OPTIONS=nbxmpp.protocol-module.html#NS_PUBSUB_PUBLISH_OPTIONS"><a title="nbxmpp.protocol.NS_PUBSUB_PUBLISH_OPTIONS" class="py-name" href="#" onclick="return doclink('link-102', 'NS_PUBSUB_PUBLISH_OPTIONS', 'link-102');">NS_PUBSUB_PUBLISH_OPTIONS</a></tt> <tt class="py-op">=</tt> <tt id="link-103" class="py-name"><a title="nbxmpp.protocol.NS_PUBSUB" class="py-name" href="#" onclick="return doclink('link-103', 'NS_PUBSUB', 'link-100');">NS_PUBSUB</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#publish-options'</tt> <tt class="py-comment"># XEP-0060</tt> </tt>
-<a name="L121"></a><tt class="py-lineno"> 121</tt> <tt class="py-line"><tt id="link-104" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBSUB_OWNER=nbxmpp.protocol-module.html#NS_PUBSUB_OWNER"><a title="nbxmpp.protocol.NS_PUBSUB_OWNER" class="py-name" href="#" onclick="return doclink('link-104', 'NS_PUBSUB_OWNER', 'link-104');">NS_PUBSUB_OWNER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/pubsub#owner'</tt> <tt class="py-comment"># XEP-0060</tt> </tt>
-<a name="L122"></a><tt class="py-lineno"> 122</tt> <tt class="py-line"><tt id="link-105" class="py-name" targets="Variable nbxmpp.protocol.NS_REGISTER=nbxmpp.protocol-module.html#NS_REGISTER"><a title="nbxmpp.protocol.NS_REGISTER" class="py-name" href="#" onclick="return doclink('link-105', 'NS_REGISTER', 'link-105');">NS_REGISTER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:register'</tt> </tt>
-<a name="L123"></a><tt class="py-lineno"> 123</tt> <tt class="py-line"><tt id="link-106" class="py-name" targets="Variable nbxmpp.protocol.NS_ROSTER=nbxmpp.protocol-module.html#NS_ROSTER"><a title="nbxmpp.protocol.NS_ROSTER" class="py-name" href="#" onclick="return doclink('link-106', 'NS_ROSTER', 'link-106');">NS_ROSTER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:roster'</tt> </tt>
-<a name="L124"></a><tt class="py-lineno"> 124</tt> <tt class="py-line"><tt id="link-107" class="py-name" targets="Variable nbxmpp.protocol.NS_ROSTERNOTES=nbxmpp.protocol-module.html#NS_ROSTERNOTES"><a title="nbxmpp.protocol.NS_ROSTERNOTES" class="py-name" href="#" onclick="return doclink('link-107', 'NS_ROSTERNOTES', 'link-107');">NS_ROSTERNOTES</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'storage:rosternotes'</tt> </tt>
-<a name="L125"></a><tt class="py-lineno"> 125</tt> <tt class="py-line"><tt id="link-108" class="py-name" targets="Variable nbxmpp.protocol.NS_ROSTERX=nbxmpp.protocol-module.html#NS_ROSTERX"><a title="nbxmpp.protocol.NS_ROSTERX" class="py-name" href="#" onclick="return doclink('link-108', 'NS_ROSTERX', 'link-108');">NS_ROSTERX</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/rosterx'</tt> <tt class="py-comment"># XEP-0144</tt> </tt>
-<a name="L126"></a><tt class="py-lineno"> 126</tt> <tt class="py-line"><tt id="link-109" class="py-name" targets="Variable nbxmpp.protocol.NS_ROSTER_VER=nbxmpp.protocol-module.html#NS_ROSTER_VER"><a title="nbxmpp.protocol.NS_ROSTER_VER" class="py-name" href="#" onclick="return doclink('link-109', 'NS_ROSTER_VER', 'link-109');">NS_ROSTER_VER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:features:rosterver'</tt> <tt class="py-comment"># XEP-0273</tt> </tt>
-<a name="L127"></a><tt class="py-lineno"> 127</tt> <tt class="py-line"><tt id="link-110" class="py-name" targets="Variable nbxmpp.protocol.NS_RPC=nbxmpp.protocol-module.html#NS_RPC"><a title="nbxmpp.protocol.NS_RPC" class="py-name" href="#" onclick="return doclink('link-110', 'NS_RPC', 'link-110');">NS_RPC</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:rpc'</tt> <tt class="py-comment"># XEP-0009</tt> </tt>
-<a name="L128"></a><tt class="py-lineno"> 128</tt> <tt class="py-line"><tt id="link-111" class="py-name" targets="Variable nbxmpp.protocol.NS_RSM=nbxmpp.protocol-module.html#NS_RSM"><a title="nbxmpp.protocol.NS_RSM" class="py-name" href="#" onclick="return doclink('link-111', 'NS_RSM', 'link-111');">NS_RSM</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/rsm'</tt> </tt>
-<a name="L129"></a><tt class="py-lineno"> 129</tt> <tt class="py-line"><tt id="link-112" class="py-name" targets="Variable nbxmpp.protocol.NS_SASL=nbxmpp.protocol-module.html#NS_SASL"><a title="nbxmpp.protocol.NS_SASL" class="py-name" href="#" onclick="return doclink('link-112', 'NS_SASL', 'link-112');">NS_SASL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl'</tt> </tt>
-<a name="L130"></a><tt class="py-lineno"> 130</tt> <tt class="py-line"><tt id="link-113" class="py-name" targets="Variable nbxmpp.protocol.NS_SECLABEL=nbxmpp.protocol-module.html#NS_SECLABEL"><a title="nbxmpp.protocol.NS_SECLABEL" class="py-name" href="#" onclick="return doclink('link-113', 'NS_SECLABEL', 'link-113');">NS_SECLABEL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:sec-label:0'</tt> </tt>
-<a name="L131"></a><tt class="py-lineno"> 131</tt> <tt class="py-line"><tt id="link-114" class="py-name" targets="Variable nbxmpp.protocol.NS_SECLABEL_CATALOG=nbxmpp.protocol-module.html#NS_SECLABEL_CATALOG"><a title="nbxmpp.protocol.NS_SECLABEL_CATALOG" class="py-name" href="#" onclick="return doclink('link-114', 'NS_SECLABEL_CATALOG', 'link-114');">NS_SECLABEL_CATALOG</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:sec-label:catalog:2'</tt> </tt>
-<a name="L132"></a><tt class="py-lineno"> 132</tt> <tt class="py-line"><tt id="link-115" class="py-name" targets="Variable nbxmpp.protocol.NS_SEARCH=nbxmpp.protocol-module.html#NS_SEARCH"><a title="nbxmpp.protocol.NS_SEARCH" class="py-name" href="#" onclick="return doclink('link-115', 'NS_SEARCH', 'link-115');">NS_SEARCH</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:search'</tt> </tt>
-<a name="L133"></a><tt class="py-lineno"> 133</tt> <tt class="py-line"><tt id="link-116" class="py-name" targets="Variable nbxmpp.protocol.NS_SERVER=nbxmpp.protocol-module.html#NS_SERVER"><a title="nbxmpp.protocol.NS_SERVER" class="py-name" href="#" onclick="return doclink('link-116', 'NS_SERVER', 'link-116');">NS_SERVER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:server'</tt> </tt>
-<a name="L134"></a><tt class="py-lineno"> 134</tt> <tt class="py-line"><tt id="link-117" class="py-name" targets="Variable nbxmpp.protocol.NS_SESSION=nbxmpp.protocol-module.html#NS_SESSION"><a title="nbxmpp.protocol.NS_SESSION" class="py-name" href="#" onclick="return doclink('link-117', 'NS_SESSION', 'link-117');">NS_SESSION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-session'</tt> </tt>
-<a name="L135"></a><tt class="py-lineno"> 135</tt> <tt class="py-line"><tt id="link-118" class="py-name" targets="Variable nbxmpp.protocol.NS_SI=nbxmpp.protocol-module.html#NS_SI"><a title="nbxmpp.protocol.NS_SI" class="py-name" href="#" onclick="return doclink('link-118', 'NS_SI', 'link-118');">NS_SI</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/si'</tt> <tt class="py-comment"># XEP-0096</tt> </tt>
-<a name="L136"></a><tt class="py-lineno"> 136</tt> <tt class="py-line"><tt id="link-119" class="py-name" targets="Variable nbxmpp.protocol.NS_SI_PUB=nbxmpp.protocol-module.html#NS_SI_PUB"><a title="nbxmpp.protocol.NS_SI_PUB" class="py-name" href="#" onclick="return doclink('link-119', 'NS_SI_PUB', 'link-119');">NS_SI_PUB</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/sipub'</tt> <tt class="py-comment"># XEP-0137</tt> </tt>
-<a name="L137"></a><tt class="py-lineno"> 137</tt> <tt class="py-line"><tt id="link-120" class="py-name" targets="Variable nbxmpp.protocol.NS_SIGNED=nbxmpp.protocol-module.html#NS_SIGNED"><a title="nbxmpp.protocol.NS_SIGNED" class="py-name" href="#" onclick="return doclink('link-120', 'NS_SIGNED', 'link-120');">NS_SIGNED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:signed'</tt> <tt class="py-comment"># XEP-0027</tt> </tt>
-<a name="L138"></a><tt class="py-lineno"> 138</tt> <tt class="py-line"><tt id="link-121" class="py-name" targets="Variable nbxmpp.protocol.NS_SSN=nbxmpp.protocol-module.html#NS_SSN"><a title="nbxmpp.protocol.NS_SSN" class="py-name" href="#" onclick="return doclink('link-121', 'NS_SSN', 'link-121');">NS_SSN</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:ssn'</tt> <tt class="py-comment"># XEP-0155</tt> </tt>
-<a name="L139"></a><tt class="py-lineno"> 139</tt> <tt class="py-line"><tt id="link-122" class="py-name" targets="Variable nbxmpp.protocol.NS_STANZA_CRYPTO=nbxmpp.protocol-module.html#NS_STANZA_CRYPTO"><a title="nbxmpp.protocol.NS_STANZA_CRYPTO" class="py-name" href="#" onclick="return doclink('link-122', 'NS_STANZA_CRYPTO', 'link-122');">NS_STANZA_CRYPTO</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.xmpp.org/extensions/xep-0200.html#ns'</tt> <tt class="py-comment"># XEP-0200</tt> </tt>
-<a name="L140"></a><tt class="py-lineno"> 140</tt> <tt class="py-line"><tt id="link-123" class="py-name" targets="Variable nbxmpp.protocol.NS_STANZAS=nbxmpp.protocol-module.html#NS_STANZAS"><a title="nbxmpp.protocol.NS_STANZAS" class="py-name" href="#" onclick="return doclink('link-123', 'NS_STANZAS', 'link-123');">NS_STANZAS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas'</tt> </tt>
-<a name="L141"></a><tt class="py-lineno"> 141</tt> <tt class="py-line"><tt id="link-124" class="py-name" targets="Variable nbxmpp.protocol.NS_STREAM=nbxmpp.protocol-module.html#NS_STREAM"><a title="nbxmpp.protocol.NS_STREAM" class="py-name" href="#" onclick="return doclink('link-124', 'NS_STREAM', 'link-124');">NS_STREAM</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://affinix.com/jabber/stream'</tt> </tt>
-<a name="L142"></a><tt class="py-lineno"> 142</tt> <tt class="py-line"><tt id="link-125" class="py-name" targets="Variable nbxmpp.protocol.NS_STREAMS=nbxmpp.protocol-module.html#NS_STREAMS"><a title="nbxmpp.protocol.NS_STREAMS" class="py-name" href="#" onclick="return doclink('link-125', 'NS_STREAMS', 'link-125');">NS_STREAMS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://etherx.jabber.org/streams'</tt> </tt>
-<a name="L143"></a><tt class="py-lineno"> 143</tt> <tt class="py-line"><tt id="link-126" class="py-name" targets="Variable nbxmpp.protocol.NS_TIME=nbxmpp.protocol-module.html#NS_TIME"><a title="nbxmpp.protocol.NS_TIME" class="py-name" href="#" onclick="return doclink('link-126', 'NS_TIME', 'link-126');">NS_TIME</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:time'</tt> <tt class="py-comment"># XEP-0900</tt> </tt>
-<a name="L144"></a><tt class="py-lineno"> 144</tt> <tt class="py-line"><tt id="link-127" class="py-name" targets="Variable nbxmpp.protocol.NS_TIME_REVISED=nbxmpp.protocol-module.html#NS_TIME_REVISED"><a title="nbxmpp.protocol.NS_TIME_REVISED" class="py-name" href="#" onclick="return doclink('link-127', 'NS_TIME_REVISED', 'link-127');">NS_TIME_REVISED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:time'</tt> <tt class="py-comment"># XEP-0202</tt> </tt>
-<a name="L145"></a><tt class="py-lineno"> 145</tt> <tt class="py-line"><tt id="link-128" class="py-name" targets="Variable nbxmpp.protocol.NS_TLS=nbxmpp.protocol-module.html#NS_TLS"><a title="nbxmpp.protocol.NS_TLS" class="py-name" href="#" onclick="return doclink('link-128', 'NS_TLS', 'link-128');">NS_TLS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-tls'</tt> </tt>
-<a name="L146"></a><tt class="py-lineno"> 146</tt> <tt class="py-line"><tt id="link-129" class="py-name" targets="Variable nbxmpp.protocol.NS_TUNE=nbxmpp.protocol-module.html#NS_TUNE"><a title="nbxmpp.protocol.NS_TUNE" class="py-name" href="#" onclick="return doclink('link-129', 'NS_TUNE', 'link-129');">NS_TUNE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/tune'</tt> <tt class="py-comment"># XEP-0118</tt> </tt>
-<a name="L147"></a><tt class="py-lineno"> 147</tt> <tt class="py-line"><tt id="link-130" class="py-name" targets="Variable nbxmpp.protocol.NS_VACATION=nbxmpp.protocol-module.html#NS_VACATION"><a title="nbxmpp.protocol.NS_VACATION" class="py-name" href="#" onclick="return doclink('link-130', 'NS_VACATION', 'link-130');">NS_VACATION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/vacation'</tt> </tt>
-<a name="L148"></a><tt class="py-lineno"> 148</tt> <tt class="py-line"><tt id="link-131" class="py-name" targets="Variable nbxmpp.protocol.NS_VCARD=nbxmpp.protocol-module.html#NS_VCARD"><a title="nbxmpp.protocol.NS_VCARD" class="py-name" href="#" onclick="return doclink('link-131', 'NS_VCARD', 'link-131');">NS_VCARD</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'vcard-temp'</tt> </tt>
-<a name="L149"></a><tt class="py-lineno"> 149</tt> <tt class="py-line"><tt id="link-132" class="py-name" targets="Variable nbxmpp.protocol.NS_GMAILNOTIFY=nbxmpp.protocol-module.html#NS_GMAILNOTIFY"><a title="nbxmpp.protocol.NS_GMAILNOTIFY" class="py-name" href="#" onclick="return doclink('link-132', 'NS_GMAILNOTIFY', 'link-132');">NS_GMAILNOTIFY</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'google:mail:notify'</tt> </tt>
-<a name="L150"></a><tt class="py-lineno"> 150</tt> <tt class="py-line"><tt id="link-133" class="py-name" targets="Variable nbxmpp.protocol.NS_GTALKSETTING=nbxmpp.protocol-module.html#NS_GTALKSETTING"><a title="nbxmpp.protocol.NS_GTALKSETTING" class="py-name" href="#" onclick="return doclink('link-133', 'NS_GTALKSETTING', 'link-133');">NS_GTALKSETTING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'google:setting'</tt> </tt>
-<a name="L151"></a><tt class="py-lineno"> 151</tt> <tt class="py-line"><tt id="link-134" class="py-name" targets="Variable nbxmpp.protocol.NS_VCARD_UPDATE=nbxmpp.protocol-module.html#NS_VCARD_UPDATE"><a title="nbxmpp.protocol.NS_VCARD_UPDATE" class="py-name" href="#" onclick="return doclink('link-134', 'NS_VCARD_UPDATE', 'link-134');">NS_VCARD_UPDATE</a></tt> <tt class="py-op">=</tt> <tt id="link-135" class="py-name"><a title="nbxmpp.protocol.NS_VCARD" class="py-name" href="#" onclick="return doclink('link-135', 'NS_VCARD', 'link-131');">NS_VCARD</a></tt> <tt class="py-op">+</tt> <tt class="py-string">':x:update'</tt> </tt>
-<a name="L152"></a><tt class="py-lineno"> 152</tt> <tt class="py-line"><tt id="link-136" class="py-name" targets="Variable nbxmpp.protocol.NS_VERSION=nbxmpp.protocol-module.html#NS_VERSION"><a title="nbxmpp.protocol.NS_VERSION" class="py-name" href="#" onclick="return doclink('link-136', 'NS_VERSION', 'link-136');">NS_VERSION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:version'</tt> </tt>
-<a name="L153"></a><tt class="py-lineno"> 153</tt> <tt class="py-line"><tt id="link-137" class="py-name" targets="Variable nbxmpp.protocol.NS_VIEWING=nbxmpp.protocol-module.html#NS_VIEWING"><a title="nbxmpp.protocol.NS_VIEWING" class="py-name" href="#" onclick="return doclink('link-137', 'NS_VIEWING', 'link-137');">NS_VIEWING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/viewing'</tt> <tt class="py-comment"># XEP--197</tt> </tt>
-<a name="L154"></a><tt class="py-lineno"> 154</tt> <tt class="py-line"><tt id="link-138" class="py-name" targets="Variable nbxmpp.protocol.NS_WAITINGLIST=nbxmpp.protocol-module.html#NS_WAITINGLIST"><a title="nbxmpp.protocol.NS_WAITINGLIST" class="py-name" href="#" onclick="return doclink('link-138', 'NS_WAITINGLIST', 'link-138');">NS_WAITINGLIST</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/waitinglist'</tt> <tt class="py-comment"># XEP-0130</tt> </tt>
-<a name="L155"></a><tt class="py-lineno"> 155</tt> <tt class="py-line"><tt id="link-139" class="py-name" targets="Variable nbxmpp.protocol.NS_XHTML_IM=nbxmpp.protocol-module.html#NS_XHTML_IM"><a title="nbxmpp.protocol.NS_XHTML_IM" class="py-name" href="#" onclick="return doclink('link-139', 'NS_XHTML_IM', 'link-139');">NS_XHTML_IM</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/xhtml-im'</tt> <tt class="py-comment"># XEP-0071</tt> </tt>
-<a name="L156"></a><tt class="py-lineno"> 156</tt> <tt class="py-line"><tt id="link-140" class="py-name" targets="Variable nbxmpp.protocol.NS_XHTML=nbxmpp.protocol-module.html#NS_XHTML"><a title="nbxmpp.protocol.NS_XHTML" class="py-name" href="#" onclick="return doclink('link-140', 'NS_XHTML', 'link-140');">NS_XHTML</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.w3.org/1999/xhtml'</tt> <tt class="py-comment"># "</tt> </tt>
-<a name="L157"></a><tt class="py-lineno"> 157</tt> <tt class="py-line"><tt id="link-141" class="py-name" targets="Variable nbxmpp.protocol.NS_DATA_LAYOUT=nbxmpp.protocol-module.html#NS_DATA_LAYOUT"><a title="nbxmpp.protocol.NS_DATA_LAYOUT" class="py-name" href="#" onclick="return doclink('link-141', 'NS_DATA_LAYOUT', 'link-141');">NS_DATA_LAYOUT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/xdata-layout'</tt> <tt class="py-comment"># XEP-0141</tt> </tt>
-<a name="L158"></a><tt class="py-lineno"> 158</tt> <tt class="py-line"><tt id="link-142" class="py-name" targets="Variable nbxmpp.protocol.NS_DATA_VALIDATE=nbxmpp.protocol-module.html#NS_DATA_VALIDATE"><a title="nbxmpp.protocol.NS_DATA_VALIDATE" class="py-name" href="#" onclick="return doclink('link-142', 'NS_DATA_VALIDATE', 'link-142');">NS_DATA_VALIDATE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/xdata-validate'</tt> <tt class="py-comment"># XEP-0122</tt> </tt>
-<a name="L159"></a><tt class="py-lineno"> 159</tt> <tt class="py-line"><tt id="link-143" class="py-name" targets="Variable nbxmpp.protocol.NS_XMPP_STREAMS=nbxmpp.protocol-module.html#NS_XMPP_STREAMS"><a title="nbxmpp.protocol.NS_XMPP_STREAMS" class="py-name" href="#" onclick="return doclink('link-143', 'NS_XMPP_STREAMS', 'link-143');">NS_XMPP_STREAMS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams'</tt> </tt>
-<a name="L160"></a><tt class="py-lineno"> 160</tt> <tt class="py-line"><tt id="link-144" class="py-name" targets="Variable nbxmpp.protocol.NS_RECEIPTS=nbxmpp.protocol-module.html#NS_RECEIPTS"><a title="nbxmpp.protocol.NS_RECEIPTS" class="py-name" href="#" onclick="return doclink('link-144', 'NS_RECEIPTS', 'link-144');">NS_RECEIPTS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:receipts'</tt> </tt>
-<a name="L161"></a><tt class="py-lineno"> 161</tt> <tt class="py-line"><tt id="link-145" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBKEY_PUBKEY=nbxmpp.protocol-module.html#NS_PUBKEY_PUBKEY"><a title="nbxmpp.protocol.NS_PUBKEY_PUBKEY" class="py-name" href="#" onclick="return doclink('link-145', 'NS_PUBKEY_PUBKEY', 'link-145');">NS_PUBKEY_PUBKEY</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:pubkey:2'</tt> <tt class="py-comment"># XEP-0189</tt> </tt>
-<a name="L162"></a><tt class="py-lineno"> 162</tt> <tt class="py-line"><tt id="link-146" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBKEY_REVOKE=nbxmpp.protocol-module.html#NS_PUBKEY_REVOKE"><a title="nbxmpp.protocol.NS_PUBKEY_REVOKE" class="py-name" href="#" onclick="return doclink('link-146', 'NS_PUBKEY_REVOKE', 'link-146');">NS_PUBKEY_REVOKE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:revoke:2'</tt> </tt>
-<a name="L163"></a><tt class="py-lineno"> 163</tt> <tt class="py-line"><tt id="link-147" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBKEY_ATTEST=nbxmpp.protocol-module.html#NS_PUBKEY_ATTEST"><a title="nbxmpp.protocol.NS_PUBKEY_ATTEST" class="py-name" href="#" onclick="return doclink('link-147', 'NS_PUBKEY_ATTEST', 'link-147');">NS_PUBKEY_ATTEST</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:attest:2'</tt> </tt>
-<a name="L164"></a><tt class="py-lineno"> 164</tt> <tt class="py-line"><tt id="link-148" class="py-name" targets="Variable nbxmpp.protocol.NS_STREAM_MGMT=nbxmpp.protocol-module.html#NS_STREAM_MGMT"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-148', 'NS_STREAM_MGMT', 'link-148');">NS_STREAM_MGMT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:sm:2'</tt> <tt class="py-comment"># XEP-198</tt> </tt>
-<a name="L165"></a><tt class="py-lineno"> 165</tt> <tt class="py-line"><tt id="link-149" class="py-name" targets="Variable nbxmpp.protocol.NS_HASHES=nbxmpp.protocol-module.html#NS_HASHES"><a title="nbxmpp.protocol.NS_HASHES" class="py-name" href="#" onclick="return doclink('link-149', 'NS_HASHES', 'link-149');">NS_HASHES</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:hashes:0'</tt> <tt class="py-comment"># XEP-300</tt> </tt>
-<a name="L166"></a><tt class="py-lineno"> 166</tt> <tt class="py-line"><tt id="link-150" class="py-name" targets="Variable nbxmpp.protocol.NS_HASHES_MD5=nbxmpp.protocol-module.html#NS_HASHES_MD5"><a title="nbxmpp.protocol.NS_HASHES_MD5" class="py-name" href="#" onclick="return doclink('link-150', 'NS_HASHES_MD5', 'link-150');">NS_HASHES_MD5</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:hash-function-textual-names:md5'</tt> </tt>
-<a name="L167"></a><tt class="py-lineno"> 167</tt> <tt class="py-line"><tt id="link-151" class="py-name" targets="Variable nbxmpp.protocol.NS_HASHES_SHA1=nbxmpp.protocol-module.html#NS_HASHES_SHA1"><a title="nbxmpp.protocol.NS_HASHES_SHA1" class="py-name" href="#" onclick="return doclink('link-151', 'NS_HASHES_SHA1', 'link-151');">NS_HASHES_SHA1</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:hash-function-textual-names:sha-1'</tt> </tt>
-<a name="L168"></a><tt class="py-lineno"> 168</tt> <tt class="py-line"><tt id="link-152" class="py-name" targets="Variable nbxmpp.protocol.NS_HASHES_SHA256=nbxmpp.protocol-module.html#NS_HASHES_SHA256"><a title="nbxmpp.protocol.NS_HASHES_SHA256" class="py-name" href="#" onclick="return doclink('link-152', 'NS_HASHES_SHA256', 'link-152');">NS_HASHES_SHA256</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:hash-function-textual-names:sha-256'</tt> </tt>
-<a name="L169"></a><tt class="py-lineno"> 169</tt> <tt class="py-line"><tt id="link-153" class="py-name" targets="Variable nbxmpp.protocol.NS_HASHES_SHA512=nbxmpp.protocol-module.html#NS_HASHES_SHA512"><a title="nbxmpp.protocol.NS_HASHES_SHA512" class="py-name" href="#" onclick="return doclink('link-153', 'NS_HASHES_SHA512', 'link-153');">NS_HASHES_SHA512</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:hash-function-textual-names:sha-512'</tt> </tt>
-<a name="L170"></a><tt class="py-lineno"> 170</tt> <tt class="py-line"> </tt>
-<a name="L171"></a><tt class="py-lineno"> 171</tt> <tt class="py-line"><tt id="link-154" class="py-name" targets="Variable nbxmpp.protocol.xmpp_stream_error_conditions=nbxmpp.protocol-module.html#xmpp_stream_error_conditions"><a title="nbxmpp.protocol.xmpp_stream_error_conditions" class="py-name" href="#" onclick="return doclink('link-154', 'xmpp_stream_error_conditions', 'link-154');">xmpp_stream_error_conditions</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
-<a name="L172"></a><tt class="py-lineno"> 172</tt> <tt class="py-line"><tt class="py-string">bad-format -- -- -- The entity has sent XML that cannot be processed.</tt> </tt>
-<a name="L173"></a><tt class="py-lineno"> 173</tt> <tt class="py-line"><tt class="py-string">bad-namespace-prefix -- -- -- The entity has sent a namespace prefix that is unsupported, or has sent no namespace prefix on an element that requires such a prefix.</tt> </tt>
-<a name="L174"></a><tt class="py-lineno"> 174</tt> <tt class="py-line"><tt class="py-string">conflict -- -- -- The server is closing the active stream for this entity because a new stream has been initiated that conflicts with the existing stream.</tt> </tt>
-<a name="L175"></a><tt class="py-lineno"> 175</tt> <tt class="py-line"><tt class="py-string">connection-timeout -- -- -- The entity has not generated any traffic over the stream for some period of time.</tt> </tt>
-<a name="L176"></a><tt class="py-lineno"> 176</tt> <tt class="py-line"><tt class="py-string">host-gone -- -- -- The value of the 'to' attribute provided by the initiating entity in the stream header corresponds to a hostname that is no longer hosted by the server.</tt> </tt>
-<a name="L177"></a><tt class="py-lineno"> 177</tt> <tt class="py-line"><tt class="py-string">host-unknown -- -- -- The value of the 'to' attribute provided by the initiating entity in the stream header does not correspond to a hostname that is hosted by the server.</tt> </tt>
-<a name="L178"></a><tt class="py-lineno"> 178</tt> <tt class="py-line"><tt class="py-string">improper-addressing -- -- -- A stanza sent between two servers lacks a 'to' or 'from' attribute (or the attribute has no value).</tt> </tt>
-<a name="L179"></a><tt class="py-lineno"> 179</tt> <tt class="py-line"><tt class="py-string">internal-server-error -- -- -- The server has experienced a misconfiguration or an otherwise-undefined internal error that prevents it from servicing the stream.</tt> </tt>
-<a name="L180"></a><tt class="py-lineno"> 180</tt> <tt class="py-line"><tt class="py-string">invalid-from -- cancel -- -- The JID or hostname provided in a 'from' address does not match an authorized JID or validated domain negotiated between servers via SASL or dialback, or between a client and a server via authentication and resource authorization.</tt> </tt>
-<a name="L181"></a><tt class="py-lineno"> 181</tt> <tt class="py-line"><tt class="py-string">invalid-id -- -- -- The stream ID or dialback ID is invalid or does not match an ID previously provided.</tt> </tt>
-<a name="L182"></a><tt class="py-lineno"> 182</tt> <tt class="py-line"><tt class="py-string">invalid-namespace -- -- -- The streams namespace name is something other than "http://etherx.jabber.org/streams" or the dialback namespace name is something other than "jabber:server:dialback".</tt> </tt>
-<a name="L183"></a><tt class="py-lineno"> 183</tt> <tt class="py-line"><tt class="py-string">invalid-xml -- -- -- The entity has sent invalid XML over the stream to a server that performs validation.</tt> </tt>
-<a name="L184"></a><tt class="py-lineno"> 184</tt> <tt class="py-line"><tt class="py-string">not-authorized -- -- -- The entity has attempted to send data before the stream has been authenticated, or otherwise is not authorized to perform an action related to stream negotiation.</tt> </tt>
-<a name="L185"></a><tt class="py-lineno"> 185</tt> <tt class="py-line"><tt class="py-string">policy-violation -- -- -- The entity has violated some local service policy.</tt> </tt>
-<a name="L186"></a><tt class="py-lineno"> 186</tt> <tt class="py-line"><tt class="py-string">remote-connection-failed -- -- -- The server is unable to properly connect to a remote resource that is required for authentication or authorization.</tt> </tt>
-<a name="L187"></a><tt class="py-lineno"> 187</tt> <tt class="py-line"><tt class="py-string">resource-constraint -- -- -- The server lacks the system resources necessary to service the stream.</tt> </tt>
-<a name="L188"></a><tt class="py-lineno"> 188</tt> <tt class="py-line"><tt class="py-string">restricted-xml -- -- -- The entity has attempted to send restricted XML features such as a comment, processing instruction, DTD, entity reference, or unescaped character.</tt> </tt>
-<a name="L189"></a><tt class="py-lineno"> 189</tt> <tt class="py-line"><tt class="py-string">see-other-host -- -- -- The server will not provide service to the initiating entity but is redirecting traffic to another host.</tt> </tt>
-<a name="L190"></a><tt class="py-lineno"> 190</tt> <tt class="py-line"><tt class="py-string">system-shutdown -- -- -- The server is being shut down and all active streams are being closed.</tt> </tt>
-<a name="L191"></a><tt class="py-lineno"> 191</tt> <tt class="py-line"><tt class="py-string">undefined-condition -- -- -- The error condition is not one of those defined by the other conditions in this list.</tt> </tt>
-<a name="L192"></a><tt class="py-lineno"> 192</tt> <tt class="py-line"><tt class="py-string">unsupported-encoding -- -- -- The initiating entity has encoded the stream in an encoding that is not supported by the server.</tt> </tt>
-<a name="L193"></a><tt class="py-lineno"> 193</tt> <tt class="py-line"><tt class="py-string">unsupported-stanza-type -- -- -- The initiating entity has sent a first-level child of the stream that is not supported by the server.</tt> </tt>
-<a name="L194"></a><tt class="py-lineno"> 194</tt> <tt class="py-line"><tt class="py-string">unsupported-version -- -- -- The value of the 'version' attribute provided by the initiating entity in the stream header specifies a version of XMPP that is not supported by the server.</tt> </tt>
-<a name="L195"></a><tt class="py-lineno"> 195</tt> <tt class="py-line"><tt class="py-string">xml-not-well-formed -- -- -- The initiating entity has sent XML that is not well-formed.'''</tt> </tt>
-<a name="L196"></a><tt class="py-lineno"> 196</tt> <tt class="py-line"> </tt>
-<a name="L197"></a><tt class="py-lineno"> 197</tt> <tt class="py-line"><tt id="link-155" class="py-name" targets="Variable nbxmpp.protocol.xmpp_stanza_error_conditions=nbxmpp.protocol-module.html#xmpp_stanza_error_conditions"><a title="nbxmpp.protocol.xmpp_stanza_error_conditions" class="py-name" href="#" onclick="return doclink('link-155', 'xmpp_stanza_error_conditions', 'link-155');">xmpp_stanza_error_conditions</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
-<a name="L198"></a><tt class="py-lineno"> 198</tt> <tt class="py-line"><tt class="py-string">bad-request -- 400 -- modify -- The sender has sent XML that is malformed or that cannot be processed.</tt> </tt>
-<a name="L199"></a><tt class="py-lineno"> 199</tt> <tt class="py-line"><tt class="py-string">conflict -- 409 -- cancel -- Access cannot be granted because an existing resource or session exists with the same name or address.</tt> </tt>
-<a name="L200"></a><tt class="py-lineno"> 200</tt> <tt class="py-line"><tt class="py-string">feature-not-implemented -- 501 -- cancel -- The feature requested is not implemented by the recipient or server and therefore cannot be processed.</tt> </tt>
-<a name="L201"></a><tt class="py-lineno"> 201</tt> <tt class="py-line"><tt class="py-string">forbidden -- 403 -- auth -- The requesting entity does not possess the required permissions to perform the action.</tt> </tt>
-<a name="L202"></a><tt class="py-lineno"> 202</tt> <tt class="py-line"><tt class="py-string">gone -- 302 -- modify -- The recipient or server can no longer be contacted at this address.</tt> </tt>
-<a name="L203"></a><tt class="py-lineno"> 203</tt> <tt class="py-line"><tt class="py-string">internal-server-error -- 500 -- wait -- The server could not process the stanza because of a misconfiguration or an otherwise-undefined internal server error.</tt> </tt>
-<a name="L204"></a><tt class="py-lineno"> 204</tt> <tt class="py-line"><tt class="py-string">item-not-found -- 404 -- cancel -- The addressed JID or item requested cannot be found.</tt> </tt>
-<a name="L205"></a><tt class="py-lineno"> 205</tt> <tt class="py-line"><tt class="py-string">jid-malformed -- 400 -- modify -- The value of the 'to' attribute in the sender's stanza does not adhere to the syntax defined in Addressing Scheme.</tt> </tt>
-<a name="L206"></a><tt class="py-lineno"> 206</tt> <tt class="py-line"><tt class="py-string">not-acceptable -- 406 -- cancel -- The recipient or server understands the request but is refusing to process it because it does not meet criteria defined by the recipient or server.</tt> </tt>
-<a name="L207"></a><tt class="py-lineno"> 207</tt> <tt class="py-line"><tt class="py-string">not-allowed -- 405 -- cancel -- The recipient or server does not allow any entity to perform the action.</tt> </tt>
-<a name="L208"></a><tt class="py-lineno"> 208</tt> <tt class="py-line"><tt class="py-string">not-authorized -- 401 -- auth -- The sender must provide proper credentials before being allowed to perform the action, or has provided improper credentials.</tt> </tt>
-<a name="L209"></a><tt class="py-lineno"> 209</tt> <tt class="py-line"><tt class="py-string">payment-required -- 402 -- auth -- The requesting entity is not authorized to access the requested service because payment is required.</tt> </tt>
-<a name="L210"></a><tt class="py-lineno"> 210</tt> <tt class="py-line"><tt class="py-string">recipient-unavailable -- 404 -- wait -- The intended recipient is temporarily unavailable.</tt> </tt>
-<a name="L211"></a><tt class="py-lineno"> 211</tt> <tt class="py-line"><tt class="py-string">redirect -- 302 -- modify -- The recipient or server is redirecting requests for this information to another entity.</tt> </tt>
-<a name="L212"></a><tt class="py-lineno"> 212</tt> <tt class="py-line"><tt class="py-string">registration-required -- 407 -- auth -- The requesting entity is not authorized to access the requested service because registration is required.</tt> </tt>
-<a name="L213"></a><tt class="py-lineno"> 213</tt> <tt class="py-line"><tt class="py-string">remote-server-not-found -- 404 -- cancel -- A remote server or service specified as part or all of the JID of the intended recipient does not exist.</tt> </tt>
-<a name="L214"></a><tt class="py-lineno"> 214</tt> <tt class="py-line"><tt class="py-string">remote-server-timeout -- 504 -- wait -- A remote server or service specified as part or all of the JID of the intended recipient could not be contacted within a reasonable amount of time.</tt> </tt>
-<a name="L215"></a><tt class="py-lineno"> 215</tt> <tt class="py-line"><tt class="py-string">resource-constraint -- 500 -- wait -- The server or recipient lacks the system resources necessary to service the request.</tt> </tt>
-<a name="L216"></a><tt class="py-lineno"> 216</tt> <tt class="py-line"><tt class="py-string">service-unavailable -- 503 -- cancel -- The server or recipient does not currently provide the requested service.</tt> </tt>
-<a name="L217"></a><tt class="py-lineno"> 217</tt> <tt class="py-line"><tt class="py-string">subscription-required -- 407 -- auth -- The requesting entity is not authorized to access the requested service because a subscription is required.</tt> </tt>
-<a name="L218"></a><tt class="py-lineno"> 218</tt> <tt class="py-line"><tt class="py-string">undefined-condition -- 500 -- -- Undefined Condition</tt> </tt>
-<a name="L219"></a><tt class="py-lineno"> 219</tt> <tt class="py-line"><tt class="py-string">unexpected-request -- 400 -- wait -- The recipient or server understood the request but was not expecting it at this time (e.g., the request was out of order).'''</tt> </tt>
-<a name="L220"></a><tt class="py-lineno"> 220</tt> <tt class="py-line"> </tt>
-<a name="L221"></a><tt class="py-lineno"> 221</tt> <tt class="py-line"><tt id="link-156" class="py-name" targets="Variable nbxmpp.protocol.sasl_error_conditions=nbxmpp.protocol-module.html#sasl_error_conditions"><a title="nbxmpp.protocol.sasl_error_conditions" class="py-name" href="#" onclick="return doclink('link-156', 'sasl_error_conditions', 'link-156');">sasl_error_conditions</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
-<a name="L222"></a><tt class="py-lineno"> 222</tt> <tt class="py-line"><tt class="py-string">aborted -- -- -- The receiving entity acknowledges an &lt;abort/&gt; element sent by the initiating entity; sent in reply to the &lt;abort/&gt; element.</tt> </tt>
-<a name="L223"></a><tt class="py-lineno"> 223</tt> <tt class="py-line"><tt class="py-string">incorrect-encoding -- -- -- The data provided by the initiating entity could not be processed because the [BASE64]Josefsson, S., The Base16, Base32, and Base64 Data Encodings, July 2003. encoding is incorrect (e.g., because the encoding does not adhere to the definition in Section 3 of [BASE64]Josefsson, S., The Base16, Base32, and Base64 Data Encodings, July 2003.); sent in reply to a &lt;response/&gt; element or an &lt;auth/&gt; element with initial response data.</tt> </tt>
-<a name="L224"></a><tt class="py-lineno"> 224</tt> <tt class="py-line"><tt class="py-string">invalid-authzid -- -- -- The authzid provided by the initiating entity is invalid, either because it is incorrectly formatted or because the initiating entity does not have permissions to authorize that ID; sent in reply to a &lt;response/&gt; element or an &lt;auth/&gt; element with initial response data.</tt> </tt>
-<a name="L225"></a><tt class="py-lineno"> 225</tt> <tt class="py-line"><tt class="py-string">invalid-mechanism -- -- -- The initiating entity did not provide a mechanism or requested a mechanism that is not supported by the receiving entity; sent in reply to an &lt;auth/&gt; element.</tt> </tt>
-<a name="L226"></a><tt class="py-lineno"> 226</tt> <tt class="py-line"><tt class="py-string">mechanism-too-weak -- -- -- The mechanism requested by the initiating entity is weaker than server policy permits for that initiating entity; sent in reply to a &lt;response/&gt; element or an &lt;auth/&gt; element with initial response data.</tt> </tt>
-<a name="L227"></a><tt class="py-lineno"> 227</tt> <tt class="py-line"><tt class="py-string">not-authorized -- -- -- The authentication failed because the initiating entity did not provide valid credentials (this includes but is not limited to the case of an unknown username); sent in reply to a &lt;response/&gt; element or an &lt;auth/&gt; element with initial response data.</tt> </tt>
-<a name="L228"></a><tt class="py-lineno"> 228</tt> <tt class="py-line"><tt class="py-string">temporary-auth-failure -- -- -- The authentication failed because of a temporary error condition within the receiving entity; sent in reply to an &lt;auth/&gt; element or &lt;response/&gt; element.'''</tt> </tt>
-<a name="L229"></a><tt class="py-lineno"> 229</tt> <tt class="py-line"> </tt>
-<a name="L230"></a><tt class="py-lineno"> 230</tt> <tt class="py-line"><tt id="link-157" class="py-name" targets="Variable nbxmpp.ERRORS=nbxmpp-module.html#ERRORS,Variable nbxmpp.protocol.ERRORS=nbxmpp.protocol-module.html#ERRORS"><a title="nbxmpp.ERRORS
-nbxmpp.protocol.ERRORS" class="py-name" href="#" onclick="return doclink('link-157', 'ERRORS', 'link-157');">ERRORS</a></tt><tt class="py-op">,</tt> <tt id="link-158" class="py-name" targets="Variable nbxmpp.protocol._errorcodes=nbxmpp.protocol-module.html#_errorcodes"><a title="nbxmpp.protocol._errorcodes" class="py-name" href="#" onclick="return doclink('link-158', '_errorcodes', 'link-158');">_errorcodes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L231"></a><tt class="py-lineno"> 231</tt> <tt class="py-line"><tt class="py-keyword">for</tt> <tt class="py-name">ns</tt><tt class="py-op">,</tt> <tt class="py-name">errname</tt><tt class="py-op">,</tt> <tt class="py-name">errpool</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-159" class="py-name"><a title="nbxmpp.protocol.NS_XMPP_STREAMS" class="py-name" href="#" onclick="return doclink('link-159', 'NS_XMPP_STREAMS', 'link-143');">NS_XMPP_STREAMS</a></tt><tt class="py-op">,</tt> <tt class="py-string">'STREAM'</tt><tt class="py-op">,</tt> </tt>
-<a name="L232"></a><tt class="py-lineno"> 232</tt> <tt class="py-line"><tt id="link-160" class="py-name"><a title="nbxmpp.protocol.xmpp_stream_error_conditions" class="py-name" href="#" onclick="return doclink('link-160', 'xmpp_stream_error_conditions', 'link-154');">xmpp_stream_error_conditions</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-161" class="py-name"><a title="nbxmpp.protocol.NS_STANZAS" class="py-name" href="#" onclick="return doclink('link-161', 'NS_STANZAS', 'link-123');">NS_STANZAS</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ERR'</tt><tt class="py-op">,</tt> <tt id="link-162" class="py-name"><a title="nbxmpp.protocol.xmpp_stanza_error_conditions" class="py-name" href="#" onclick="return doclink('link-162', 'xmpp_stanza_error_conditions', 'link-155');">xmpp_stanza_error_conditions</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L233"></a><tt class="py-lineno"> 233</tt> <tt class="py-line"><tt class="py-op">(</tt><tt id="link-163" class="py-name"><a title="nbxmpp.protocol.NS_SASL" class="py-name" href="#" onclick="return doclink('link-163', 'NS_SASL', 'link-112');">NS_SASL</a></tt><tt class="py-op">,</tt> <tt class="py-string">'SASL'</tt><tt class="py-op">,</tt> <tt id="link-164" class="py-name"><a title="nbxmpp.protocol.sasl_error_conditions" class="py-name" href="#" onclick="return doclink('link-164', 'sasl_error_conditions', 'link-156');">sasl_error_conditions</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L234"></a><tt class="py-lineno"> 234</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">err</tt> <tt class="py-keyword">in</tt> <tt class="py-name">errpool</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L235"></a><tt class="py-lineno"> 235</tt> <tt class="py-line"> <tt class="py-name">cond</tt><tt class="py-op">,</tt> <tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt> <tt class="py-op">=</tt> <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">' -- '</tt><tt class="py-op">)</tt> </tt>
-<a name="L236"></a><tt class="py-lineno"> 236</tt> <tt class="py-line"> <tt id="link-165" class="py-name" targets="Variable nbxmpp.name=nbxmpp-module.html#name,Variable nbxmpp.protocol.name=nbxmpp.protocol-module.html#name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-165', 'name', 'link-165');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">errname</tt> <tt class="py-op">+</tt> <tt class="py-string">'_'</tt> <tt class="py-op">+</tt> <tt id="link-166" class="py-name" targets="Function nbxmpp.protocol.ascii_upper()=nbxmpp.protocol-module.html#ascii_upper"><a title="nbxmpp.protocol.ascii_upper" class="py-name" href="#" onclick="return doclink('link-166', 'ascii_upper', 'link-166');">ascii_upper</a></tt><tt class="py-op">(</tt><tt class="py-name">cond</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'-'</tt><tt class="py-op">,</tt> <tt class="py-string">'_'</tt><tt class="py-op">)</tt> </tt>
-<a name="L237"></a><tt class="py-lineno"> 237</tt> <tt class="py-line"> <tt class="py-name">locals</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt id="link-167" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-167', 'name', 'link-165');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">ns</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">cond</tt> </tt>
-<a name="L238"></a><tt class="py-lineno"> 238</tt> <tt class="py-line"> <tt id="link-168" class="py-name"><a title="nbxmpp.ERRORS
-nbxmpp.protocol.ERRORS" class="py-name" href="#" onclick="return doclink('link-168', 'ERRORS', 'link-157');">ERRORS</a></tt><tt class="py-op">[</tt><tt class="py-name">ns</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">cond</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">]</tt> </tt>
-<a name="L239"></a><tt class="py-lineno"> 239</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">code</tt><tt class="py-op">:</tt> </tt>
-<a name="L240"></a><tt class="py-lineno"> 240</tt> <tt class="py-line"> <tt id="link-169" class="py-name"><a title="nbxmpp.protocol._errorcodes" class="py-name" href="#" onclick="return doclink('link-169', '_errorcodes', 'link-158');">_errorcodes</a></tt><tt class="py-op">[</tt><tt class="py-name">code</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">cond</tt> </tt>
-<a name="L241"></a><tt class="py-lineno"> 241</tt> <tt class="py-line"><tt class="py-keyword">del</tt> <tt class="py-name">ns</tt><tt class="py-op">,</tt> <tt class="py-name">errname</tt><tt class="py-op">,</tt> <tt class="py-name">errpool</tt><tt class="py-op">,</tt> <tt class="py-name">err</tt><tt class="py-op">,</tt> <tt class="py-name">cond</tt><tt class="py-op">,</tt> <tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt> </tt>
-<a name="L242"></a><tt class="py-lineno"> 242</tt> <tt class="py-line"> </tt>
-<a name="isResultNode"></a><div id="isResultNode-def"><a name="L243"></a><tt class="py-lineno"> 243</tt> <a class="py-toggle" href="#" id="isResultNode-toggle" onclick="return toggle('isResultNode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol-module.html#isResultNode">isResultNode</a><tt class="py-op">(</tt><tt class="py-param">node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="isResultNode-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="isResultNode-expanded"><a name="L244"></a><tt class="py-lineno"> 244</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L245"></a><tt class="py-lineno"> 245</tt> <tt class="py-line"><tt class="py-docstring"> Return true if the node is a positive reply</tt> </tt>
-<a name="L246"></a><tt class="py-lineno"> 246</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L247"></a><tt class="py-lineno"> 247</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">node</tt> <tt class="py-keyword">and</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name" targets="Method nbxmpp.protocol.DataField.getType()=nbxmpp.protocol.DataField-class.html#getType,Method nbxmpp.protocol.DataForm.getType()=nbxmpp.protocol.DataForm-class.html#getType,Method nbxmpp.protocol.Protocol.getType()=nbxmpp.protocol.Protocol-class.html#getType"><a title="nbxmpp.protocol.DataField.getType
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt id="link-23" class="py-name" targets="Variable nbxmpp.protocol.NS_BLOCKING=nbxmpp.protocol-module.html#NS_BLOCKING"><a title="nbxmpp.protocol.NS_BLOCKING" class="py-name" href="#" onclick="return doclink('link-23', 'NS_BLOCKING', 'link-23');">NS_BLOCKING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:blocking'</tt> <tt class="py-comment"># XEP-0191</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt id="link-24" class="py-name" targets="Variable nbxmpp.protocol.NS_BOB=nbxmpp.protocol-module.html#NS_BOB"><a title="nbxmpp.protocol.NS_BOB" class="py-name" href="#" onclick="return doclink('link-24', 'NS_BOB', 'link-24');">NS_BOB</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:bob'</tt> <tt class="py-comment"># XEP-0231</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt id="link-25" class="py-name" targets="Variable nbxmpp.protocol.NS_BOOKMARKS=nbxmpp.protocol-module.html#NS_BOOKMARKS"><a title="nbxmpp.protocol.NS_BOOKMARKS" class="py-name" href="#" onclick="return doclink('link-25', 'NS_BOOKMARKS', 'link-25');">NS_BOOKMARKS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'storage:bookmarks'</tt> <tt class="py-comment"># XEP-0048</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt id="link-26" class="py-name" targets="Variable nbxmpp.protocol.NS_BROWSE=nbxmpp.protocol-module.html#NS_BROWSE"><a title="nbxmpp.protocol.NS_BROWSE" class="py-name" href="#" onclick="return doclink('link-26', 'NS_BROWSE', 'link-26');">NS_BROWSE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:browse'</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt id="link-27" class="py-name" targets="Variable nbxmpp.protocol.NS_BROWSING=nbxmpp.protocol-module.html#NS_BROWSING"><a title="nbxmpp.protocol.NS_BROWSING" class="py-name" href="#" onclick="return doclink('link-27', 'NS_BROWSING', 'link-27');">NS_BROWSING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/browsing'</tt> <tt class="py-comment"># XEP-0195</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt id="link-28" class="py-name" targets="Variable nbxmpp.protocol.NS_BYTESTREAM=nbxmpp.protocol-module.html#NS_BYTESTREAM"><a title="nbxmpp.protocol.NS_BYTESTREAM" class="py-name" href="#" onclick="return doclink('link-28', 'NS_BYTESTREAM', 'link-28');">NS_BYTESTREAM</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/bytestreams'</tt> <tt class="py-comment"># XEP-0065</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt id="link-29" class="py-name" targets="Variable nbxmpp.protocol.NS_CAPS=nbxmpp.protocol-module.html#NS_CAPS"><a title="nbxmpp.protocol.NS_CAPS" class="py-name" href="#" onclick="return doclink('link-29', 'NS_CAPS', 'link-29');">NS_CAPS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/caps'</tt> <tt class="py-comment"># XEP-0115</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt id="link-30" class="py-name" targets="Variable nbxmpp.protocol.NS_CAPTCHA=nbxmpp.protocol-module.html#NS_CAPTCHA"><a title="nbxmpp.protocol.NS_CAPTCHA" class="py-name" href="#" onclick="return doclink('link-30', 'NS_CAPTCHA', 'link-30');">NS_CAPTCHA</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:captcha'</tt> <tt class="py-comment"># XEP-0158</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt id="link-31" class="py-name" targets="Variable nbxmpp.protocol.NS_CARBONS=nbxmpp.protocol-module.html#NS_CARBONS"><a title="nbxmpp.protocol.NS_CARBONS" class="py-name" href="#" onclick="return doclink('link-31', 'NS_CARBONS', 'link-31');">NS_CARBONS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:carbons:2'</tt> <tt class="py-comment"># XEP-0280</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt id="link-32" class="py-name" targets="Variable nbxmpp.protocol.NS_CHATSTATES=nbxmpp.protocol-module.html#NS_CHATSTATES"><a title="nbxmpp.protocol.NS_CHATSTATES" class="py-name" href="#" onclick="return doclink('link-32', 'NS_CHATSTATES', 'link-32');">NS_CHATSTATES</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/chatstates'</tt> <tt class="py-comment"># XEP-0085</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt id="link-33" class="py-name" targets="Variable nbxmpp.protocol.NS_CHATTING=nbxmpp.protocol-module.html#NS_CHATTING"><a title="nbxmpp.protocol.NS_CHATTING" class="py-name" href="#" onclick="return doclink('link-33', 'NS_CHATTING', 'link-33');">NS_CHATTING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/chatting'</tt> <tt class="py-comment"># XEP-0194</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt id="link-34" class="py-name" targets="Variable nbxmpp.protocol.NS_CLIENT=nbxmpp.protocol-module.html#NS_CLIENT"><a title="nbxmpp.protocol.NS_CLIENT" class="py-name" href="#" onclick="return doclink('link-34', 'NS_CLIENT', 'link-34');">NS_CLIENT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:client'</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt id="link-35" class="py-name" targets="Variable nbxmpp.protocol.NS_CONDITIONS=nbxmpp.protocol-module.html#NS_CONDITIONS"><a title="nbxmpp.protocol.NS_CONDITIONS" class="py-name" href="#" onclick="return doclink('link-35', 'NS_CONDITIONS', 'link-35');">NS_CONDITIONS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:muc:conditions:0'</tt> <tt class="py-comment"># XEP-0306</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt id="link-36" class="py-name" targets="Variable nbxmpp.protocol.NS_COMMANDS=nbxmpp.protocol-module.html#NS_COMMANDS"><a title="nbxmpp.protocol.NS_COMMANDS" class="py-name" href="#" onclick="return doclink('link-36', 'NS_COMMANDS', 'link-36');">NS_COMMANDS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/commands'</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt id="link-37" class="py-name" targets="Variable nbxmpp.protocol.NS_COMPONENT_ACCEPT=nbxmpp.protocol-module.html#NS_COMPONENT_ACCEPT"><a title="nbxmpp.protocol.NS_COMPONENT_ACCEPT" class="py-name" href="#" onclick="return doclink('link-37', 'NS_COMPONENT_ACCEPT', 'link-37');">NS_COMPONENT_ACCEPT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:component:accept'</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt id="link-38" class="py-name" targets="Variable nbxmpp.protocol.NS_COMPONENT_1=nbxmpp.protocol-module.html#NS_COMPONENT_1"><a title="nbxmpp.protocol.NS_COMPONENT_1" class="py-name" href="#" onclick="return doclink('link-38', 'NS_COMPONENT_1', 'link-38');">NS_COMPONENT_1</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabberd.jabberstudio.org/ns/component/1.0'</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt id="link-39" class="py-name" targets="Variable nbxmpp.protocol.NS_COMPRESS=nbxmpp.protocol-module.html#NS_COMPRESS"><a title="nbxmpp.protocol.NS_COMPRESS" class="py-name" href="#" onclick="return doclink('link-39', 'NS_COMPRESS', 'link-39');">NS_COMPRESS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/compress'</tt> <tt class="py-comment"># XEP-0138</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt id="link-40" class="py-name" targets="Variable nbxmpp.protocol.NS_CONFERENCE=nbxmpp.protocol-module.html#NS_CONFERENCE"><a title="nbxmpp.protocol.NS_CONFERENCE" class="py-name" href="#" onclick="return doclink('link-40', 'NS_CONFERENCE', 'link-40');">NS_CONFERENCE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:conference'</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt id="link-41" class="py-name" targets="Variable nbxmpp.protocol.NS_CORRECT=nbxmpp.protocol-module.html#NS_CORRECT"><a title="nbxmpp.protocol.NS_CORRECT" class="py-name" href="#" onclick="return doclink('link-41', 'NS_CORRECT', 'link-41');">NS_CORRECT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:message-correct:0'</tt> <tt class="py-comment"># XEP-0308</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt id="link-42" class="py-name" targets="Variable nbxmpp.protocol.NS_DATA=nbxmpp.protocol-module.html#NS_DATA"><a title="nbxmpp.protocol.NS_DATA" class="py-name" href="#" onclick="return doclink('link-42', 'NS_DATA', 'link-42');">NS_DATA</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:data'</tt> <tt class="py-comment"># XEP-0004</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt id="link-43" class="py-name" targets="Variable nbxmpp.protocol.NS_DATA_MEDIA=nbxmpp.protocol-module.html#NS_DATA_MEDIA"><a title="nbxmpp.protocol.NS_DATA_MEDIA" class="py-name" href="#" onclick="return doclink('link-43', 'NS_DATA_MEDIA', 'link-43');">NS_DATA_MEDIA</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:media-element'</tt> <tt class="py-comment"># XEP-0221</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt id="link-44" class="py-name" targets="Variable nbxmpp.protocol.NS_DELAY=nbxmpp.protocol-module.html#NS_DELAY"><a title="nbxmpp.protocol.NS_DELAY" class="py-name" href="#" onclick="return doclink('link-44', 'NS_DELAY', 'link-44');">NS_DELAY</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:delay'</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt id="link-45" class="py-name" targets="Variable nbxmpp.protocol.NS_DELAY2=nbxmpp.protocol-module.html#NS_DELAY2"><a title="nbxmpp.protocol.NS_DELAY2" class="py-name" href="#" onclick="return doclink('link-45', 'NS_DELAY2', 'link-45');">NS_DELAY2</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:delay'</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt id="link-46" class="py-name" targets="Variable nbxmpp.protocol.NS_DIALBACK=nbxmpp.protocol-module.html#NS_DIALBACK"><a title="nbxmpp.protocol.NS_DIALBACK" class="py-name" href="#" onclick="return doclink('link-46', 'NS_DIALBACK', 'link-46');">NS_DIALBACK</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:server:dialback'</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt id="link-47" class="py-name" targets="Variable nbxmpp.protocol.NS_DISCO=nbxmpp.protocol-module.html#NS_DISCO"><a title="nbxmpp.protocol.NS_DISCO" class="py-name" href="#" onclick="return doclink('link-47', 'NS_DISCO', 'link-47');">NS_DISCO</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/disco'</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt id="link-48" class="py-name" targets="Variable nbxmpp.protocol.NS_DISCO_INFO=nbxmpp.protocol-module.html#NS_DISCO_INFO"><a title="nbxmpp.protocol.NS_DISCO_INFO" class="py-name" href="#" onclick="return doclink('link-48', 'NS_DISCO_INFO', 'link-48');">NS_DISCO_INFO</a></tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name"><a title="nbxmpp.protocol.NS_DISCO" class="py-name" href="#" onclick="return doclink('link-49', 'NS_DISCO', 'link-47');">NS_DISCO</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#info'</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt id="link-50" class="py-name" targets="Variable nbxmpp.protocol.NS_DISCO_ITEMS=nbxmpp.protocol-module.html#NS_DISCO_ITEMS"><a title="nbxmpp.protocol.NS_DISCO_ITEMS" class="py-name" href="#" onclick="return doclink('link-50', 'NS_DISCO_ITEMS', 'link-50');">NS_DISCO_ITEMS</a></tt> <tt class="py-op">=</tt> <tt id="link-51" class="py-name"><a title="nbxmpp.protocol.NS_DISCO" class="py-name" href="#" onclick="return doclink('link-51', 'NS_DISCO', 'link-47');">NS_DISCO</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#items'</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt id="link-52" class="py-name" targets="Variable nbxmpp.protocol.NS_ENCRYPTED=nbxmpp.protocol-module.html#NS_ENCRYPTED"><a title="nbxmpp.protocol.NS_ENCRYPTED" class="py-name" href="#" onclick="return doclink('link-52', 'NS_ENCRYPTED', 'link-52');">NS_ENCRYPTED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:encrypted'</tt> <tt class="py-comment"># XEP-0027</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt id="link-53" class="py-name" targets="Variable nbxmpp.protocol.NS_ESESSION=nbxmpp.protocol-module.html#NS_ESESSION"><a title="nbxmpp.protocol.NS_ESESSION" class="py-name" href="#" onclick="return doclink('link-53', 'NS_ESESSION', 'link-53');">NS_ESESSION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.xmpp.org/extensions/xep-0116.html#ns'</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt id="link-54" class="py-name" targets="Variable nbxmpp.protocol.NS_ESESSION_INIT=nbxmpp.protocol-module.html#NS_ESESSION_INIT"><a title="nbxmpp.protocol.NS_ESESSION_INIT" class="py-name" href="#" onclick="return doclink('link-54', 'NS_ESESSION_INIT', 'link-54');">NS_ESESSION_INIT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.xmpp.org/extensions/xep-0116.html#ns-init'</tt> <tt class="py-comment"># XEP-0116</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt id="link-55" class="py-name" targets="Variable nbxmpp.protocol.NS_EVENT=nbxmpp.protocol-module.html#NS_EVENT"><a title="nbxmpp.protocol.NS_EVENT" class="py-name" href="#" onclick="return doclink('link-55', 'NS_EVENT', 'link-55');">NS_EVENT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:event'</tt> <tt class="py-comment"># XEP-0022</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt id="link-56" class="py-name" targets="Variable nbxmpp.protocol.NS_FEATURE=nbxmpp.protocol-module.html#NS_FEATURE"><a title="nbxmpp.protocol.NS_FEATURE" class="py-name" href="#" onclick="return doclink('link-56', 'NS_FEATURE', 'link-56');">NS_FEATURE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/feature-neg'</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt id="link-57" class="py-name" targets="Variable nbxmpp.protocol.NS_FILE=nbxmpp.protocol-module.html#NS_FILE"><a title="nbxmpp.protocol.NS_FILE" class="py-name" href="#" onclick="return doclink('link-57', 'NS_FILE', 'link-57');">NS_FILE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/si/profile/file-transfer'</tt> <tt class="py-comment"># XEP-0096</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt id="link-58" class="py-name" targets="Variable nbxmpp.protocol.NS_FORWARD=nbxmpp.protocol-module.html#NS_FORWARD"><a title="nbxmpp.protocol.NS_FORWARD" class="py-name" href="#" onclick="return doclink('link-58', 'NS_FORWARD', 'link-58');">NS_FORWARD</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:forward:0'</tt> <tt class="py-comment"># XEP-0297</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt id="link-59" class="py-name" targets="Variable nbxmpp.protocol.NS_GAMING=nbxmpp.protocol-module.html#NS_GAMING"><a title="nbxmpp.protocol.NS_GAMING" class="py-name" href="#" onclick="return doclink('link-59', 'NS_GAMING', 'link-59');">NS_GAMING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/gaming'</tt> <tt class="py-comment"># XEP-0196</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt id="link-60" class="py-name" targets="Variable nbxmpp.protocol.NS_GATEWAY=nbxmpp.protocol-module.html#NS_GATEWAY"><a title="nbxmpp.protocol.NS_GATEWAY" class="py-name" href="#" onclick="return doclink('link-60', 'NS_GATEWAY', 'link-60');">NS_GATEWAY</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:gateway'</tt> <tt class="py-comment"># XEP-0100</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt id="link-61" class="py-name" targets="Variable nbxmpp.protocol.NS_GEOLOC=nbxmpp.protocol-module.html#NS_GEOLOC"><a title="nbxmpp.protocol.NS_GEOLOC" class="py-name" href="#" onclick="return doclink('link-61', 'NS_GEOLOC', 'link-61');">NS_GEOLOC</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/geoloc'</tt> <tt class="py-comment"># XEP-0080</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt id="link-62" class="py-name" targets="Variable nbxmpp.protocol.NS_GROUPCHAT=nbxmpp.protocol-module.html#NS_GROUPCHAT"><a title="nbxmpp.protocol.NS_GROUPCHAT" class="py-name" href="#" onclick="return doclink('link-62', 'NS_GROUPCHAT', 'link-62');">NS_GROUPCHAT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'gc-1.0'</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt id="link-63" class="py-name" targets="Variable nbxmpp.protocol.NS_HTTP_AUTH=nbxmpp.protocol-module.html#NS_HTTP_AUTH"><a title="nbxmpp.protocol.NS_HTTP_AUTH" class="py-name" href="#" onclick="return doclink('link-63', 'NS_HTTP_AUTH', 'link-63');">NS_HTTP_AUTH</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/http-auth'</tt> <tt class="py-comment"># XEP-0070</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt id="link-64" class="py-name" targets="Variable nbxmpp.protocol.NS_HTTP_BIND=nbxmpp.protocol-module.html#NS_HTTP_BIND"><a title="nbxmpp.protocol.NS_HTTP_BIND" class="py-name" href="#" onclick="return doclink('link-64', 'NS_HTTP_BIND', 'link-64');">NS_HTTP_BIND</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/httpbind'</tt> <tt class="py-comment"># XEP-0124</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt id="link-65" class="py-name" targets="Variable nbxmpp.protocol.NS_IBB=nbxmpp.protocol-module.html#NS_IBB"><a title="nbxmpp.protocol.NS_IBB" class="py-name" href="#" onclick="return doclink('link-65', 'NS_IBB', 'link-65');">NS_IBB</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/ibb'</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt id="link-66" class="py-name" targets="Variable nbxmpp.protocol.NS_INVISIBLE=nbxmpp.protocol-module.html#NS_INVISIBLE"><a title="nbxmpp.protocol.NS_INVISIBLE" class="py-name" href="#" onclick="return doclink('link-66', 'NS_INVISIBLE', 'link-66');">NS_INVISIBLE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'presence-invisible'</tt> <tt class="py-comment"># Jabberd2</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt id="link-67" class="py-name" targets="Variable nbxmpp.protocol.NS_IQ=nbxmpp.protocol-module.html#NS_IQ"><a title="nbxmpp.protocol.NS_IQ" class="py-name" href="#" onclick="return doclink('link-67', 'NS_IQ', 'link-67');">NS_IQ</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'iq'</tt> <tt class="py-comment"># Jabberd2</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt id="link-68" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE=nbxmpp.protocol-module.html#NS_JINGLE"><a title="nbxmpp.protocol.NS_JINGLE" class="py-name" href="#" onclick="return doclink('link-68', 'NS_JINGLE', 'link-68');">NS_JINGLE</a></tt> <tt class="py-op">=</tt><tt class="py-string">'urn:xmpp:jingle:1'</tt> <tt class="py-comment"># XEP-0166</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt id="link-69" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_ERRORS=nbxmpp.protocol-module.html#NS_JINGLE_ERRORS"><a title="nbxmpp.protocol.NS_JINGLE_ERRORS" class="py-name" href="#" onclick="return doclink('link-69', 'NS_JINGLE_ERRORS', 'link-69');">NS_JINGLE_ERRORS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:errors:1'</tt> <tt class="py-comment"># XEP-0166</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt id="link-70" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_RTP=nbxmpp.protocol-module.html#NS_JINGLE_RTP"><a title="nbxmpp.protocol.NS_JINGLE_RTP" class="py-name" href="#" onclick="return doclink('link-70', 'NS_JINGLE_RTP', 'link-70');">NS_JINGLE_RTP</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:apps:rtp:1'</tt> <tt class="py-comment"># XEP-0167</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt id="link-71" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_RTP_AUDIO=nbxmpp.protocol-module.html#NS_JINGLE_RTP_AUDIO"><a title="nbxmpp.protocol.NS_JINGLE_RTP_AUDIO" class="py-name" href="#" onclick="return doclink('link-71', 'NS_JINGLE_RTP_AUDIO', 'link-71');">NS_JINGLE_RTP_AUDIO</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:apps:rtp:audio'</tt> <tt class="py-comment"># XEP-0167</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt id="link-72" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_RTP_VIDEO=nbxmpp.protocol-module.html#NS_JINGLE_RTP_VIDEO"><a title="nbxmpp.protocol.NS_JINGLE_RTP_VIDEO" class="py-name" href="#" onclick="return doclink('link-72', 'NS_JINGLE_RTP_VIDEO', 'link-72');">NS_JINGLE_RTP_VIDEO</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:apps:rtp:video'</tt> <tt class="py-comment"># XEP-0167</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt id="link-73" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_FILE_TRANSFER=nbxmpp.protocol-module.html#NS_JINGLE_FILE_TRANSFER"><a title="nbxmpp.protocol.NS_JINGLE_FILE_TRANSFER" class="py-name" href="#" onclick="return doclink('link-73', 'NS_JINGLE_FILE_TRANSFER', 'link-73');">NS_JINGLE_FILE_TRANSFER</a></tt> <tt class="py-op">=</tt><tt class="py-string">'urn:xmpp:jingle:apps:file-transfer:3'</tt> <tt class="py-comment"># XEP-0234</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt id="link-74" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_XTLS=nbxmpp.protocol-module.html#NS_JINGLE_XTLS"><a title="nbxmpp.protocol.NS_JINGLE_XTLS" class="py-name" href="#" onclick="return doclink('link-74', 'NS_JINGLE_XTLS', 'link-74');">NS_JINGLE_XTLS</a></tt><tt class="py-op">=</tt><tt class="py-string">'urn:xmpp:jingle:security:xtls:0'</tt> <tt class="py-comment"># XTLS: EXPERIMENTAL security layer of jingle</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt id="link-75" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_RAW_UDP=nbxmpp.protocol-module.html#NS_JINGLE_RAW_UDP"><a title="nbxmpp.protocol.NS_JINGLE_RAW_UDP" class="py-name" href="#" onclick="return doclink('link-75', 'NS_JINGLE_RAW_UDP', 'link-75');">NS_JINGLE_RAW_UDP</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:transports:raw-udp:1'</tt> <tt class="py-comment"># XEP-0177</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt id="link-76" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_ICE_UDP=nbxmpp.protocol-module.html#NS_JINGLE_ICE_UDP"><a title="nbxmpp.protocol.NS_JINGLE_ICE_UDP" class="py-name" href="#" onclick="return doclink('link-76', 'NS_JINGLE_ICE_UDP', 'link-76');">NS_JINGLE_ICE_UDP</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:transports:ice-udp:1'</tt> <tt class="py-comment"># XEP-0176</tt> </tt>
+<a name="L100"></a><tt class="py-lineno"> 100</tt> <tt class="py-line"><tt id="link-77" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_BYTESTREAM=nbxmpp.protocol-module.html#NS_JINGLE_BYTESTREAM"><a title="nbxmpp.protocol.NS_JINGLE_BYTESTREAM" class="py-name" href="#" onclick="return doclink('link-77', 'NS_JINGLE_BYTESTREAM', 'link-77');">NS_JINGLE_BYTESTREAM</a></tt> <tt class="py-op">=</tt><tt class="py-string">'urn:xmpp:jingle:transports:s5b:1'</tt> <tt class="py-comment"># XEP-0260</tt> </tt>
+<a name="L101"></a><tt class="py-lineno"> 101</tt> <tt class="py-line"><tt id="link-78" class="py-name" targets="Variable nbxmpp.protocol.NS_JINGLE_IBB=nbxmpp.protocol-module.html#NS_JINGLE_IBB"><a title="nbxmpp.protocol.NS_JINGLE_IBB" class="py-name" href="#" onclick="return doclink('link-78', 'NS_JINGLE_IBB', 'link-78');">NS_JINGLE_IBB</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:jingle:transports:ibb:1'</tt> <tt class="py-comment"># XEP-0261</tt> </tt>
+<a name="L102"></a><tt class="py-lineno"> 102</tt> <tt class="py-line"><tt id="link-79" class="py-name" targets="Variable nbxmpp.protocol.NS_LAST=nbxmpp.protocol-module.html#NS_LAST"><a title="nbxmpp.protocol.NS_LAST" class="py-name" href="#" onclick="return doclink('link-79', 'NS_LAST', 'link-79');">NS_LAST</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:last'</tt> </tt>
+<a name="L103"></a><tt class="py-lineno"> 103</tt> <tt class="py-line"><tt id="link-80" class="py-name" targets="Variable nbxmpp.protocol.NS_LOCATION=nbxmpp.protocol-module.html#NS_LOCATION"><a title="nbxmpp.protocol.NS_LOCATION" class="py-name" href="#" onclick="return doclink('link-80', 'NS_LOCATION', 'link-80');">NS_LOCATION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/geoloc'</tt> <tt class="py-comment"># XEP-0080</tt> </tt>
+<a name="L104"></a><tt class="py-lineno"> 104</tt> <tt class="py-line"><tt id="link-81" class="py-name" targets="Variable nbxmpp.protocol.NS_MAM=nbxmpp.protocol-module.html#NS_MAM"><a title="nbxmpp.protocol.NS_MAM" class="py-name" href="#" onclick="return doclink('link-81', 'NS_MAM', 'link-81');">NS_MAM</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:mam:tmp'</tt> <tt class="py-comment"># XEP-0313</tt> </tt>
+<a name="L105"></a><tt class="py-lineno"> 105</tt> <tt class="py-line"><tt id="link-82" class="py-name" targets="Variable nbxmpp.protocol.NS_MESSAGE=nbxmpp.protocol-module.html#NS_MESSAGE"><a title="nbxmpp.protocol.NS_MESSAGE" class="py-name" href="#" onclick="return doclink('link-82', 'NS_MESSAGE', 'link-82');">NS_MESSAGE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'message'</tt> <tt class="py-comment"># Jabberd2</tt> </tt>
+<a name="L106"></a><tt class="py-lineno"> 106</tt> <tt class="py-line"><tt id="link-83" class="py-name" targets="Variable nbxmpp.protocol.NS_MOOD=nbxmpp.protocol-module.html#NS_MOOD"><a title="nbxmpp.protocol.NS_MOOD" class="py-name" href="#" onclick="return doclink('link-83', 'NS_MOOD', 'link-83');">NS_MOOD</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/mood'</tt> <tt class="py-comment"># XEP-0107</tt> </tt>
+<a name="L107"></a><tt class="py-lineno"> 107</tt> <tt class="py-line"><tt id="link-84" class="py-name" targets="Variable nbxmpp.protocol.NS_MUC=nbxmpp.protocol-module.html#NS_MUC"><a title="nbxmpp.protocol.NS_MUC" class="py-name" href="#" onclick="return doclink('link-84', 'NS_MUC', 'link-84');">NS_MUC</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/muc'</tt> </tt>
+<a name="L108"></a><tt class="py-lineno"> 108</tt> <tt class="py-line"><tt id="link-85" class="py-name" targets="Variable nbxmpp.protocol.NS_MUC_USER=nbxmpp.protocol-module.html#NS_MUC_USER"><a title="nbxmpp.protocol.NS_MUC_USER" class="py-name" href="#" onclick="return doclink('link-85', 'NS_MUC_USER', 'link-85');">NS_MUC_USER</a></tt> <tt class="py-op">=</tt> <tt id="link-86" class="py-name"><a title="nbxmpp.protocol.NS_MUC" class="py-name" href="#" onclick="return doclink('link-86', 'NS_MUC', 'link-84');">NS_MUC</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#user'</tt> </tt>
+<a name="L109"></a><tt class="py-lineno"> 109</tt> <tt class="py-line"><tt id="link-87" class="py-name" targets="Variable nbxmpp.protocol.NS_MUC_ADMIN=nbxmpp.protocol-module.html#NS_MUC_ADMIN"><a title="nbxmpp.protocol.NS_MUC_ADMIN" class="py-name" href="#" onclick="return doclink('link-87', 'NS_MUC_ADMIN', 'link-87');">NS_MUC_ADMIN</a></tt> <tt class="py-op">=</tt> <tt id="link-88" class="py-name"><a title="nbxmpp.protocol.NS_MUC" class="py-name" href="#" onclick="return doclink('link-88', 'NS_MUC', 'link-84');">NS_MUC</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#admin'</tt> </tt>
+<a name="L110"></a><tt class="py-lineno"> 110</tt> <tt class="py-line"><tt id="link-89" class="py-name" targets="Variable nbxmpp.protocol.NS_MUC_OWNER=nbxmpp.protocol-module.html#NS_MUC_OWNER"><a title="nbxmpp.protocol.NS_MUC_OWNER" class="py-name" href="#" onclick="return doclink('link-89', 'NS_MUC_OWNER', 'link-89');">NS_MUC_OWNER</a></tt> <tt class="py-op">=</tt> <tt id="link-90" class="py-name"><a title="nbxmpp.protocol.NS_MUC" class="py-name" href="#" onclick="return doclink('link-90', 'NS_MUC', 'link-84');">NS_MUC</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#owner'</tt> </tt>
+<a name="L111"></a><tt class="py-lineno"> 111</tt> <tt class="py-line"><tt id="link-91" class="py-name" targets="Variable nbxmpp.protocol.NS_MUC_UNIQUE=nbxmpp.protocol-module.html#NS_MUC_UNIQUE"><a title="nbxmpp.protocol.NS_MUC_UNIQUE" class="py-name" href="#" onclick="return doclink('link-91', 'NS_MUC_UNIQUE', 'link-91');">NS_MUC_UNIQUE</a></tt> <tt class="py-op">=</tt> <tt id="link-92" class="py-name"><a title="nbxmpp.protocol.NS_MUC" class="py-name" href="#" onclick="return doclink('link-92', 'NS_MUC', 'link-84');">NS_MUC</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#unique'</tt> </tt>
+<a name="L112"></a><tt class="py-lineno"> 112</tt> <tt class="py-line"><tt id="link-93" class="py-name" targets="Variable nbxmpp.protocol.NS_MUC_CONFIG=nbxmpp.protocol-module.html#NS_MUC_CONFIG"><a title="nbxmpp.protocol.NS_MUC_CONFIG" class="py-name" href="#" onclick="return doclink('link-93', 'NS_MUC_CONFIG', 'link-93');">NS_MUC_CONFIG</a></tt> <tt class="py-op">=</tt> <tt id="link-94" class="py-name"><a title="nbxmpp.protocol.NS_MUC" class="py-name" href="#" onclick="return doclink('link-94', 'NS_MUC', 'link-84');">NS_MUC</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#roomconfig'</tt> </tt>
+<a name="L113"></a><tt class="py-lineno"> 113</tt> <tt class="py-line"><tt id="link-95" class="py-name" targets="Variable nbxmpp.protocol.NS_NICK=nbxmpp.protocol-module.html#NS_NICK"><a title="nbxmpp.protocol.NS_NICK" class="py-name" href="#" onclick="return doclink('link-95', 'NS_NICK', 'link-95');">NS_NICK</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/nick'</tt> <tt class="py-comment"># XEP-0172</tt> </tt>
+<a name="L114"></a><tt class="py-lineno"> 114</tt> <tt class="py-line"><tt id="link-96" class="py-name" targets="Variable nbxmpp.protocol.NS_OFFLINE=nbxmpp.protocol-module.html#NS_OFFLINE"><a title="nbxmpp.protocol.NS_OFFLINE" class="py-name" href="#" onclick="return doclink('link-96', 'NS_OFFLINE', 'link-96');">NS_OFFLINE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.jabber.org/jeps/jep-0030.html'</tt> <tt class="py-comment"># XEP-0013</tt> </tt>
+<a name="L115"></a><tt class="py-lineno"> 115</tt> <tt class="py-line"><tt id="link-97" class="py-name" targets="Variable nbxmpp.protocol.NS_PHYSLOC=nbxmpp.protocol-module.html#NS_PHYSLOC"><a title="nbxmpp.protocol.NS_PHYSLOC" class="py-name" href="#" onclick="return doclink('link-97', 'NS_PHYSLOC', 'link-97');">NS_PHYSLOC</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/physloc'</tt> <tt class="py-comment"># XEP-0112</tt> </tt>
+<a name="L116"></a><tt class="py-lineno"> 116</tt> <tt class="py-line"><tt id="link-98" class="py-name" targets="Variable nbxmpp.protocol.NS_PING=nbxmpp.protocol-module.html#NS_PING"><a title="nbxmpp.protocol.NS_PING" class="py-name" href="#" onclick="return doclink('link-98', 'NS_PING', 'link-98');">NS_PING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:ping'</tt> <tt class="py-comment"># XEP-0199</tt> </tt>
+<a name="L117"></a><tt class="py-lineno"> 117</tt> <tt class="py-line"><tt id="link-99" class="py-name" targets="Variable nbxmpp.protocol.NS_PRESENCE=nbxmpp.protocol-module.html#NS_PRESENCE"><a title="nbxmpp.protocol.NS_PRESENCE" class="py-name" href="#" onclick="return doclink('link-99', 'NS_PRESENCE', 'link-99');">NS_PRESENCE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'presence'</tt> <tt class="py-comment"># Jabberd2</tt> </tt>
+<a name="L118"></a><tt class="py-lineno"> 118</tt> <tt class="py-line"><tt id="link-100" class="py-name" targets="Variable nbxmpp.protocol.NS_PRIVACY=nbxmpp.protocol-module.html#NS_PRIVACY"><a title="nbxmpp.protocol.NS_PRIVACY" class="py-name" href="#" onclick="return doclink('link-100', 'NS_PRIVACY', 'link-100');">NS_PRIVACY</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:privacy'</tt> </tt>
+<a name="L119"></a><tt class="py-lineno"> 119</tt> <tt class="py-line"><tt id="link-101" class="py-name" targets="Variable nbxmpp.protocol.NS_PRIVATE=nbxmpp.protocol-module.html#NS_PRIVATE"><a title="nbxmpp.protocol.NS_PRIVATE" class="py-name" href="#" onclick="return doclink('link-101', 'NS_PRIVATE', 'link-101');">NS_PRIVATE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:private'</tt> </tt>
+<a name="L120"></a><tt class="py-lineno"> 120</tt> <tt class="py-line"><tt id="link-102" class="py-name" targets="Variable nbxmpp.protocol.NS_PROFILE=nbxmpp.protocol-module.html#NS_PROFILE"><a title="nbxmpp.protocol.NS_PROFILE" class="py-name" href="#" onclick="return doclink('link-102', 'NS_PROFILE', 'link-102');">NS_PROFILE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/profile'</tt> <tt class="py-comment"># XEP-0154</tt> </tt>
+<a name="L121"></a><tt class="py-lineno"> 121</tt> <tt class="py-line"><tt id="link-103" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBSUB=nbxmpp.protocol-module.html#NS_PUBSUB"><a title="nbxmpp.protocol.NS_PUBSUB" class="py-name" href="#" onclick="return doclink('link-103', 'NS_PUBSUB', 'link-103');">NS_PUBSUB</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/pubsub'</tt> <tt class="py-comment"># XEP-0060</tt> </tt>
+<a name="L122"></a><tt class="py-lineno"> 122</tt> <tt class="py-line"><tt id="link-104" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBSUB_EVENT=nbxmpp.protocol-module.html#NS_PUBSUB_EVENT"><a title="nbxmpp.protocol.NS_PUBSUB_EVENT" class="py-name" href="#" onclick="return doclink('link-104', 'NS_PUBSUB_EVENT', 'link-104');">NS_PUBSUB_EVENT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/pubsub#event'</tt> </tt>
+<a name="L123"></a><tt class="py-lineno"> 123</tt> <tt class="py-line"><tt id="link-105" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBSUB_PUBLISH_OPTIONS=nbxmpp.protocol-module.html#NS_PUBSUB_PUBLISH_OPTIONS"><a title="nbxmpp.protocol.NS_PUBSUB_PUBLISH_OPTIONS" class="py-name" href="#" onclick="return doclink('link-105', 'NS_PUBSUB_PUBLISH_OPTIONS', 'link-105');">NS_PUBSUB_PUBLISH_OPTIONS</a></tt> <tt class="py-op">=</tt> <tt id="link-106" class="py-name"><a title="nbxmpp.protocol.NS_PUBSUB" class="py-name" href="#" onclick="return doclink('link-106', 'NS_PUBSUB', 'link-103');">NS_PUBSUB</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'#publish-options'</tt> <tt class="py-comment"># XEP-0060</tt> </tt>
+<a name="L124"></a><tt class="py-lineno"> 124</tt> <tt class="py-line"><tt id="link-107" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBSUB_OWNER=nbxmpp.protocol-module.html#NS_PUBSUB_OWNER"><a title="nbxmpp.protocol.NS_PUBSUB_OWNER" class="py-name" href="#" onclick="return doclink('link-107', 'NS_PUBSUB_OWNER', 'link-107');">NS_PUBSUB_OWNER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/pubsub#owner'</tt> <tt class="py-comment"># XEP-0060</tt> </tt>
+<a name="L125"></a><tt class="py-lineno"> 125</tt> <tt class="py-line"><tt id="link-108" class="py-name" targets="Variable nbxmpp.protocol.NS_REGISTER=nbxmpp.protocol-module.html#NS_REGISTER"><a title="nbxmpp.protocol.NS_REGISTER" class="py-name" href="#" onclick="return doclink('link-108', 'NS_REGISTER', 'link-108');">NS_REGISTER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:register'</tt> </tt>
+<a name="L126"></a><tt class="py-lineno"> 126</tt> <tt class="py-line"><tt id="link-109" class="py-name" targets="Variable nbxmpp.protocol.NS_ROSTER=nbxmpp.protocol-module.html#NS_ROSTER"><a title="nbxmpp.protocol.NS_ROSTER" class="py-name" href="#" onclick="return doclink('link-109', 'NS_ROSTER', 'link-109');">NS_ROSTER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:roster'</tt> </tt>
+<a name="L127"></a><tt class="py-lineno"> 127</tt> <tt class="py-line"><tt id="link-110" class="py-name" targets="Variable nbxmpp.protocol.NS_ROSTERNOTES=nbxmpp.protocol-module.html#NS_ROSTERNOTES"><a title="nbxmpp.protocol.NS_ROSTERNOTES" class="py-name" href="#" onclick="return doclink('link-110', 'NS_ROSTERNOTES', 'link-110');">NS_ROSTERNOTES</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'storage:rosternotes'</tt> </tt>
+<a name="L128"></a><tt class="py-lineno"> 128</tt> <tt class="py-line"><tt id="link-111" class="py-name" targets="Variable nbxmpp.protocol.NS_ROSTERX=nbxmpp.protocol-module.html#NS_ROSTERX"><a title="nbxmpp.protocol.NS_ROSTERX" class="py-name" href="#" onclick="return doclink('link-111', 'NS_ROSTERX', 'link-111');">NS_ROSTERX</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/rosterx'</tt> <tt class="py-comment"># XEP-0144</tt> </tt>
+<a name="L129"></a><tt class="py-lineno"> 129</tt> <tt class="py-line"><tt id="link-112" class="py-name" targets="Variable nbxmpp.protocol.NS_ROSTER_VER=nbxmpp.protocol-module.html#NS_ROSTER_VER"><a title="nbxmpp.protocol.NS_ROSTER_VER" class="py-name" href="#" onclick="return doclink('link-112', 'NS_ROSTER_VER', 'link-112');">NS_ROSTER_VER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:features:rosterver'</tt> <tt class="py-comment"># XEP-0273</tt> </tt>
+<a name="L130"></a><tt class="py-lineno"> 130</tt> <tt class="py-line"><tt id="link-113" class="py-name" targets="Variable nbxmpp.protocol.NS_RPC=nbxmpp.protocol-module.html#NS_RPC"><a title="nbxmpp.protocol.NS_RPC" class="py-name" href="#" onclick="return doclink('link-113', 'NS_RPC', 'link-113');">NS_RPC</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:rpc'</tt> <tt class="py-comment"># XEP-0009</tt> </tt>
+<a name="L131"></a><tt class="py-lineno"> 131</tt> <tt class="py-line"><tt id="link-114" class="py-name" targets="Variable nbxmpp.protocol.NS_RSM=nbxmpp.protocol-module.html#NS_RSM"><a title="nbxmpp.protocol.NS_RSM" class="py-name" href="#" onclick="return doclink('link-114', 'NS_RSM', 'link-114');">NS_RSM</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/rsm'</tt> </tt>
+<a name="L132"></a><tt class="py-lineno"> 132</tt> <tt class="py-line"><tt id="link-115" class="py-name" targets="Variable nbxmpp.protocol.NS_SASL=nbxmpp.protocol-module.html#NS_SASL"><a title="nbxmpp.protocol.NS_SASL" class="py-name" href="#" onclick="return doclink('link-115', 'NS_SASL', 'link-115');">NS_SASL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl'</tt> </tt>
+<a name="L133"></a><tt class="py-lineno"> 133</tt> <tt class="py-line"><tt id="link-116" class="py-name" targets="Variable nbxmpp.protocol.NS_SECLABEL=nbxmpp.protocol-module.html#NS_SECLABEL"><a title="nbxmpp.protocol.NS_SECLABEL" class="py-name" href="#" onclick="return doclink('link-116', 'NS_SECLABEL', 'link-116');">NS_SECLABEL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:sec-label:0'</tt> </tt>
+<a name="L134"></a><tt class="py-lineno"> 134</tt> <tt class="py-line"><tt id="link-117" class="py-name" targets="Variable nbxmpp.protocol.NS_SECLABEL_CATALOG=nbxmpp.protocol-module.html#NS_SECLABEL_CATALOG"><a title="nbxmpp.protocol.NS_SECLABEL_CATALOG" class="py-name" href="#" onclick="return doclink('link-117', 'NS_SECLABEL_CATALOG', 'link-117');">NS_SECLABEL_CATALOG</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:sec-label:catalog:2'</tt> </tt>
+<a name="L135"></a><tt class="py-lineno"> 135</tt> <tt class="py-line"><tt id="link-118" class="py-name" targets="Variable nbxmpp.protocol.NS_SEARCH=nbxmpp.protocol-module.html#NS_SEARCH"><a title="nbxmpp.protocol.NS_SEARCH" class="py-name" href="#" onclick="return doclink('link-118', 'NS_SEARCH', 'link-118');">NS_SEARCH</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:search'</tt> </tt>
+<a name="L136"></a><tt class="py-lineno"> 136</tt> <tt class="py-line"><tt id="link-119" class="py-name" targets="Variable nbxmpp.protocol.NS_SERVER=nbxmpp.protocol-module.html#NS_SERVER"><a title="nbxmpp.protocol.NS_SERVER" class="py-name" href="#" onclick="return doclink('link-119', 'NS_SERVER', 'link-119');">NS_SERVER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:server'</tt> </tt>
+<a name="L137"></a><tt class="py-lineno"> 137</tt> <tt class="py-line"><tt id="link-120" class="py-name" targets="Variable nbxmpp.protocol.NS_SESSION=nbxmpp.protocol-module.html#NS_SESSION"><a title="nbxmpp.protocol.NS_SESSION" class="py-name" href="#" onclick="return doclink('link-120', 'NS_SESSION', 'link-120');">NS_SESSION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-session'</tt> </tt>
+<a name="L138"></a><tt class="py-lineno"> 138</tt> <tt class="py-line"><tt id="link-121" class="py-name" targets="Variable nbxmpp.protocol.NS_SI=nbxmpp.protocol-module.html#NS_SI"><a title="nbxmpp.protocol.NS_SI" class="py-name" href="#" onclick="return doclink('link-121', 'NS_SI', 'link-121');">NS_SI</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/si'</tt> <tt class="py-comment"># XEP-0096</tt> </tt>
+<a name="L139"></a><tt class="py-lineno"> 139</tt> <tt class="py-line"><tt id="link-122" class="py-name" targets="Variable nbxmpp.protocol.NS_SI_PUB=nbxmpp.protocol-module.html#NS_SI_PUB"><a title="nbxmpp.protocol.NS_SI_PUB" class="py-name" href="#" onclick="return doclink('link-122', 'NS_SI_PUB', 'link-122');">NS_SI_PUB</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/sipub'</tt> <tt class="py-comment"># XEP-0137</tt> </tt>
+<a name="L140"></a><tt class="py-lineno"> 140</tt> <tt class="py-line"><tt id="link-123" class="py-name" targets="Variable nbxmpp.protocol.NS_SIGNED=nbxmpp.protocol-module.html#NS_SIGNED"><a title="nbxmpp.protocol.NS_SIGNED" class="py-name" href="#" onclick="return doclink('link-123', 'NS_SIGNED', 'link-123');">NS_SIGNED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:signed'</tt> <tt class="py-comment"># XEP-0027</tt> </tt>
+<a name="L141"></a><tt class="py-lineno"> 141</tt> <tt class="py-line"><tt id="link-124" class="py-name" targets="Variable nbxmpp.protocol.NS_SSN=nbxmpp.protocol-module.html#NS_SSN"><a title="nbxmpp.protocol.NS_SSN" class="py-name" href="#" onclick="return doclink('link-124', 'NS_SSN', 'link-124');">NS_SSN</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:ssn'</tt> <tt class="py-comment"># XEP-0155</tt> </tt>
+<a name="L142"></a><tt class="py-lineno"> 142</tt> <tt class="py-line"><tt id="link-125" class="py-name" targets="Variable nbxmpp.protocol.NS_STANZA_CRYPTO=nbxmpp.protocol-module.html#NS_STANZA_CRYPTO"><a title="nbxmpp.protocol.NS_STANZA_CRYPTO" class="py-name" href="#" onclick="return doclink('link-125', 'NS_STANZA_CRYPTO', 'link-125');">NS_STANZA_CRYPTO</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.xmpp.org/extensions/xep-0200.html#ns'</tt> <tt class="py-comment"># XEP-0200</tt> </tt>
+<a name="L143"></a><tt class="py-lineno"> 143</tt> <tt class="py-line"><tt id="link-126" class="py-name" targets="Variable nbxmpp.protocol.NS_STANZAS=nbxmpp.protocol-module.html#NS_STANZAS"><a title="nbxmpp.protocol.NS_STANZAS" class="py-name" href="#" onclick="return doclink('link-126', 'NS_STANZAS', 'link-126');">NS_STANZAS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas'</tt> </tt>
+<a name="L144"></a><tt class="py-lineno"> 144</tt> <tt class="py-line"><tt id="link-127" class="py-name" targets="Variable nbxmpp.protocol.NS_STREAM=nbxmpp.protocol-module.html#NS_STREAM"><a title="nbxmpp.protocol.NS_STREAM" class="py-name" href="#" onclick="return doclink('link-127', 'NS_STREAM', 'link-127');">NS_STREAM</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://affinix.com/jabber/stream'</tt> </tt>
+<a name="L145"></a><tt class="py-lineno"> 145</tt> <tt class="py-line"><tt id="link-128" class="py-name" targets="Variable nbxmpp.protocol.NS_STREAMS=nbxmpp.protocol-module.html#NS_STREAMS"><a title="nbxmpp.protocol.NS_STREAMS" class="py-name" href="#" onclick="return doclink('link-128', 'NS_STREAMS', 'link-128');">NS_STREAMS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://etherx.jabber.org/streams'</tt> </tt>
+<a name="L146"></a><tt class="py-lineno"> 146</tt> <tt class="py-line"><tt id="link-129" class="py-name" targets="Variable nbxmpp.protocol.NS_TIME=nbxmpp.protocol-module.html#NS_TIME"><a title="nbxmpp.protocol.NS_TIME" class="py-name" href="#" onclick="return doclink('link-129', 'NS_TIME', 'link-129');">NS_TIME</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:time'</tt> <tt class="py-comment"># XEP-0900</tt> </tt>
+<a name="L147"></a><tt class="py-lineno"> 147</tt> <tt class="py-line"><tt id="link-130" class="py-name" targets="Variable nbxmpp.protocol.NS_TIME_REVISED=nbxmpp.protocol-module.html#NS_TIME_REVISED"><a title="nbxmpp.protocol.NS_TIME_REVISED" class="py-name" href="#" onclick="return doclink('link-130', 'NS_TIME_REVISED', 'link-130');">NS_TIME_REVISED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:time'</tt> <tt class="py-comment"># XEP-0202</tt> </tt>
+<a name="L148"></a><tt class="py-lineno"> 148</tt> <tt class="py-line"><tt id="link-131" class="py-name" targets="Variable nbxmpp.protocol.NS_TLS=nbxmpp.protocol-module.html#NS_TLS"><a title="nbxmpp.protocol.NS_TLS" class="py-name" href="#" onclick="return doclink('link-131', 'NS_TLS', 'link-131');">NS_TLS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-tls'</tt> </tt>
+<a name="L149"></a><tt class="py-lineno"> 149</tt> <tt class="py-line"><tt id="link-132" class="py-name" targets="Variable nbxmpp.protocol.NS_TUNE=nbxmpp.protocol-module.html#NS_TUNE"><a title="nbxmpp.protocol.NS_TUNE" class="py-name" href="#" onclick="return doclink('link-132', 'NS_TUNE', 'link-132');">NS_TUNE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/tune'</tt> <tt class="py-comment"># XEP-0118</tt> </tt>
+<a name="L150"></a><tt class="py-lineno"> 150</tt> <tt class="py-line"><tt id="link-133" class="py-name" targets="Variable nbxmpp.protocol.NS_VACATION=nbxmpp.protocol-module.html#NS_VACATION"><a title="nbxmpp.protocol.NS_VACATION" class="py-name" href="#" onclick="return doclink('link-133', 'NS_VACATION', 'link-133');">NS_VACATION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/vacation'</tt> </tt>
+<a name="L151"></a><tt class="py-lineno"> 151</tt> <tt class="py-line"><tt id="link-134" class="py-name" targets="Variable nbxmpp.protocol.NS_VCARD=nbxmpp.protocol-module.html#NS_VCARD"><a title="nbxmpp.protocol.NS_VCARD" class="py-name" href="#" onclick="return doclink('link-134', 'NS_VCARD', 'link-134');">NS_VCARD</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'vcard-temp'</tt> </tt>
+<a name="L152"></a><tt class="py-lineno"> 152</tt> <tt class="py-line"><tt id="link-135" class="py-name" targets="Variable nbxmpp.protocol.NS_GMAILNOTIFY=nbxmpp.protocol-module.html#NS_GMAILNOTIFY"><a title="nbxmpp.protocol.NS_GMAILNOTIFY" class="py-name" href="#" onclick="return doclink('link-135', 'NS_GMAILNOTIFY', 'link-135');">NS_GMAILNOTIFY</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'google:mail:notify'</tt> </tt>
+<a name="L153"></a><tt class="py-lineno"> 153</tt> <tt class="py-line"><tt id="link-136" class="py-name" targets="Variable nbxmpp.protocol.NS_GTALKSETTING=nbxmpp.protocol-module.html#NS_GTALKSETTING"><a title="nbxmpp.protocol.NS_GTALKSETTING" class="py-name" href="#" onclick="return doclink('link-136', 'NS_GTALKSETTING', 'link-136');">NS_GTALKSETTING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'google:setting'</tt> </tt>
+<a name="L154"></a><tt class="py-lineno"> 154</tt> <tt class="py-line"><tt id="link-137" class="py-name" targets="Variable nbxmpp.protocol.NS_VCARD_UPDATE=nbxmpp.protocol-module.html#NS_VCARD_UPDATE"><a title="nbxmpp.protocol.NS_VCARD_UPDATE" class="py-name" href="#" onclick="return doclink('link-137', 'NS_VCARD_UPDATE', 'link-137');">NS_VCARD_UPDATE</a></tt> <tt class="py-op">=</tt> <tt id="link-138" class="py-name"><a title="nbxmpp.protocol.NS_VCARD" class="py-name" href="#" onclick="return doclink('link-138', 'NS_VCARD', 'link-134');">NS_VCARD</a></tt> <tt class="py-op">+</tt> <tt class="py-string">':x:update'</tt> </tt>
+<a name="L155"></a><tt class="py-lineno"> 155</tt> <tt class="py-line"><tt id="link-139" class="py-name" targets="Variable nbxmpp.protocol.NS_VERSION=nbxmpp.protocol-module.html#NS_VERSION"><a title="nbxmpp.protocol.NS_VERSION" class="py-name" href="#" onclick="return doclink('link-139', 'NS_VERSION', 'link-139');">NS_VERSION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:iq:version'</tt> </tt>
+<a name="L156"></a><tt class="py-lineno"> 156</tt> <tt class="py-line"><tt id="link-140" class="py-name" targets="Variable nbxmpp.protocol.NS_VIEWING=nbxmpp.protocol-module.html#NS_VIEWING"><a title="nbxmpp.protocol.NS_VIEWING" class="py-name" href="#" onclick="return doclink('link-140', 'NS_VIEWING', 'link-140');">NS_VIEWING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/viewing'</tt> <tt class="py-comment"># XEP--197</tt> </tt>
+<a name="L157"></a><tt class="py-lineno"> 157</tt> <tt class="py-line"><tt id="link-141" class="py-name" targets="Variable nbxmpp.protocol.NS_WAITINGLIST=nbxmpp.protocol-module.html#NS_WAITINGLIST"><a title="nbxmpp.protocol.NS_WAITINGLIST" class="py-name" href="#" onclick="return doclink('link-141', 'NS_WAITINGLIST', 'link-141');">NS_WAITINGLIST</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/waitinglist'</tt> <tt class="py-comment"># XEP-0130</tt> </tt>
+<a name="L158"></a><tt class="py-lineno"> 158</tt> <tt class="py-line"><tt id="link-142" class="py-name" targets="Variable nbxmpp.protocol.NS_XHTML_IM=nbxmpp.protocol-module.html#NS_XHTML_IM"><a title="nbxmpp.protocol.NS_XHTML_IM" class="py-name" href="#" onclick="return doclink('link-142', 'NS_XHTML_IM', 'link-142');">NS_XHTML_IM</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/xhtml-im'</tt> <tt class="py-comment"># XEP-0071</tt> </tt>
+<a name="L159"></a><tt class="py-lineno"> 159</tt> <tt class="py-line"><tt id="link-143" class="py-name" targets="Variable nbxmpp.protocol.NS_XHTML=nbxmpp.protocol-module.html#NS_XHTML"><a title="nbxmpp.protocol.NS_XHTML" class="py-name" href="#" onclick="return doclink('link-143', 'NS_XHTML', 'link-143');">NS_XHTML</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://www.w3.org/1999/xhtml'</tt> <tt class="py-comment"># "</tt> </tt>
+<a name="L160"></a><tt class="py-lineno"> 160</tt> <tt class="py-line"><tt id="link-144" class="py-name" targets="Variable nbxmpp.protocol.NS_X_OOB=nbxmpp.protocol-module.html#NS_X_OOB"><a title="nbxmpp.protocol.NS_X_OOB" class="py-name" href="#" onclick="return doclink('link-144', 'NS_X_OOB', 'link-144');">NS_X_OOB</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'jabber:x:oob'</tt> <tt class="py-comment"># XEP-0066</tt> </tt>
+<a name="L161"></a><tt class="py-lineno"> 161</tt> <tt class="py-line"><tt id="link-145" class="py-name" targets="Variable nbxmpp.protocol.NS_DATA_LAYOUT=nbxmpp.protocol-module.html#NS_DATA_LAYOUT"><a title="nbxmpp.protocol.NS_DATA_LAYOUT" class="py-name" href="#" onclick="return doclink('link-145', 'NS_DATA_LAYOUT', 'link-145');">NS_DATA_LAYOUT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/xdata-layout'</tt> <tt class="py-comment"># XEP-0141</tt> </tt>
+<a name="L162"></a><tt class="py-lineno"> 162</tt> <tt class="py-line"><tt id="link-146" class="py-name" targets="Variable nbxmpp.protocol.NS_DATA_VALIDATE=nbxmpp.protocol-module.html#NS_DATA_VALIDATE"><a title="nbxmpp.protocol.NS_DATA_VALIDATE" class="py-name" href="#" onclick="return doclink('link-146', 'NS_DATA_VALIDATE', 'link-146');">NS_DATA_VALIDATE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://jabber.org/protocol/xdata-validate'</tt> <tt class="py-comment"># XEP-0122</tt> </tt>
+<a name="L163"></a><tt class="py-lineno"> 163</tt> <tt class="py-line"><tt id="link-147" class="py-name" targets="Variable nbxmpp.protocol.NS_XMPP_STREAMS=nbxmpp.protocol-module.html#NS_XMPP_STREAMS"><a title="nbxmpp.protocol.NS_XMPP_STREAMS" class="py-name" href="#" onclick="return doclink('link-147', 'NS_XMPP_STREAMS', 'link-147');">NS_XMPP_STREAMS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams'</tt> </tt>
+<a name="L164"></a><tt class="py-lineno"> 164</tt> <tt class="py-line"><tt id="link-148" class="py-name" targets="Variable nbxmpp.protocol.NS_RECEIPTS=nbxmpp.protocol-module.html#NS_RECEIPTS"><a title="nbxmpp.protocol.NS_RECEIPTS" class="py-name" href="#" onclick="return doclink('link-148', 'NS_RECEIPTS', 'link-148');">NS_RECEIPTS</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:receipts'</tt> </tt>
+<a name="L165"></a><tt class="py-lineno"> 165</tt> <tt class="py-line"><tt id="link-149" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBKEY_PUBKEY=nbxmpp.protocol-module.html#NS_PUBKEY_PUBKEY"><a title="nbxmpp.protocol.NS_PUBKEY_PUBKEY" class="py-name" href="#" onclick="return doclink('link-149', 'NS_PUBKEY_PUBKEY', 'link-149');">NS_PUBKEY_PUBKEY</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:pubkey:2'</tt> <tt class="py-comment"># XEP-0189</tt> </tt>
+<a name="L166"></a><tt class="py-lineno"> 166</tt> <tt class="py-line"><tt id="link-150" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBKEY_REVOKE=nbxmpp.protocol-module.html#NS_PUBKEY_REVOKE"><a title="nbxmpp.protocol.NS_PUBKEY_REVOKE" class="py-name" href="#" onclick="return doclink('link-150', 'NS_PUBKEY_REVOKE', 'link-150');">NS_PUBKEY_REVOKE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:revoke:2'</tt> </tt>
+<a name="L167"></a><tt class="py-lineno"> 167</tt> <tt class="py-line"><tt id="link-151" class="py-name" targets="Variable nbxmpp.protocol.NS_PUBKEY_ATTEST=nbxmpp.protocol-module.html#NS_PUBKEY_ATTEST"><a title="nbxmpp.protocol.NS_PUBKEY_ATTEST" class="py-name" href="#" onclick="return doclink('link-151', 'NS_PUBKEY_ATTEST', 'link-151');">NS_PUBKEY_ATTEST</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:attest:2'</tt> </tt>
+<a name="L168"></a><tt class="py-lineno"> 168</tt> <tt class="py-line"><tt id="link-152" class="py-name" targets="Variable nbxmpp.protocol.NS_STREAM_MGMT=nbxmpp.protocol-module.html#NS_STREAM_MGMT"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-152', 'NS_STREAM_MGMT', 'link-152');">NS_STREAM_MGMT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:sm:2'</tt> <tt class="py-comment"># XEP-198</tt> </tt>
+<a name="L169"></a><tt class="py-lineno"> 169</tt> <tt class="py-line"><tt id="link-153" class="py-name" targets="Variable nbxmpp.protocol.NS_HASHES=nbxmpp.protocol-module.html#NS_HASHES"><a title="nbxmpp.protocol.NS_HASHES" class="py-name" href="#" onclick="return doclink('link-153', 'NS_HASHES', 'link-153');">NS_HASHES</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:hashes:1'</tt> <tt class="py-comment"># XEP-300</tt> </tt>
+<a name="L170"></a><tt class="py-lineno"> 170</tt> <tt class="py-line"><tt id="link-154" class="py-name" targets="Variable nbxmpp.protocol.NS_HASHES_MD5=nbxmpp.protocol-module.html#NS_HASHES_MD5"><a title="nbxmpp.protocol.NS_HASHES_MD5" class="py-name" href="#" onclick="return doclink('link-154', 'NS_HASHES_MD5', 'link-154');">NS_HASHES_MD5</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:hash-function-textual-names:md5'</tt> </tt>
+<a name="L171"></a><tt class="py-lineno"> 171</tt> <tt class="py-line"><tt id="link-155" class="py-name" targets="Variable nbxmpp.protocol.NS_HASHES_SHA1=nbxmpp.protocol-module.html#NS_HASHES_SHA1"><a title="nbxmpp.protocol.NS_HASHES_SHA1" class="py-name" href="#" onclick="return doclink('link-155', 'NS_HASHES_SHA1', 'link-155');">NS_HASHES_SHA1</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:hash-function-textual-names:sha-1'</tt> </tt>
+<a name="L172"></a><tt class="py-lineno"> 172</tt> <tt class="py-line"><tt id="link-156" class="py-name" targets="Variable nbxmpp.protocol.NS_HASHES_SHA256=nbxmpp.protocol-module.html#NS_HASHES_SHA256"><a title="nbxmpp.protocol.NS_HASHES_SHA256" class="py-name" href="#" onclick="return doclink('link-156', 'NS_HASHES_SHA256', 'link-156');">NS_HASHES_SHA256</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:hash-function-textual-names:sha-256'</tt> </tt>
+<a name="L173"></a><tt class="py-lineno"> 173</tt> <tt class="py-line"><tt id="link-157" class="py-name" targets="Variable nbxmpp.protocol.NS_HASHES_SHA512=nbxmpp.protocol-module.html#NS_HASHES_SHA512"><a title="nbxmpp.protocol.NS_HASHES_SHA512" class="py-name" href="#" onclick="return doclink('link-157', 'NS_HASHES_SHA512', 'link-157');">NS_HASHES_SHA512</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:xmpp:hash-function-textual-names:sha-512'</tt> </tt>
+<a name="L174"></a><tt class="py-lineno"> 174</tt> <tt class="py-line"> </tt>
+<a name="L175"></a><tt class="py-lineno"> 175</tt> <tt class="py-line"><tt class="py-comment">#xmpp_stream_error_conditions = '''</tt> </tt>
+<a name="L176"></a><tt class="py-lineno"> 176</tt> <tt class="py-line"><tt class="py-comment">#bad-format -- -- -- The entity has sent XML that cannot be processed.</tt> </tt>
+<a name="L177"></a><tt class="py-lineno"> 177</tt> <tt class="py-line"><tt class="py-comment">#bad-namespace-prefix -- -- -- The entity has sent a namespace prefix that is unsupported, or has sent no namespace prefix on an element that requires such a prefix.</tt> </tt>
+<a name="L178"></a><tt class="py-lineno"> 178</tt> <tt class="py-line"><tt class="py-comment">#conflict -- -- -- The server is closing the active stream for this entity because a new stream has been initiated that conflicts with the existing stream.</tt> </tt>
+<a name="L179"></a><tt class="py-lineno"> 179</tt> <tt class="py-line"><tt class="py-comment">#connection-timeout -- -- -- The entity has not generated any traffic over the stream for some period of time.</tt> </tt>
+<a name="L180"></a><tt class="py-lineno"> 180</tt> <tt class="py-line"><tt class="py-comment">#host-gone -- -- -- The value of the 'to' attribute provided by the initiating entity in the stream header corresponds to a hostname that is no longer hosted by the server.</tt> </tt>
+<a name="L181"></a><tt class="py-lineno"> 181</tt> <tt class="py-line"><tt class="py-comment">#host-unknown -- -- -- The value of the 'to' attribute provided by the initiating entity in the stream header does not correspond to a hostname that is hosted by the server.</tt> </tt>
+<a name="L182"></a><tt class="py-lineno"> 182</tt> <tt class="py-line"><tt class="py-comment">#improper-addressing -- -- -- A stanza sent between two servers lacks a 'to' or 'from' attribute (or the attribute has no value).</tt> </tt>
+<a name="L183"></a><tt class="py-lineno"> 183</tt> <tt class="py-line"><tt class="py-comment">#internal-server-error -- -- -- The server has experienced a misconfiguration or an otherwise-undefined internal error that prevents it from servicing the stream.</tt> </tt>
+<a name="L184"></a><tt class="py-lineno"> 184</tt> <tt class="py-line"><tt class="py-comment">#invalid-from -- cancel -- -- The JID or hostname provided in a 'from' address does not match an authorized JID or validated domain negotiated between servers via SASL or dialback, or between a client and a server via authentication and resource authorization.</tt> </tt>
+<a name="L185"></a><tt class="py-lineno"> 185</tt> <tt class="py-line"><tt class="py-comment">#invalid-id -- -- -- The stream ID or dialback ID is invalid or does not match an ID previously provided.</tt> </tt>
+<a name="L186"></a><tt class="py-lineno"> 186</tt> <tt class="py-line"><tt class="py-comment">#invalid-namespace -- -- -- The streams namespace name is something other than "http://etherx.jabber.org/streams" or the dialback namespace name is something other than "jabber:server:dialback".</tt> </tt>
+<a name="L187"></a><tt class="py-lineno"> 187</tt> <tt class="py-line"><tt class="py-comment">#invalid-xml -- -- -- The entity has sent invalid XML over the stream to a server that performs validation.</tt> </tt>
+<a name="L188"></a><tt class="py-lineno"> 188</tt> <tt class="py-line"><tt class="py-comment">#not-authorized -- -- -- The entity has attempted to send data before the stream has been authenticated, or otherwise is not authorized to perform an action related to stream negotiation.</tt> </tt>
+<a name="L189"></a><tt class="py-lineno"> 189</tt> <tt class="py-line"><tt class="py-comment">#policy-violation -- -- -- The entity has violated some local service policy.</tt> </tt>
+<a name="L190"></a><tt class="py-lineno"> 190</tt> <tt class="py-line"><tt class="py-comment">#remote-connection-failed -- -- -- The server is unable to properly connect to a remote resource that is required for authentication or authorization.</tt> </tt>
+<a name="L191"></a><tt class="py-lineno"> 191</tt> <tt class="py-line"><tt class="py-comment">#resource-constraint -- -- -- The server lacks the system resources necessary to service the stream.</tt> </tt>
+<a name="L192"></a><tt class="py-lineno"> 192</tt> <tt class="py-line"><tt class="py-comment">#restricted-xml -- -- -- The entity has attempted to send restricted XML features such as a comment, processing instruction, DTD, entity reference, or unescaped character.</tt> </tt>
+<a name="L193"></a><tt class="py-lineno"> 193</tt> <tt class="py-line"><tt class="py-comment">#see-other-host -- -- -- The server will not provide service to the initiating entity but is redirecting traffic to another host.</tt> </tt>
+<a name="L194"></a><tt class="py-lineno"> 194</tt> <tt class="py-line"><tt class="py-comment">#system-shutdown -- -- -- The server is being shut down and all active streams are being closed.</tt> </tt>
+<a name="L195"></a><tt class="py-lineno"> 195</tt> <tt class="py-line"><tt class="py-comment">#undefined-condition -- -- -- The error condition is not one of those defined by the other conditions in this list.</tt> </tt>
+<a name="L196"></a><tt class="py-lineno"> 196</tt> <tt class="py-line"><tt class="py-comment">#unsupported-encoding -- -- -- The initiating entity has encoded the stream in an encoding that is not supported by the server.</tt> </tt>
+<a name="L197"></a><tt class="py-lineno"> 197</tt> <tt class="py-line"><tt class="py-comment">#unsupported-stanza-type -- -- -- The initiating entity has sent a first-level child of the stream that is not supported by the server.</tt> </tt>
+<a name="L198"></a><tt class="py-lineno"> 198</tt> <tt class="py-line"><tt class="py-comment">#unsupported-version -- -- -- The value of the 'version' attribute provided by the initiating entity in the stream header specifies a version of XMPP that is not supported by the server.</tt> </tt>
+<a name="L199"></a><tt class="py-lineno"> 199</tt> <tt class="py-line"><tt class="py-comment">#xml-not-well-formed -- -- -- The initiating entity has sent XML that is not well-formed.'''</tt> </tt>
+<a name="L200"></a><tt class="py-lineno"> 200</tt> <tt class="py-line"> </tt>
+<a name="L201"></a><tt class="py-lineno"> 201</tt> <tt class="py-line"><tt class="py-comment">#xmpp_stanza_error_conditions = '''</tt> </tt>
+<a name="L202"></a><tt class="py-lineno"> 202</tt> <tt class="py-line"><tt class="py-comment">#bad-request -- 400 -- modify -- The sender has sent XML that is malformed or that cannot be processed.</tt> </tt>
+<a name="L203"></a><tt class="py-lineno"> 203</tt> <tt class="py-line"><tt class="py-comment">#conflict -- 409 -- cancel -- Access cannot be granted because an existing resource or session exists with the same name or address.</tt> </tt>
+<a name="L204"></a><tt class="py-lineno"> 204</tt> <tt class="py-line"><tt class="py-comment">#feature-not-implemented -- 501 -- cancel -- The feature requested is not implemented by the recipient or server and therefore cannot be processed.</tt> </tt>
+<a name="L205"></a><tt class="py-lineno"> 205</tt> <tt class="py-line"><tt class="py-comment">#forbidden -- 403 -- auth -- The requesting entity does not possess the required permissions to perform the action.</tt> </tt>
+<a name="L206"></a><tt class="py-lineno"> 206</tt> <tt class="py-line"><tt class="py-comment">#gone -- 302 -- modify -- The recipient or server can no longer be contacted at this address.</tt> </tt>
+<a name="L207"></a><tt class="py-lineno"> 207</tt> <tt class="py-line"><tt class="py-comment">#internal-server-error -- 500 -- wait -- The server could not process the stanza because of a misconfiguration or an otherwise-undefined internal server error.</tt> </tt>
+<a name="L208"></a><tt class="py-lineno"> 208</tt> <tt class="py-line"><tt class="py-comment">#item-not-found -- 404 -- cancel -- The addressed JID or item requested cannot be found.</tt> </tt>
+<a name="L209"></a><tt class="py-lineno"> 209</tt> <tt class="py-line"><tt class="py-comment">#jid-malformed -- 400 -- modify -- The value of the 'to' attribute in the sender's stanza does not adhere to the syntax defined in Addressing Scheme.</tt> </tt>
+<a name="L210"></a><tt class="py-lineno"> 210</tt> <tt class="py-line"><tt class="py-comment">#not-acceptable -- 406 -- cancel -- The recipient or server understands the request but is refusing to process it because it does not meet criteria defined by the recipient or server.</tt> </tt>
+<a name="L211"></a><tt class="py-lineno"> 211</tt> <tt class="py-line"><tt class="py-comment">#not-allowed -- 405 -- cancel -- The recipient or server does not allow any entity to perform the action.</tt> </tt>
+<a name="L212"></a><tt class="py-lineno"> 212</tt> <tt class="py-line"><tt class="py-comment">#not-authorized -- 401 -- auth -- The sender must provide proper credentials before being allowed to perform the action, or has provided improper credentials.</tt> </tt>
+<a name="L213"></a><tt class="py-lineno"> 213</tt> <tt class="py-line"><tt class="py-comment">#payment-required -- 402 -- auth -- The requesting entity is not authorized to access the requested service because payment is required.</tt> </tt>
+<a name="L214"></a><tt class="py-lineno"> 214</tt> <tt class="py-line"><tt class="py-comment">#recipient-unavailable -- 404 -- wait -- The intended recipient is temporarily unavailable.</tt> </tt>
+<a name="L215"></a><tt class="py-lineno"> 215</tt> <tt class="py-line"><tt class="py-comment">#redirect -- 302 -- modify -- The recipient or server is redirecting requests for this information to another entity.</tt> </tt>
+<a name="L216"></a><tt class="py-lineno"> 216</tt> <tt class="py-line"><tt class="py-comment">#registration-required -- 407 -- auth -- The requesting entity is not authorized to access the requested service because registration is required.</tt> </tt>
+<a name="L217"></a><tt class="py-lineno"> 217</tt> <tt class="py-line"><tt class="py-comment">#remote-server-not-found -- 404 -- cancel -- A remote server or service specified as part or all of the JID of the intended recipient does not exist.</tt> </tt>
+<a name="L218"></a><tt class="py-lineno"> 218</tt> <tt class="py-line"><tt class="py-comment">#remote-server-timeout -- 504 -- wait -- A remote server or service specified as part or all of the JID of the intended recipient could not be contacted within a reasonable amount of time.</tt> </tt>
+<a name="L219"></a><tt class="py-lineno"> 219</tt> <tt class="py-line"><tt class="py-comment">#resource-constraint -- 500 -- wait -- The server or recipient lacks the system resources necessary to service the request.</tt> </tt>
+<a name="L220"></a><tt class="py-lineno"> 220</tt> <tt class="py-line"><tt class="py-comment">#service-unavailable -- 503 -- cancel -- The server or recipient does not currently provide the requested service.</tt> </tt>
+<a name="L221"></a><tt class="py-lineno"> 221</tt> <tt class="py-line"><tt class="py-comment">#subscription-required -- 407 -- auth -- The requesting entity is not authorized to access the requested service because a subscription is required.</tt> </tt>
+<a name="L222"></a><tt class="py-lineno"> 222</tt> <tt class="py-line"><tt class="py-comment">#undefined-condition -- 500 -- -- Undefined Condition</tt> </tt>
+<a name="L223"></a><tt class="py-lineno"> 223</tt> <tt class="py-line"><tt class="py-comment">#unexpected-request -- 400 -- wait -- The recipient or server understood the request but was not expecting it at this time (e.g., the request was out of order).'''</tt> </tt>
+<a name="L224"></a><tt class="py-lineno"> 224</tt> <tt class="py-line"> </tt>
+<a name="L225"></a><tt class="py-lineno"> 225</tt> <tt class="py-line"><tt class="py-comment">#sasl_error_conditions = '''</tt> </tt>
+<a name="L226"></a><tt class="py-lineno"> 226</tt> <tt class="py-line"><tt class="py-comment">#aborted -- -- -- The receiving entity acknowledges an &lt;abort/&gt; element sent by the initiating entity; sent in reply to the &lt;abort/&gt; element.</tt> </tt>
+<a name="L227"></a><tt class="py-lineno"> 227</tt> <tt class="py-line"><tt class="py-comment">#incorrect-encoding -- -- -- The data provided by the initiating entity could not be processed because the [BASE64]Josefsson, S., The Base16, Base32, and Base64 Data Encodings, July 2003. encoding is incorrect (e.g., because the encoding does not adhere to the definition in Section 3 of [BASE64]Josefsson, S., The Base16, Base32, and Base64 Data Encodings, July 2003.); sent in reply to a &lt;response/&gt; element or an &lt;auth/&gt; element with initial response data.</tt> </tt>
+<a name="L228"></a><tt class="py-lineno"> 228</tt> <tt class="py-line"><tt class="py-comment">#invalid-authzid -- -- -- The authzid provided by the initiating entity is invalid, either because it is incorrectly formatted or because the initiating entity does not have permissions to authorize that ID; sent in reply to a &lt;response/&gt; element or an &lt;auth/&gt; element with initial response data.</tt> </tt>
+<a name="L229"></a><tt class="py-lineno"> 229</tt> <tt class="py-line"><tt class="py-comment">#invalid-mechanism -- -- -- The initiating entity did not provide a mechanism or requested a mechanism that is not supported by the receiving entity; sent in reply to an &lt;auth/&gt; element.</tt> </tt>
+<a name="L230"></a><tt class="py-lineno"> 230</tt> <tt class="py-line"><tt class="py-comment">#mechanism-too-weak -- -- -- The mechanism requested by the initiating entity is weaker than server policy permits for that initiating entity; sent in reply to a &lt;response/&gt; element or an &lt;auth/&gt; element with initial response data.</tt> </tt>
+<a name="L231"></a><tt class="py-lineno"> 231</tt> <tt class="py-line"><tt class="py-comment">#not-authorized -- -- -- The authentication failed because the initiating entity did not provide valid credentials (this includes but is not limited to the case of an unknown username); sent in reply to a &lt;response/&gt; element or an &lt;auth/&gt; element with initial response data.</tt> </tt>
+<a name="L232"></a><tt class="py-lineno"> 232</tt> <tt class="py-line"><tt class="py-comment">#temporary-auth-failure -- -- -- The authentication failed because of a temporary error condition within the receiving entity; sent in reply to an &lt;auth/&gt; element or &lt;response/&gt; element.'''</tt> </tt>
+<a name="L233"></a><tt class="py-lineno"> 233</tt> <tt class="py-line"> </tt>
+<a name="L234"></a><tt class="py-lineno"> 234</tt> <tt class="py-line"><tt class="py-comment">#ERRORS, _errorcodes, loc = {}, {}, {}</tt> </tt>
+<a name="L235"></a><tt class="py-lineno"> 235</tt> <tt class="py-line"><tt class="py-comment">#for ns, errname, errpool in ((NS_XMPP_STREAMS, 'STREAM',</tt> </tt>
+<a name="L236"></a><tt class="py-lineno"> 236</tt> <tt class="py-line"><tt class="py-comment">#xmpp_stream_error_conditions), (NS_STANZAS, 'ERR', xmpp_stanza_error_conditions),</tt> </tt>
+<a name="L237"></a><tt class="py-lineno"> 237</tt> <tt class="py-line"><tt class="py-comment">#(NS_SASL, 'SASL', sasl_error_conditions)):</tt> </tt>
+<a name="L238"></a><tt class="py-lineno"> 238</tt> <tt class="py-line"> <tt class="py-comment">#for err in errpool.split('\n')[1:]:</tt> </tt>
+<a name="L239"></a><tt class="py-lineno"> 239</tt> <tt class="py-line"> <tt class="py-comment">#cond, code, typ, text = err.split(' -- ')</tt> </tt>
+<a name="L240"></a><tt class="py-lineno"> 240</tt> <tt class="py-line"> <tt class="py-comment">#name = errname + '_' + ascii_upper(cond).replace('-', '_')</tt> </tt>
+<a name="L241"></a><tt class="py-lineno"> 241</tt> <tt class="py-line"> <tt class="py-comment">#locals()[name] = ns + ' ' + cond</tt> </tt>
+<a name="L242"></a><tt class="py-lineno"> 242</tt> <tt class="py-line"> <tt class="py-comment">#loc[name] = ns + ' ' + cond</tt> </tt>
+<a name="L243"></a><tt class="py-lineno"> 243</tt> <tt class="py-line"> <tt class="py-comment">#ERRORS[ns + ' ' + cond] = [code, typ, text]</tt> </tt>
+<a name="L244"></a><tt class="py-lineno"> 244</tt> <tt class="py-line"> <tt class="py-comment">#if code:</tt> </tt>
+<a name="L245"></a><tt class="py-lineno"> 245</tt> <tt class="py-line"> <tt class="py-comment">#_errorcodes[code] = cond</tt> </tt>
+<a name="L246"></a><tt class="py-lineno"> 246</tt> <tt class="py-line"><tt class="py-comment">#del ns, errname, errpool, err, cond, code, typ, text</tt> </tt>
+<a name="L247"></a><tt class="py-lineno"> 247</tt> <tt class="py-line"><tt class="py-comment">#import pprint</tt> </tt>
+<a name="L248"></a><tt class="py-lineno"> 248</tt> <tt class="py-line"><tt class="py-comment">#pprint.pprint(ERRORS)</tt> </tt>
+<a name="L249"></a><tt class="py-lineno"> 249</tt> <tt class="py-line"><tt class="py-comment">#pprint.pprint(_errorcodes)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno"> 250</tt> <tt class="py-line"><tt class="py-comment">#for (k, v) in loc.items():</tt> </tt>
+<a name="L251"></a><tt class="py-lineno"> 251</tt> <tt class="py-line"> <tt class="py-comment">#print('%s = \'%s\'' % (k, v))</tt> </tt>
+<a name="L252"></a><tt class="py-lineno"> 252</tt> <tt class="py-line"> </tt>
+<a name="L253"></a><tt class="py-lineno"> 253</tt> <tt class="py-line"><tt id="link-158" class="py-name" targets="Variable nbxmpp.protocol.ERRORS=nbxmpp.protocol-module.html#ERRORS"><a title="nbxmpp.protocol.ERRORS" class="py-name" href="#" onclick="return doclink('link-158', 'ERRORS', 'link-158');">ERRORS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L254"></a><tt class="py-lineno"> 254</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl aborted'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L255"></a><tt class="py-lineno"> 255</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L256"></a><tt class="py-lineno"> 256</tt> <tt class="py-line"> <tt class="py-string">'The receiving entity acknowledges an &lt;abort/&gt; element sent by the initiating entity; sent in reply to the &lt;abort/&gt; element.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L257"></a><tt class="py-lineno"> 257</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L258"></a><tt class="py-lineno"> 258</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L259"></a><tt class="py-lineno"> 259</tt> <tt class="py-line"> <tt class="py-string">'The data provided by the initiating entity could not be processed because the [BASE64]Josefsson, S., The Base16, Base32, and Base64 Data Encodings, July 2003. encoding is incorrect (e.g., because the encoding does not adhere to the definition in Section 3 of [BASE64]Josefsson, S., The Base16, Base32, and Base64 Data Encodings, July 2003.); sent in reply to a &lt;response/&gt; element or an &lt;auth/&gt; element with initial response data.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L260"></a><tt class="py-lineno"> 260</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl invalid-authzid'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L261"></a><tt class="py-lineno"> 261</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L262"></a><tt class="py-lineno"> 262</tt> <tt class="py-line"> <tt class="py-string">'The authzid provided by the initiating entity is invalid, either because it is incorrectly formatted or because the initiating entity does not have permissions to authorize that ID; sent in reply to a &lt;response/&gt; element or an &lt;auth/&gt; element with initial response data.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L263"></a><tt class="py-lineno"> 263</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl invalid-mechanism'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L264"></a><tt class="py-lineno"> 264</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L265"></a><tt class="py-lineno"> 265</tt> <tt class="py-line"> <tt class="py-string">'The initiating entity did not provide a mechanism or requested a mechanism that is not supported by the receiving entity; sent in reply to an &lt;auth/&gt; element.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L266"></a><tt class="py-lineno"> 266</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl mechanism-too-weak'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L267"></a><tt class="py-lineno"> 267</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L268"></a><tt class="py-lineno"> 268</tt> <tt class="py-line"> <tt class="py-string">'The mechanism requested by the initiating entity is weaker than server policy permits for that initiating entity; sent in reply to a &lt;response/&gt; element or an &lt;auth/&gt; element with initial response data.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L269"></a><tt class="py-lineno"> 269</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl not-authorized'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L270"></a><tt class="py-lineno"> 270</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L271"></a><tt class="py-lineno"> 271</tt> <tt class="py-line"> <tt class="py-string">'The authentication failed because the initiating entity did not provide valid credentials (this includes but is not limited to the case of an unknown username); sent in reply to a &lt;response/&gt; element or an &lt;auth/&gt; element with initial response data.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L272"></a><tt class="py-lineno"> 272</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl temporary-auth-failure'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L273"></a><tt class="py-lineno"> 273</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L274"></a><tt class="py-lineno"> 274</tt> <tt class="py-line"> <tt class="py-string">'The authentication failed because of a temporary error condition within the receiving entity; sent in reply to an &lt;auth/&gt; element or &lt;response/&gt; element.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L275"></a><tt class="py-lineno"> 275</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas bad-request'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'400'</tt><tt class="py-op">,</tt> </tt>
+<a name="L276"></a><tt class="py-lineno"> 276</tt> <tt class="py-line"> <tt class="py-string">'modify'</tt><tt class="py-op">,</tt> </tt>
+<a name="L277"></a><tt class="py-lineno"> 277</tt> <tt class="py-line"> <tt class="py-string">'The sender has sent XML that is malformed or that cannot be processed.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L278"></a><tt class="py-lineno"> 278</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas conflict'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'409'</tt><tt class="py-op">,</tt> </tt>
+<a name="L279"></a><tt class="py-lineno"> 279</tt> <tt class="py-line"> <tt class="py-string">'cancel'</tt><tt class="py-op">,</tt> </tt>
+<a name="L280"></a><tt class="py-lineno"> 280</tt> <tt class="py-line"> <tt class="py-string">'Access cannot be granted because an existing resource or session exists with the same name or address.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L281"></a><tt class="py-lineno"> 281</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas feature-not-implemented'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'501'</tt><tt class="py-op">,</tt> </tt>
+<a name="L282"></a><tt class="py-lineno"> 282</tt> <tt class="py-line"> <tt class="py-string">'cancel'</tt><tt class="py-op">,</tt> </tt>
+<a name="L283"></a><tt class="py-lineno"> 283</tt> <tt class="py-line"> <tt class="py-string">'The feature requested is not implemented by the recipient or server and therefore cannot be processed.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L284"></a><tt class="py-lineno"> 284</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas forbidden'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'403'</tt><tt class="py-op">,</tt> </tt>
+<a name="L285"></a><tt class="py-lineno"> 285</tt> <tt class="py-line"> <tt class="py-string">'auth'</tt><tt class="py-op">,</tt> </tt>
+<a name="L286"></a><tt class="py-lineno"> 286</tt> <tt class="py-line"> <tt class="py-string">'The requesting entity does not possess the required permissions to perform the action.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L287"></a><tt class="py-lineno"> 287</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas gone'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'302'</tt><tt class="py-op">,</tt> </tt>
+<a name="L288"></a><tt class="py-lineno"> 288</tt> <tt class="py-line"> <tt class="py-string">'modify'</tt><tt class="py-op">,</tt> </tt>
+<a name="L289"></a><tt class="py-lineno"> 289</tt> <tt class="py-line"> <tt class="py-string">'The recipient or server can no longer be contacted at this address.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L290"></a><tt class="py-lineno"> 290</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas internal-server-error'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'500'</tt><tt class="py-op">,</tt> </tt>
+<a name="L291"></a><tt class="py-lineno"> 291</tt> <tt class="py-line"> <tt class="py-string">'wait'</tt><tt class="py-op">,</tt> </tt>
+<a name="L292"></a><tt class="py-lineno"> 292</tt> <tt class="py-line"> <tt class="py-string">'The server could not process the stanza because of a misconfiguration or an otherwise-undefined internal server error.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L293"></a><tt class="py-lineno"> 293</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas item-not-found'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'404'</tt><tt class="py-op">,</tt> </tt>
+<a name="L294"></a><tt class="py-lineno"> 294</tt> <tt class="py-line"> <tt class="py-string">'cancel'</tt><tt class="py-op">,</tt> </tt>
+<a name="L295"></a><tt class="py-lineno"> 295</tt> <tt class="py-line"> <tt class="py-string">'The addressed JID or item requested cannot be found.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L296"></a><tt class="py-lineno"> 296</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas jid-malformed'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'400'</tt><tt class="py-op">,</tt> </tt>
+<a name="L297"></a><tt class="py-lineno"> 297</tt> <tt class="py-line"> <tt class="py-string">'modify'</tt><tt class="py-op">,</tt> </tt>
+<a name="L298"></a><tt class="py-lineno"> 298</tt> <tt class="py-line"> <tt class="py-string">"The value of the 'to' attribute in the sender's stanza does not adhere to the syntax defined in Addressing Scheme."</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L299"></a><tt class="py-lineno"> 299</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas not-acceptable'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'406'</tt><tt class="py-op">,</tt> </tt>
+<a name="L300"></a><tt class="py-lineno"> 300</tt> <tt class="py-line"> <tt class="py-string">'cancel'</tt><tt class="py-op">,</tt> </tt>
+<a name="L301"></a><tt class="py-lineno"> 301</tt> <tt class="py-line"> <tt class="py-string">'The recipient or server understands the request but is refusing to process it because it does not meet criteria defined by the recipient or server.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L302"></a><tt class="py-lineno"> 302</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas not-allowed'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'405'</tt><tt class="py-op">,</tt> </tt>
+<a name="L303"></a><tt class="py-lineno"> 303</tt> <tt class="py-line"> <tt class="py-string">'cancel'</tt><tt class="py-op">,</tt> </tt>
+<a name="L304"></a><tt class="py-lineno"> 304</tt> <tt class="py-line"> <tt class="py-string">'The recipient or server does not allow any entity to perform the action.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L305"></a><tt class="py-lineno"> 305</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas not-authorized'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'401'</tt><tt class="py-op">,</tt> </tt>
+<a name="L306"></a><tt class="py-lineno"> 306</tt> <tt class="py-line"> <tt class="py-string">'auth'</tt><tt class="py-op">,</tt> </tt>
+<a name="L307"></a><tt class="py-lineno"> 307</tt> <tt class="py-line"> <tt class="py-string">'The sender must provide proper credentials before being allowed to perform the action, or has provided improper credentials.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L308"></a><tt class="py-lineno"> 308</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas payment-required'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'402'</tt><tt class="py-op">,</tt> </tt>
+<a name="L309"></a><tt class="py-lineno"> 309</tt> <tt class="py-line"> <tt class="py-string">'auth'</tt><tt class="py-op">,</tt> </tt>
+<a name="L310"></a><tt class="py-lineno"> 310</tt> <tt class="py-line"> <tt class="py-string">'The requesting entity is not authorized to access the requested service because payment is required.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L311"></a><tt class="py-lineno"> 311</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas recipient-unavailable'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'404'</tt><tt class="py-op">,</tt> </tt>
+<a name="L312"></a><tt class="py-lineno"> 312</tt> <tt class="py-line"> <tt class="py-string">'wait'</tt><tt class="py-op">,</tt> </tt>
+<a name="L313"></a><tt class="py-lineno"> 313</tt> <tt class="py-line"> <tt class="py-string">'The intended recipient is temporarily unavailable.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L314"></a><tt class="py-lineno"> 314</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas redirect'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'302'</tt><tt class="py-op">,</tt> </tt>
+<a name="L315"></a><tt class="py-lineno"> 315</tt> <tt class="py-line"> <tt class="py-string">'modify'</tt><tt class="py-op">,</tt> </tt>
+<a name="L316"></a><tt class="py-lineno"> 316</tt> <tt class="py-line"> <tt class="py-string">'The recipient or server is redirecting requests for this information to another entity.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L317"></a><tt class="py-lineno"> 317</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas registration-required'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'407'</tt><tt class="py-op">,</tt> </tt>
+<a name="L318"></a><tt class="py-lineno"> 318</tt> <tt class="py-line"> <tt class="py-string">'auth'</tt><tt class="py-op">,</tt> </tt>
+<a name="L319"></a><tt class="py-lineno"> 319</tt> <tt class="py-line"> <tt class="py-string">'The requesting entity is not authorized to access the requested service because registration is required.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L320"></a><tt class="py-lineno"> 320</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-not-found'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'404'</tt><tt class="py-op">,</tt> </tt>
+<a name="L321"></a><tt class="py-lineno"> 321</tt> <tt class="py-line"> <tt class="py-string">'cancel'</tt><tt class="py-op">,</tt> </tt>
+<a name="L322"></a><tt class="py-lineno"> 322</tt> <tt class="py-line"> <tt class="py-string">'A remote server or service specified as part or all of the JID of the intended recipient does not exist.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L323"></a><tt class="py-lineno"> 323</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-timeout'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'504'</tt><tt class="py-op">,</tt> </tt>
+<a name="L324"></a><tt class="py-lineno"> 324</tt> <tt class="py-line"> <tt class="py-string">'wait'</tt><tt class="py-op">,</tt> </tt>
+<a name="L325"></a><tt class="py-lineno"> 325</tt> <tt class="py-line"> <tt class="py-string">'A remote server or service specified as part or all of the JID of the intended recipient could not be contacted within a reasonable amount of time.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L326"></a><tt class="py-lineno"> 326</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas resource-constraint'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'500'</tt><tt class="py-op">,</tt> </tt>
+<a name="L327"></a><tt class="py-lineno"> 327</tt> <tt class="py-line"> <tt class="py-string">'wait'</tt><tt class="py-op">,</tt> </tt>
+<a name="L328"></a><tt class="py-lineno"> 328</tt> <tt class="py-line"> <tt class="py-string">'The server or recipient lacks the system resources necessary to service the request.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L329"></a><tt class="py-lineno"> 329</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas service-unavailable'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'503'</tt><tt class="py-op">,</tt> </tt>
+<a name="L330"></a><tt class="py-lineno"> 330</tt> <tt class="py-line"> <tt class="py-string">'cancel'</tt><tt class="py-op">,</tt> </tt>
+<a name="L331"></a><tt class="py-lineno"> 331</tt> <tt class="py-line"> <tt class="py-string">'The server or recipient does not currently provide the requested service.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L332"></a><tt class="py-lineno"> 332</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas subscription-required'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'407'</tt><tt class="py-op">,</tt> </tt>
+<a name="L333"></a><tt class="py-lineno"> 333</tt> <tt class="py-line"> <tt class="py-string">'auth'</tt><tt class="py-op">,</tt> </tt>
+<a name="L334"></a><tt class="py-lineno"> 334</tt> <tt class="py-line"> <tt class="py-string">'The requesting entity is not authorized to access the requested service because a subscription is required.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L335"></a><tt class="py-lineno"> 335</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas undefined-condition'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'500'</tt><tt class="py-op">,</tt> </tt>
+<a name="L336"></a><tt class="py-lineno"> 336</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L337"></a><tt class="py-lineno"> 337</tt> <tt class="py-line"> <tt class="py-string">'Undefined Condition'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L338"></a><tt class="py-lineno"> 338</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas unexpected-request'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'400'</tt><tt class="py-op">,</tt> </tt>
+<a name="L339"></a><tt class="py-lineno"> 339</tt> <tt class="py-line"> <tt class="py-string">'wait'</tt><tt class="py-op">,</tt> </tt>
+<a name="L340"></a><tt class="py-lineno"> 340</tt> <tt class="py-line"> <tt class="py-string">'The recipient or server understood the request but was not expecting it at this time (e.g., the request was out of order).'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L341"></a><tt class="py-lineno"> 341</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams bad-format'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L342"></a><tt class="py-lineno"> 342</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L343"></a><tt class="py-lineno"> 343</tt> <tt class="py-line"> <tt class="py-string">'The entity has sent XML that cannot be processed.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L344"></a><tt class="py-lineno"> 344</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams bad-namespace-prefix'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L345"></a><tt class="py-lineno"> 345</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L346"></a><tt class="py-lineno"> 346</tt> <tt class="py-line"> <tt class="py-string">'The entity has sent a namespace prefix that is unsupported, or has sent no namespace prefix on an element that requires such a prefix.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L347"></a><tt class="py-lineno"> 347</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams conflict'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L348"></a><tt class="py-lineno"> 348</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L349"></a><tt class="py-lineno"> 349</tt> <tt class="py-line"> <tt class="py-string">'The server is closing the active stream for this entity because a new stream has been initiated that conflicts with the existing stream.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L350"></a><tt class="py-lineno"> 350</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams connection-timeout'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L351"></a><tt class="py-lineno"> 351</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L352"></a><tt class="py-lineno"> 352</tt> <tt class="py-line"> <tt class="py-string">'The entity has not generated any traffic over the stream for some period of time.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L353"></a><tt class="py-lineno"> 353</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams host-gone'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L354"></a><tt class="py-lineno"> 354</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L355"></a><tt class="py-lineno"> 355</tt> <tt class="py-line"> <tt class="py-string">"The value of the 'to' attribute provided by the initiating entity in the stream header corresponds to a hostname that is no longer hosted by the server."</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L356"></a><tt class="py-lineno"> 356</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams host-unknown'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L357"></a><tt class="py-lineno"> 357</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L358"></a><tt class="py-lineno"> 358</tt> <tt class="py-line"> <tt class="py-string">"The value of the 'to' attribute provided by the initiating entity in the stream header does not correspond to a hostname that is hosted by the server."</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L359"></a><tt class="py-lineno"> 359</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams improper-addressing'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L360"></a><tt class="py-lineno"> 360</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L361"></a><tt class="py-lineno"> 361</tt> <tt class="py-line"> <tt class="py-string">"A stanza sent between two servers lacks a 'to' or 'from' attribute (or the attribute has no value)."</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L362"></a><tt class="py-lineno"> 362</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams internal-server-error'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L363"></a><tt class="py-lineno"> 363</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L364"></a><tt class="py-lineno"> 364</tt> <tt class="py-line"> <tt class="py-string">'The server has experienced a misconfiguration or an otherwise-undefined internal error that prevents it from servicing the stream.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L365"></a><tt class="py-lineno"> 365</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams invalid-from'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">'cancel'</tt><tt class="py-op">,</tt> </tt>
+<a name="L366"></a><tt class="py-lineno"> 366</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L367"></a><tt class="py-lineno"> 367</tt> <tt class="py-line"> <tt class="py-string">"The JID or hostname provided in a 'from' address does not match an authorized JID or validated domain negotiated between servers via SASL or dialback, or between a client and a server via authentication and resource authorization."</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L368"></a><tt class="py-lineno"> 368</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams invalid-id'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L369"></a><tt class="py-lineno"> 369</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L370"></a><tt class="py-lineno"> 370</tt> <tt class="py-line"> <tt class="py-string">'The stream ID or dialback ID is invalid or does not match an ID previously provided.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L371"></a><tt class="py-lineno"> 371</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams invalid-namespace'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L372"></a><tt class="py-lineno"> 372</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L373"></a><tt class="py-lineno"> 373</tt> <tt class="py-line"> <tt class="py-string">'The streams namespace name is something other than "http://etherx.jabber.org/streams" or the dialback namespace name is something other than "jabber:server:dialback".'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L374"></a><tt class="py-lineno"> 374</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams invalid-xml'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L375"></a><tt class="py-lineno"> 375</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L376"></a><tt class="py-lineno"> 376</tt> <tt class="py-line"> <tt class="py-string">'The entity has sent invalid XML over the stream to a server that performs validation.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L377"></a><tt class="py-lineno"> 377</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams not-authorized'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L378"></a><tt class="py-lineno"> 378</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L379"></a><tt class="py-lineno"> 379</tt> <tt class="py-line"> <tt class="py-string">'The entity has attempted to send data before the stream has been authenticated, or otherwise is not authorized to perform an action related to stream negotiation.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L380"></a><tt class="py-lineno"> 380</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams policy-violation'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L381"></a><tt class="py-lineno"> 381</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L382"></a><tt class="py-lineno"> 382</tt> <tt class="py-line"> <tt class="py-string">'The entity has violated some local service policy.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L383"></a><tt class="py-lineno"> 383</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams remote-connection-failed'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L384"></a><tt class="py-lineno"> 384</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L385"></a><tt class="py-lineno"> 385</tt> <tt class="py-line"> <tt class="py-string">'The server is unable to properly connect to a remote resource that is required for authentication or authorization.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L386"></a><tt class="py-lineno"> 386</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams resource-constraint'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L387"></a><tt class="py-lineno"> 387</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L388"></a><tt class="py-lineno"> 388</tt> <tt class="py-line"> <tt class="py-string">'The server lacks the system resources necessary to service the stream.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L389"></a><tt class="py-lineno"> 389</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams restricted-xml'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L390"></a><tt class="py-lineno"> 390</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L391"></a><tt class="py-lineno"> 391</tt> <tt class="py-line"> <tt class="py-string">'The entity has attempted to send restricted XML features such as a comment, processing instruction, DTD, entity reference, or unescaped character.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L392"></a><tt class="py-lineno"> 392</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams see-other-host'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L393"></a><tt class="py-lineno"> 393</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L394"></a><tt class="py-lineno"> 394</tt> <tt class="py-line"> <tt class="py-string">'The server will not provide service to the initiating entity but is redirecting traffic to another host.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L395"></a><tt class="py-lineno"> 395</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams system-shutdown'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L396"></a><tt class="py-lineno"> 396</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L397"></a><tt class="py-lineno"> 397</tt> <tt class="py-line"> <tt class="py-string">'The server is being shut down and all active streams are being closed.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L398"></a><tt class="py-lineno"> 398</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams undefined-condition'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L399"></a><tt class="py-lineno"> 399</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L400"></a><tt class="py-lineno"> 400</tt> <tt class="py-line"> <tt class="py-string">'The error condition is not one of those defined by the other conditions in this list.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L401"></a><tt class="py-lineno"> 401</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams unsupported-encoding'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L402"></a><tt class="py-lineno"> 402</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L403"></a><tt class="py-lineno"> 403</tt> <tt class="py-line"> <tt class="py-string">'The initiating entity has encoded the stream in an encoding that is not supported by the server.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L404"></a><tt class="py-lineno"> 404</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams unsupported-stanza-type'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L405"></a><tt class="py-lineno"> 405</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L406"></a><tt class="py-lineno"> 406</tt> <tt class="py-line"> <tt class="py-string">'The initiating entity has sent a first-level child of the stream that is not supported by the server.'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L407"></a><tt class="py-lineno"> 407</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams unsupported-version'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L408"></a><tt class="py-lineno"> 408</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L409"></a><tt class="py-lineno"> 409</tt> <tt class="py-line"> <tt class="py-string">"The value of the 'version' attribute provided by the initiating entity in the stream header specifies a version of XMPP that is not supported by the server."</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L410"></a><tt class="py-lineno"> 410</tt> <tt class="py-line"> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams xml-not-well-formed'</tt><tt class="py-op">:</tt> <tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L411"></a><tt class="py-lineno"> 411</tt> <tt class="py-line"> <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L412"></a><tt class="py-lineno"> 412</tt> <tt class="py-line"> <tt class="py-string">'The initiating entity has sent XML that is not well-formed.'</tt><tt class="py-op">]</tt> </tt>
+<a name="L413"></a><tt class="py-lineno"> 413</tt> <tt class="py-line"><tt class="py-op">}</tt> </tt>
+<a name="L414"></a><tt class="py-lineno"> 414</tt> <tt class="py-line"> </tt>
+<a name="L415"></a><tt class="py-lineno"> 415</tt> <tt class="py-line"><tt id="link-159" class="py-name" targets="Variable nbxmpp.protocol._errorcodes=nbxmpp.protocol-module.html#_errorcodes"><a title="nbxmpp.protocol._errorcodes" class="py-name" href="#" onclick="return doclink('link-159', '_errorcodes', 'link-159');">_errorcodes</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L416"></a><tt class="py-lineno"> 416</tt> <tt class="py-line"> <tt class="py-string">'302'</tt><tt class="py-op">:</tt> <tt class="py-string">'redirect'</tt><tt class="py-op">,</tt> </tt>
+<a name="L417"></a><tt class="py-lineno"> 417</tt> <tt class="py-line"> <tt class="py-string">'400'</tt><tt class="py-op">:</tt> <tt class="py-string">'unexpected-request'</tt><tt class="py-op">,</tt> </tt>
+<a name="L418"></a><tt class="py-lineno"> 418</tt> <tt class="py-line"> <tt class="py-string">'401'</tt><tt class="py-op">:</tt> <tt class="py-string">'not-authorized'</tt><tt class="py-op">,</tt> </tt>
+<a name="L419"></a><tt class="py-lineno"> 419</tt> <tt class="py-line"> <tt class="py-string">'402'</tt><tt class="py-op">:</tt> <tt class="py-string">'payment-required'</tt><tt class="py-op">,</tt> </tt>
+<a name="L420"></a><tt class="py-lineno"> 420</tt> <tt class="py-line"> <tt class="py-string">'403'</tt><tt class="py-op">:</tt> <tt class="py-string">'forbidden'</tt><tt class="py-op">,</tt> </tt>
+<a name="L421"></a><tt class="py-lineno"> 421</tt> <tt class="py-line"> <tt class="py-string">'404'</tt><tt class="py-op">:</tt> <tt class="py-string">'remote-server-not-found'</tt><tt class="py-op">,</tt> </tt>
+<a name="L422"></a><tt class="py-lineno"> 422</tt> <tt class="py-line"> <tt class="py-string">'405'</tt><tt class="py-op">:</tt> <tt class="py-string">'not-allowed'</tt><tt class="py-op">,</tt> </tt>
+<a name="L423"></a><tt class="py-lineno"> 423</tt> <tt class="py-line"> <tt class="py-string">'406'</tt><tt class="py-op">:</tt> <tt class="py-string">'not-acceptable'</tt><tt class="py-op">,</tt> </tt>
+<a name="L424"></a><tt class="py-lineno"> 424</tt> <tt class="py-line"> <tt class="py-string">'407'</tt><tt class="py-op">:</tt> <tt class="py-string">'subscription-required'</tt><tt class="py-op">,</tt> </tt>
+<a name="L425"></a><tt class="py-lineno"> 425</tt> <tt class="py-line"> <tt class="py-string">'409'</tt><tt class="py-op">:</tt> <tt class="py-string">'conflict'</tt><tt class="py-op">,</tt> </tt>
+<a name="L426"></a><tt class="py-lineno"> 426</tt> <tt class="py-line"> <tt class="py-string">'500'</tt><tt class="py-op">:</tt> <tt class="py-string">'undefined-condition'</tt><tt class="py-op">,</tt> </tt>
+<a name="L427"></a><tt class="py-lineno"> 427</tt> <tt class="py-line"> <tt class="py-string">'501'</tt><tt class="py-op">:</tt> <tt class="py-string">'feature-not-implemented'</tt><tt class="py-op">,</tt> </tt>
+<a name="L428"></a><tt class="py-lineno"> 428</tt> <tt class="py-line"> <tt class="py-string">'503'</tt><tt class="py-op">:</tt> <tt class="py-string">'service-unavailable'</tt><tt class="py-op">,</tt> </tt>
+<a name="L429"></a><tt class="py-lineno"> 429</tt> <tt class="py-line"> <tt class="py-string">'504'</tt><tt class="py-op">:</tt> <tt class="py-string">'remote-server-timeout'</tt><tt class="py-op">,</tt> </tt>
+<a name="L430"></a><tt class="py-lineno"> 430</tt> <tt class="py-line"> <tt class="py-string">'cancel'</tt><tt class="py-op">:</tt> <tt class="py-string">'invalid-from'</tt> </tt>
+<a name="L431"></a><tt class="py-lineno"> 431</tt> <tt class="py-line"><tt class="py-op">}</tt> </tt>
+<a name="L432"></a><tt class="py-lineno"> 432</tt> <tt class="py-line"> </tt>
+<a name="L433"></a><tt class="py-lineno"> 433</tt> <tt class="py-line"><tt id="link-160" class="py-name" targets="Variable nbxmpp.protocol.STREAM_NOT_AUTHORIZED=nbxmpp.protocol-module.html#STREAM_NOT_AUTHORIZED"><a title="nbxmpp.protocol.STREAM_NOT_AUTHORIZED" class="py-name" href="#" onclick="return doclink('link-160', 'STREAM_NOT_AUTHORIZED', 'link-160');">STREAM_NOT_AUTHORIZED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams not-authorized'</tt> </tt>
+<a name="L434"></a><tt class="py-lineno"> 434</tt> <tt class="py-line"><tt id="link-161" class="py-name" targets="Variable nbxmpp.protocol.STREAM_REMOTE_CONNECTION_FAILED=nbxmpp.protocol-module.html#STREAM_REMOTE_CONNECTION_FAILED"><a title="nbxmpp.protocol.STREAM_REMOTE_CONNECTION_FAILED" class="py-name" href="#" onclick="return doclink('link-161', 'STREAM_REMOTE_CONNECTION_FAILED', 'link-161');">STREAM_REMOTE_CONNECTION_FAILED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams remote-connection-failed'</tt> </tt>
+<a name="L435"></a><tt class="py-lineno"> 435</tt> <tt class="py-line"><tt id="link-162" class="py-name" targets="Variable nbxmpp.protocol.SASL_MECHANISM_TOO_WEAK=nbxmpp.protocol-module.html#SASL_MECHANISM_TOO_WEAK"><a title="nbxmpp.protocol.SASL_MECHANISM_TOO_WEAK" class="py-name" href="#" onclick="return doclink('link-162', 'SASL_MECHANISM_TOO_WEAK', 'link-162');">SASL_MECHANISM_TOO_WEAK</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl mechanism-too-weak'</tt> </tt>
+<a name="L436"></a><tt class="py-lineno"> 436</tt> <tt class="py-line"><tt id="link-163" class="py-name" targets="Variable nbxmpp.protocol.STREAM_XML_NOT_WELL_FORMED=nbxmpp.protocol-module.html#STREAM_XML_NOT_WELL_FORMED"><a title="nbxmpp.protocol.STREAM_XML_NOT_WELL_FORMED" class="py-name" href="#" onclick="return doclink('link-163', 'STREAM_XML_NOT_WELL_FORMED', 'link-163');">STREAM_XML_NOT_WELL_FORMED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams xml-not-well-formed'</tt> </tt>
+<a name="L437"></a><tt class="py-lineno"> 437</tt> <tt class="py-line"><tt id="link-164" class="py-name" targets="Variable nbxmpp.protocol.ERR_JID_MALFORMED=nbxmpp.protocol-module.html#ERR_JID_MALFORMED"><a title="nbxmpp.protocol.ERR_JID_MALFORMED" class="py-name" href="#" onclick="return doclink('link-164', 'ERR_JID_MALFORMED', 'link-164');">ERR_JID_MALFORMED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas jid-malformed'</tt> </tt>
+<a name="L438"></a><tt class="py-lineno"> 438</tt> <tt class="py-line"><tt id="link-165" class="py-name" targets="Variable nbxmpp.protocol.STREAM_SEE_OTHER_HOST=nbxmpp.protocol-module.html#STREAM_SEE_OTHER_HOST"><a title="nbxmpp.protocol.STREAM_SEE_OTHER_HOST" class="py-name" href="#" onclick="return doclink('link-165', 'STREAM_SEE_OTHER_HOST', 'link-165');">STREAM_SEE_OTHER_HOST</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams see-other-host'</tt> </tt>
+<a name="L439"></a><tt class="py-lineno"> 439</tt> <tt class="py-line"><tt id="link-166" class="py-name" targets="Variable nbxmpp.protocol.STREAM_BAD_NAMESPACE_PREFIX=nbxmpp.protocol-module.html#STREAM_BAD_NAMESPACE_PREFIX"><a title="nbxmpp.protocol.STREAM_BAD_NAMESPACE_PREFIX" class="py-name" href="#" onclick="return doclink('link-166', 'STREAM_BAD_NAMESPACE_PREFIX', 'link-166');">STREAM_BAD_NAMESPACE_PREFIX</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams bad-namespace-prefix'</tt> </tt>
+<a name="L440"></a><tt class="py-lineno"> 440</tt> <tt class="py-line"><tt id="link-167" class="py-name" targets="Variable nbxmpp.protocol.ERR_SERVICE_UNAVAILABLE=nbxmpp.protocol-module.html#ERR_SERVICE_UNAVAILABLE"><a title="nbxmpp.protocol.ERR_SERVICE_UNAVAILABLE" class="py-name" href="#" onclick="return doclink('link-167', 'ERR_SERVICE_UNAVAILABLE', 'link-167');">ERR_SERVICE_UNAVAILABLE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas service-unavailable'</tt> </tt>
+<a name="L441"></a><tt class="py-lineno"> 441</tt> <tt class="py-line"><tt id="link-168" class="py-name" targets="Variable nbxmpp.protocol.STREAM_CONNECTION_TIMEOUT=nbxmpp.protocol-module.html#STREAM_CONNECTION_TIMEOUT"><a title="nbxmpp.protocol.STREAM_CONNECTION_TIMEOUT" class="py-name" href="#" onclick="return doclink('link-168', 'STREAM_CONNECTION_TIMEOUT', 'link-168');">STREAM_CONNECTION_TIMEOUT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams connection-timeout'</tt> </tt>
+<a name="L442"></a><tt class="py-lineno"> 442</tt> <tt class="py-line"><tt id="link-169" class="py-name" targets="Variable nbxmpp.protocol.STREAM_UNSUPPORTED_VERSION=nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_VERSION"><a title="nbxmpp.protocol.STREAM_UNSUPPORTED_VERSION" class="py-name" href="#" onclick="return doclink('link-169', 'STREAM_UNSUPPORTED_VERSION', 'link-169');">STREAM_UNSUPPORTED_VERSION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams unsupported-version'</tt> </tt>
+<a name="L443"></a><tt class="py-lineno"> 443</tt> <tt class="py-line"><tt id="link-170" class="py-name" targets="Variable nbxmpp.protocol.STREAM_IMPROPER_ADDRESSING=nbxmpp.protocol-module.html#STREAM_IMPROPER_ADDRESSING"><a title="nbxmpp.protocol.STREAM_IMPROPER_ADDRESSING" class="py-name" href="#" onclick="return doclink('link-170', 'STREAM_IMPROPER_ADDRESSING', 'link-170');">STREAM_IMPROPER_ADDRESSING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams improper-addressing'</tt> </tt>
+<a name="L444"></a><tt class="py-lineno"> 444</tt> <tt class="py-line"><tt id="link-171" class="py-name" targets="Variable nbxmpp.protocol.STREAM_UNDEFINED_CONDITION=nbxmpp.protocol-module.html#STREAM_UNDEFINED_CONDITION"><a title="nbxmpp.protocol.STREAM_UNDEFINED_CONDITION" class="py-name" href="#" onclick="return doclink('link-171', 'STREAM_UNDEFINED_CONDITION', 'link-171');">STREAM_UNDEFINED_CONDITION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams undefined-condition'</tt> </tt>
+<a name="L445"></a><tt class="py-lineno"> 445</tt> <tt class="py-line"><tt id="link-172" class="py-name" targets="Variable nbxmpp.protocol.SASL_NOT_AUTHORIZED=nbxmpp.protocol-module.html#SASL_NOT_AUTHORIZED"><a title="nbxmpp.protocol.SASL_NOT_AUTHORIZED" class="py-name" href="#" onclick="return doclink('link-172', 'SASL_NOT_AUTHORIZED', 'link-172');">SASL_NOT_AUTHORIZED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl not-authorized'</tt> </tt>
+<a name="L446"></a><tt class="py-lineno"> 446</tt> <tt class="py-line"><tt id="link-173" class="py-name" targets="Variable nbxmpp.protocol.ERR_GONE=nbxmpp.protocol-module.html#ERR_GONE"><a title="nbxmpp.protocol.ERR_GONE" class="py-name" href="#" onclick="return doclink('link-173', 'ERR_GONE', 'link-173');">ERR_GONE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas gone'</tt> </tt>
+<a name="L447"></a><tt class="py-lineno"> 447</tt> <tt class="py-line"><tt id="link-174" class="py-name" targets="Variable nbxmpp.protocol.SASL_TEMPORARY_AUTH_FAILURE=nbxmpp.protocol-module.html#SASL_TEMPORARY_AUTH_FAILURE"><a title="nbxmpp.protocol.SASL_TEMPORARY_AUTH_FAILURE" class="py-name" href="#" onclick="return doclink('link-174', 'SASL_TEMPORARY_AUTH_FAILURE', 'link-174');">SASL_TEMPORARY_AUTH_FAILURE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl temporary-auth-failure'</tt> </tt>
+<a name="L448"></a><tt class="py-lineno"> 448</tt> <tt class="py-line"><tt id="link-175" class="py-name" targets="Variable nbxmpp.protocol.ERR_REMOTE_SERVER_NOT_FOUND=nbxmpp.protocol-module.html#ERR_REMOTE_SERVER_NOT_FOUND"><a title="nbxmpp.protocol.ERR_REMOTE_SERVER_NOT_FOUND" class="py-name" href="#" onclick="return doclink('link-175', 'ERR_REMOTE_SERVER_NOT_FOUND', 'link-175');">ERR_REMOTE_SERVER_NOT_FOUND</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-not-found'</tt> </tt>
+<a name="L449"></a><tt class="py-lineno"> 449</tt> <tt class="py-line"><tt id="link-176" class="py-name" targets="Variable nbxmpp.protocol.ERR_UNEXPECTED_REQUEST=nbxmpp.protocol-module.html#ERR_UNEXPECTED_REQUEST"><a title="nbxmpp.protocol.ERR_UNEXPECTED_REQUEST" class="py-name" href="#" onclick="return doclink('link-176', 'ERR_UNEXPECTED_REQUEST', 'link-176');">ERR_UNEXPECTED_REQUEST</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas unexpected-request'</tt> </tt>
+<a name="L450"></a><tt class="py-lineno"> 450</tt> <tt class="py-line"><tt id="link-177" class="py-name" targets="Variable nbxmpp.protocol.ERR_RECIPIENT_UNAVAILABLE=nbxmpp.protocol-module.html#ERR_RECIPIENT_UNAVAILABLE"><a title="nbxmpp.protocol.ERR_RECIPIENT_UNAVAILABLE" class="py-name" href="#" onclick="return doclink('link-177', 'ERR_RECIPIENT_UNAVAILABLE', 'link-177');">ERR_RECIPIENT_UNAVAILABLE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas recipient-unavailable'</tt> </tt>
+<a name="L451"></a><tt class="py-lineno"> 451</tt> <tt class="py-line"><tt id="link-178" class="py-name" targets="Variable nbxmpp.protocol.ERR_CONFLICT=nbxmpp.protocol-module.html#ERR_CONFLICT"><a title="nbxmpp.protocol.ERR_CONFLICT" class="py-name" href="#" onclick="return doclink('link-178', 'ERR_CONFLICT', 'link-178');">ERR_CONFLICT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas conflict'</tt> </tt>
+<a name="L452"></a><tt class="py-lineno"> 452</tt> <tt class="py-line"><tt id="link-179" class="py-name" targets="Variable nbxmpp.protocol.STREAM_SYSTEM_SHUTDOWN=nbxmpp.protocol-module.html#STREAM_SYSTEM_SHUTDOWN"><a title="nbxmpp.protocol.STREAM_SYSTEM_SHUTDOWN" class="py-name" href="#" onclick="return doclink('link-179', 'STREAM_SYSTEM_SHUTDOWN', 'link-179');">STREAM_SYSTEM_SHUTDOWN</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams system-shutdown'</tt> </tt>
+<a name="L453"></a><tt class="py-lineno"> 453</tt> <tt class="py-line"><tt id="link-180" class="py-name" targets="Variable nbxmpp.protocol.STREAM_BAD_FORMAT=nbxmpp.protocol-module.html#STREAM_BAD_FORMAT"><a title="nbxmpp.protocol.STREAM_BAD_FORMAT" class="py-name" href="#" onclick="return doclink('link-180', 'STREAM_BAD_FORMAT', 'link-180');">STREAM_BAD_FORMAT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams bad-format'</tt> </tt>
+<a name="L454"></a><tt class="py-lineno"> 454</tt> <tt class="py-line"><tt id="link-181" class="py-name" targets="Variable nbxmpp.protocol.ERR_SUBSCRIPTION_REQUIRED=nbxmpp.protocol-module.html#ERR_SUBSCRIPTION_REQUIRED"><a title="nbxmpp.protocol.ERR_SUBSCRIPTION_REQUIRED" class="py-name" href="#" onclick="return doclink('link-181', 'ERR_SUBSCRIPTION_REQUIRED', 'link-181');">ERR_SUBSCRIPTION_REQUIRED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas subscription-required'</tt> </tt>
+<a name="L455"></a><tt class="py-lineno"> 455</tt> <tt class="py-line"><tt id="link-182" class="py-name" targets="Variable nbxmpp.protocol.STREAM_INTERNAL_SERVER_ERROR=nbxmpp.protocol-module.html#STREAM_INTERNAL_SERVER_ERROR"><a title="nbxmpp.protocol.STREAM_INTERNAL_SERVER_ERROR" class="py-name" href="#" onclick="return doclink('link-182', 'STREAM_INTERNAL_SERVER_ERROR', 'link-182');">STREAM_INTERNAL_SERVER_ERROR</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams internal-server-error'</tt> </tt>
+<a name="L456"></a><tt class="py-lineno"> 456</tt> <tt class="py-line"><tt id="link-183" class="py-name" targets="Variable nbxmpp.protocol.ERR_NOT_AUTHORIZED=nbxmpp.protocol-module.html#ERR_NOT_AUTHORIZED"><a title="nbxmpp.protocol.ERR_NOT_AUTHORIZED" class="py-name" href="#" onclick="return doclink('link-183', 'ERR_NOT_AUTHORIZED', 'link-183');">ERR_NOT_AUTHORIZED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas not-authorized'</tt> </tt>
+<a name="L457"></a><tt class="py-lineno"> 457</tt> <tt class="py-line"><tt id="link-184" class="py-name" targets="Variable nbxmpp.protocol.SASL_ABORTED=nbxmpp.protocol-module.html#SASL_ABORTED"><a title="nbxmpp.protocol.SASL_ABORTED" class="py-name" href="#" onclick="return doclink('link-184', 'SASL_ABORTED', 'link-184');">SASL_ABORTED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl aborted'</tt> </tt>
+<a name="L458"></a><tt class="py-lineno"> 458</tt> <tt class="py-line"><tt id="link-185" class="py-name" targets="Variable nbxmpp.protocol.ERR_REGISTRATION_REQUIRED=nbxmpp.protocol-module.html#ERR_REGISTRATION_REQUIRED"><a title="nbxmpp.protocol.ERR_REGISTRATION_REQUIRED" class="py-name" href="#" onclick="return doclink('link-185', 'ERR_REGISTRATION_REQUIRED', 'link-185');">ERR_REGISTRATION_REQUIRED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas registration-required'</tt> </tt>
+<a name="L459"></a><tt class="py-lineno"> 459</tt> <tt class="py-line"><tt id="link-186" class="py-name" targets="Variable nbxmpp.protocol.ERR_INTERNAL_SERVER_ERROR=nbxmpp.protocol-module.html#ERR_INTERNAL_SERVER_ERROR"><a title="nbxmpp.protocol.ERR_INTERNAL_SERVER_ERROR" class="py-name" href="#" onclick="return doclink('link-186', 'ERR_INTERNAL_SERVER_ERROR', 'link-186');">ERR_INTERNAL_SERVER_ERROR</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas internal-server-error'</tt> </tt>
+<a name="L460"></a><tt class="py-lineno"> 460</tt> <tt class="py-line"><tt id="link-187" class="py-name" targets="Variable nbxmpp.protocol.SASL_INCORRECT_ENCODING=nbxmpp.protocol-module.html#SASL_INCORRECT_ENCODING"><a title="nbxmpp.protocol.SASL_INCORRECT_ENCODING" class="py-name" href="#" onclick="return doclink('link-187', 'SASL_INCORRECT_ENCODING', 'link-187');">SASL_INCORRECT_ENCODING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding'</tt> </tt>
+<a name="L461"></a><tt class="py-lineno"> 461</tt> <tt class="py-line"><tt id="link-188" class="py-name" targets="Variable nbxmpp.protocol.STREAM_HOST_GONE=nbxmpp.protocol-module.html#STREAM_HOST_GONE"><a title="nbxmpp.protocol.STREAM_HOST_GONE" class="py-name" href="#" onclick="return doclink('link-188', 'STREAM_HOST_GONE', 'link-188');">STREAM_HOST_GONE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams host-gone'</tt> </tt>
+<a name="L462"></a><tt class="py-lineno"> 462</tt> <tt class="py-line"><tt id="link-189" class="py-name" targets="Variable nbxmpp.protocol.STREAM_POLICY_VIOLATION=nbxmpp.protocol-module.html#STREAM_POLICY_VIOLATION"><a title="nbxmpp.protocol.STREAM_POLICY_VIOLATION" class="py-name" href="#" onclick="return doclink('link-189', 'STREAM_POLICY_VIOLATION', 'link-189');">STREAM_POLICY_VIOLATION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams policy-violation'</tt> </tt>
+<a name="L463"></a><tt class="py-lineno"> 463</tt> <tt class="py-line"><tt id="link-190" class="py-name" targets="Variable nbxmpp.protocol.STREAM_INVALID_XML=nbxmpp.protocol-module.html#STREAM_INVALID_XML"><a title="nbxmpp.protocol.STREAM_INVALID_XML" class="py-name" href="#" onclick="return doclink('link-190', 'STREAM_INVALID_XML', 'link-190');">STREAM_INVALID_XML</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams invalid-xml'</tt> </tt>
+<a name="L464"></a><tt class="py-lineno"> 464</tt> <tt class="py-line"><tt id="link-191" class="py-name" targets="Variable nbxmpp.protocol.STREAM_CONFLICT=nbxmpp.protocol-module.html#STREAM_CONFLICT"><a title="nbxmpp.protocol.STREAM_CONFLICT" class="py-name" href="#" onclick="return doclink('link-191', 'STREAM_CONFLICT', 'link-191');">STREAM_CONFLICT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams conflict'</tt> </tt>
+<a name="L465"></a><tt class="py-lineno"> 465</tt> <tt class="py-line"><tt id="link-192" class="py-name" targets="Variable nbxmpp.protocol.STREAM_RESOURCE_CONSTRAINT=nbxmpp.protocol-module.html#STREAM_RESOURCE_CONSTRAINT"><a title="nbxmpp.protocol.STREAM_RESOURCE_CONSTRAINT" class="py-name" href="#" onclick="return doclink('link-192', 'STREAM_RESOURCE_CONSTRAINT', 'link-192');">STREAM_RESOURCE_CONSTRAINT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams resource-constraint'</tt> </tt>
+<a name="L466"></a><tt class="py-lineno"> 466</tt> <tt class="py-line"><tt id="link-193" class="py-name" targets="Variable nbxmpp.protocol.STREAM_UNSUPPORTED_ENCODING=nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_ENCODING"><a title="nbxmpp.protocol.STREAM_UNSUPPORTED_ENCODING" class="py-name" href="#" onclick="return doclink('link-193', 'STREAM_UNSUPPORTED_ENCODING', 'link-193');">STREAM_UNSUPPORTED_ENCODING</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams unsupported-encoding'</tt> </tt>
+<a name="L467"></a><tt class="py-lineno"> 467</tt> <tt class="py-line"><tt id="link-194" class="py-name" targets="Variable nbxmpp.protocol.ERR_NOT_ALLOWED=nbxmpp.protocol-module.html#ERR_NOT_ALLOWED"><a title="nbxmpp.protocol.ERR_NOT_ALLOWED" class="py-name" href="#" onclick="return doclink('link-194', 'ERR_NOT_ALLOWED', 'link-194');">ERR_NOT_ALLOWED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas not-allowed'</tt> </tt>
+<a name="L468"></a><tt class="py-lineno"> 468</tt> <tt class="py-line"><tt id="link-195" class="py-name" targets="Variable nbxmpp.protocol.ERR_ITEM_NOT_FOUND=nbxmpp.protocol-module.html#ERR_ITEM_NOT_FOUND"><a title="nbxmpp.protocol.ERR_ITEM_NOT_FOUND" class="py-name" href="#" onclick="return doclink('link-195', 'ERR_ITEM_NOT_FOUND', 'link-195');">ERR_ITEM_NOT_FOUND</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas item-not-found'</tt> </tt>
+<a name="L469"></a><tt class="py-lineno"> 469</tt> <tt class="py-line"><tt id="link-196" class="py-name" targets="Variable nbxmpp.protocol.ERR_NOT_ACCEPTABLE=nbxmpp.protocol-module.html#ERR_NOT_ACCEPTABLE"><a title="nbxmpp.protocol.ERR_NOT_ACCEPTABLE" class="py-name" href="#" onclick="return doclink('link-196', 'ERR_NOT_ACCEPTABLE', 'link-196');">ERR_NOT_ACCEPTABLE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas not-acceptable'</tt> </tt>
+<a name="L470"></a><tt class="py-lineno"> 470</tt> <tt class="py-line"><tt id="link-197" class="py-name" targets="Variable nbxmpp.protocol.STREAM_INVALID_FROM=nbxmpp.protocol-module.html#STREAM_INVALID_FROM"><a title="nbxmpp.protocol.STREAM_INVALID_FROM" class="py-name" href="#" onclick="return doclink('link-197', 'STREAM_INVALID_FROM', 'link-197');">STREAM_INVALID_FROM</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams invalid-from'</tt> </tt>
+<a name="L471"></a><tt class="py-lineno"> 471</tt> <tt class="py-line"><tt id="link-198" class="py-name" targets="Variable nbxmpp.protocol.ERR_FEATURE_NOT_IMPLEMENTED=nbxmpp.protocol-module.html#ERR_FEATURE_NOT_IMPLEMENTED"><a title="nbxmpp.protocol.ERR_FEATURE_NOT_IMPLEMENTED" class="py-name" href="#" onclick="return doclink('link-198', 'ERR_FEATURE_NOT_IMPLEMENTED', 'link-198');">ERR_FEATURE_NOT_IMPLEMENTED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas feature-not-implemented'</tt> </tt>
+<a name="L472"></a><tt class="py-lineno"> 472</tt> <tt class="py-line"><tt id="link-199" class="py-name" targets="Variable nbxmpp.protocol.ERR_BAD_REQUEST=nbxmpp.protocol-module.html#ERR_BAD_REQUEST"><a title="nbxmpp.protocol.ERR_BAD_REQUEST" class="py-name" href="#" onclick="return doclink('link-199', 'ERR_BAD_REQUEST', 'link-199');">ERR_BAD_REQUEST</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas bad-request'</tt> </tt>
+<a name="L473"></a><tt class="py-lineno"> 473</tt> <tt class="py-line"><tt id="link-200" class="py-name" targets="Variable nbxmpp.protocol.STREAM_INVALID_ID=nbxmpp.protocol-module.html#STREAM_INVALID_ID"><a title="nbxmpp.protocol.STREAM_INVALID_ID" class="py-name" href="#" onclick="return doclink('link-200', 'STREAM_INVALID_ID', 'link-200');">STREAM_INVALID_ID</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams invalid-id'</tt> </tt>
+<a name="L474"></a><tt class="py-lineno"> 474</tt> <tt class="py-line"><tt id="link-201" class="py-name" targets="Variable nbxmpp.protocol.STREAM_HOST_UNKNOWN=nbxmpp.protocol-module.html#STREAM_HOST_UNKNOWN"><a title="nbxmpp.protocol.STREAM_HOST_UNKNOWN" class="py-name" href="#" onclick="return doclink('link-201', 'STREAM_HOST_UNKNOWN', 'link-201');">STREAM_HOST_UNKNOWN</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams host-unknown'</tt> </tt>
+<a name="L475"></a><tt class="py-lineno"> 475</tt> <tt class="py-line"><tt id="link-202" class="py-name" targets="Variable nbxmpp.protocol.ERR_UNDEFINED_CONDITION=nbxmpp.protocol-module.html#ERR_UNDEFINED_CONDITION"><a title="nbxmpp.protocol.ERR_UNDEFINED_CONDITION" class="py-name" href="#" onclick="return doclink('link-202', 'ERR_UNDEFINED_CONDITION', 'link-202');">ERR_UNDEFINED_CONDITION</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas undefined-condition'</tt> </tt>
+<a name="L476"></a><tt class="py-lineno"> 476</tt> <tt class="py-line"><tt id="link-203" class="py-name" targets="Variable nbxmpp.protocol.SASL_INVALID_MECHANISM=nbxmpp.protocol-module.html#SASL_INVALID_MECHANISM"><a title="nbxmpp.protocol.SASL_INVALID_MECHANISM" class="py-name" href="#" onclick="return doclink('link-203', 'SASL_INVALID_MECHANISM', 'link-203');">SASL_INVALID_MECHANISM</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl invalid-mechanism'</tt> </tt>
+<a name="L477"></a><tt class="py-lineno"> 477</tt> <tt class="py-line"><tt id="link-204" class="py-name" targets="Variable nbxmpp.protocol.STREAM_RESTRICTED_XML=nbxmpp.protocol-module.html#STREAM_RESTRICTED_XML"><a title="nbxmpp.protocol.STREAM_RESTRICTED_XML" class="py-name" href="#" onclick="return doclink('link-204', 'STREAM_RESTRICTED_XML', 'link-204');">STREAM_RESTRICTED_XML</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams restricted-xml'</tt> </tt>
+<a name="L478"></a><tt class="py-lineno"> 478</tt> <tt class="py-line"><tt id="link-205" class="py-name" targets="Variable nbxmpp.protocol.ERR_RESOURCE_CONSTRAINT=nbxmpp.protocol-module.html#ERR_RESOURCE_CONSTRAINT"><a title="nbxmpp.protocol.ERR_RESOURCE_CONSTRAINT" class="py-name" href="#" onclick="return doclink('link-205', 'ERR_RESOURCE_CONSTRAINT', 'link-205');">ERR_RESOURCE_CONSTRAINT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas resource-constraint'</tt> </tt>
+<a name="L479"></a><tt class="py-lineno"> 479</tt> <tt class="py-line"><tt id="link-206" class="py-name" targets="Variable nbxmpp.protocol.ERR_REMOTE_SERVER_TIMEOUT=nbxmpp.protocol-module.html#ERR_REMOTE_SERVER_TIMEOUT"><a title="nbxmpp.protocol.ERR_REMOTE_SERVER_TIMEOUT" class="py-name" href="#" onclick="return doclink('link-206', 'ERR_REMOTE_SERVER_TIMEOUT', 'link-206');">ERR_REMOTE_SERVER_TIMEOUT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-timeout'</tt> </tt>
+<a name="L480"></a><tt class="py-lineno"> 480</tt> <tt class="py-line"><tt id="link-207" class="py-name" targets="Variable nbxmpp.protocol.SASL_INVALID_AUTHZID=nbxmpp.protocol-module.html#SASL_INVALID_AUTHZID"><a title="nbxmpp.protocol.SASL_INVALID_AUTHZID" class="py-name" href="#" onclick="return doclink('link-207', 'SASL_INVALID_AUTHZID', 'link-207');">SASL_INVALID_AUTHZID</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-sasl invalid-authzid'</tt> </tt>
+<a name="L481"></a><tt class="py-lineno"> 481</tt> <tt class="py-line"><tt id="link-208" class="py-name" targets="Variable nbxmpp.protocol.ERR_PAYMENT_REQUIRED=nbxmpp.protocol-module.html#ERR_PAYMENT_REQUIRED"><a title="nbxmpp.protocol.ERR_PAYMENT_REQUIRED" class="py-name" href="#" onclick="return doclink('link-208', 'ERR_PAYMENT_REQUIRED', 'link-208');">ERR_PAYMENT_REQUIRED</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas payment-required'</tt> </tt>
+<a name="L482"></a><tt class="py-lineno"> 482</tt> <tt class="py-line"><tt id="link-209" class="py-name" targets="Variable nbxmpp.protocol.STREAM_INVALID_NAMESPACE=nbxmpp.protocol-module.html#STREAM_INVALID_NAMESPACE"><a title="nbxmpp.protocol.STREAM_INVALID_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-209', 'STREAM_INVALID_NAMESPACE', 'link-209');">STREAM_INVALID_NAMESPACE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams invalid-namespace'</tt> </tt>
+<a name="L483"></a><tt class="py-lineno"> 483</tt> <tt class="py-line"><tt id="link-210" class="py-name" targets="Variable nbxmpp.protocol.ERR_REDIRECT=nbxmpp.protocol-module.html#ERR_REDIRECT"><a title="nbxmpp.protocol.ERR_REDIRECT" class="py-name" href="#" onclick="return doclink('link-210', 'ERR_REDIRECT', 'link-210');">ERR_REDIRECT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas redirect'</tt> </tt>
+<a name="L484"></a><tt class="py-lineno"> 484</tt> <tt class="py-line"><tt id="link-211" class="py-name" targets="Variable nbxmpp.protocol.STREAM_UNSUPPORTED_STANZA_TYPE=nbxmpp.protocol-module.html#STREAM_UNSUPPORTED_STANZA_TYPE"><a title="nbxmpp.protocol.STREAM_UNSUPPORTED_STANZA_TYPE" class="py-name" href="#" onclick="return doclink('link-211', 'STREAM_UNSUPPORTED_STANZA_TYPE', 'link-211');">STREAM_UNSUPPORTED_STANZA_TYPE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-streams unsupported-stanza-type'</tt> </tt>
+<a name="L485"></a><tt class="py-lineno"> 485</tt> <tt class="py-line"><tt id="link-212" class="py-name" targets="Variable nbxmpp.protocol.ERR_FORBIDDEN=nbxmpp.protocol-module.html#ERR_FORBIDDEN"><a title="nbxmpp.protocol.ERR_FORBIDDEN" class="py-name" href="#" onclick="return doclink('link-212', 'ERR_FORBIDDEN', 'link-212');">ERR_FORBIDDEN</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'urn:ietf:params:xml:ns:xmpp-stanzas forbidden'</tt> </tt>
+<a name="L486"></a><tt class="py-lineno"> 486</tt> <tt class="py-line"> </tt>
+<a name="isResultNode"></a><div id="isResultNode-def"><a name="L487"></a><tt class="py-lineno"> 487</tt> <a class="py-toggle" href="#" id="isResultNode-toggle" onclick="return toggle('isResultNode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol-module.html#isResultNode">isResultNode</a><tt class="py-op">(</tt><tt class="py-param">node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="isResultNode-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="isResultNode-expanded"><a name="L488"></a><tt class="py-lineno"> 488</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L489"></a><tt class="py-lineno"> 489</tt> <tt class="py-line"><tt class="py-docstring"> Return true if the node is a positive reply</tt> </tt>
+<a name="L490"></a><tt class="py-lineno"> 490</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L491"></a><tt class="py-lineno"> 491</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">node</tt> <tt class="py-keyword">and</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name" targets="Method nbxmpp.protocol.DataField.getType()=nbxmpp.protocol.DataField-class.html#getType,Method nbxmpp.protocol.DataForm.getType()=nbxmpp.protocol.DataForm-class.html#getType,Method nbxmpp.protocol.Protocol.getType()=nbxmpp.protocol.Protocol-class.html#getType"><a title="nbxmpp.protocol.DataField.getType
nbxmpp.protocol.DataForm.getType
-nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-170', 'getType', 'link-170');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'result'</tt> </tt>
-</div><a name="L248"></a><tt class="py-lineno"> 248</tt> <tt class="py-line"> </tt>
-<a name="isErrorNode"></a><div id="isErrorNode-def"><a name="L249"></a><tt class="py-lineno"> 249</tt> <a class="py-toggle" href="#" id="isErrorNode-toggle" onclick="return toggle('isErrorNode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol-module.html#isErrorNode">isErrorNode</a><tt class="py-op">(</tt><tt class="py-param">node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="isErrorNode-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="isErrorNode-expanded"><a name="L250"></a><tt class="py-lineno"> 250</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L251"></a><tt class="py-lineno"> 251</tt> <tt class="py-line"><tt class="py-docstring"> Return true if the node is a negative reply</tt> </tt>
-<a name="L252"></a><tt class="py-lineno"> 252</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L253"></a><tt class="py-lineno"> 253</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">node</tt> <tt class="py-keyword">and</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="nbxmpp.protocol.DataField.getType
+nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-213', 'getType', 'link-213');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'result'</tt> </tt>
+</div><a name="L492"></a><tt class="py-lineno"> 492</tt> <tt class="py-line"> </tt>
+<a name="isErrorNode"></a><div id="isErrorNode-def"><a name="L493"></a><tt class="py-lineno"> 493</tt> <a class="py-toggle" href="#" id="isErrorNode-toggle" onclick="return toggle('isErrorNode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol-module.html#isErrorNode">isErrorNode</a><tt class="py-op">(</tt><tt class="py-param">node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="isErrorNode-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="isErrorNode-expanded"><a name="L494"></a><tt class="py-lineno"> 494</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L495"></a><tt class="py-lineno"> 495</tt> <tt class="py-line"><tt class="py-docstring"> Return true if the node is a negative reply</tt> </tt>
+<a name="L496"></a><tt class="py-lineno"> 496</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L497"></a><tt class="py-lineno"> 497</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">node</tt> <tt class="py-keyword">and</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-214" class="py-name"><a title="nbxmpp.protocol.DataField.getType
nbxmpp.protocol.DataForm.getType
-nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-171', 'getType', 'link-170');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'error'</tt> </tt>
-</div><a name="L254"></a><tt class="py-lineno"> 254</tt> <tt class="py-line"> </tt>
-<a name="NodeProcessed"></a><div id="NodeProcessed-def"><a name="L255"></a><tt class="py-lineno"> 255</tt> <a class="py-toggle" href="#" id="NodeProcessed-toggle" onclick="return toggle('NodeProcessed');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.NodeProcessed-class.html">NodeProcessed</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NodeProcessed-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="NodeProcessed-expanded"><a name="L256"></a><tt class="py-lineno"> 256</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L257"></a><tt class="py-lineno"> 257</tt> <tt class="py-line"><tt class="py-docstring"> Exception that should be raised by handler when the handling should be</tt> </tt>
-<a name="L258"></a><tt class="py-lineno"> 258</tt> <tt class="py-line"><tt class="py-docstring"> stopped</tt> </tt>
-<a name="L259"></a><tt class="py-lineno"> 259</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L260"></a><tt class="py-lineno"> 260</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L261"></a><tt class="py-lineno"> 261</tt> <tt class="py-line"> </tt>
-<a name="StreamError"></a><div id="StreamError-def"><a name="L262"></a><tt class="py-lineno"> 262</tt> <a class="py-toggle" href="#" id="StreamError-toggle" onclick="return toggle('StreamError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.StreamError-class.html">StreamError</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="StreamError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="StreamError-expanded"><a name="L263"></a><tt class="py-lineno"> 263</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L264"></a><tt class="py-lineno"> 264</tt> <tt class="py-line"><tt class="py-docstring"> Base exception class for stream errors</tt> </tt>
-<a name="L265"></a><tt class="py-lineno"> 265</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L266"></a><tt class="py-lineno"> 266</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L267"></a><tt class="py-lineno"> 267</tt> <tt class="py-line"> </tt>
-<a name="BadFormat"></a><div id="BadFormat-def"><a name="L268"></a><tt class="py-lineno"> 268</tt> <a class="py-toggle" href="#" id="BadFormat-toggle" onclick="return toggle('BadFormat');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.BadFormat-class.html">BadFormat</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BadFormat-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BadFormat-expanded"><a name="L269"></a><tt class="py-lineno"> 269</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L270"></a><tt class="py-lineno"> 270</tt> <tt class="py-line"> </tt>
-<a name="BadNamespacePrefix"></a><div id="BadNamespacePrefix-def"><a name="L271"></a><tt class="py-lineno"> 271</tt> <a class="py-toggle" href="#" id="BadNamespacePrefix-toggle" onclick="return toggle('BadNamespacePrefix');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.BadNamespacePrefix-class.html">BadNamespacePrefix</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BadNamespacePrefix-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BadNamespacePrefix-expanded"><a name="L272"></a><tt class="py-lineno"> 272</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L273"></a><tt class="py-lineno"> 273</tt> <tt class="py-line"> </tt>
-<a name="Conflict"></a><div id="Conflict-def"><a name="L274"></a><tt class="py-lineno"> 274</tt> <a class="py-toggle" href="#" id="Conflict-toggle" onclick="return toggle('Conflict');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Conflict-class.html">Conflict</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Conflict-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Conflict-expanded"><a name="L275"></a><tt class="py-lineno"> 275</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L276"></a><tt class="py-lineno"> 276</tt> <tt class="py-line"> </tt>
-<a name="ConnectionTimeout"></a><div id="ConnectionTimeout-def"><a name="L277"></a><tt class="py-lineno"> 277</tt> <a class="py-toggle" href="#" id="ConnectionTimeout-toggle" onclick="return toggle('ConnectionTimeout');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.ConnectionTimeout-class.html">ConnectionTimeout</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ConnectionTimeout-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ConnectionTimeout-expanded"><a name="L278"></a><tt class="py-lineno"> 278</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L279"></a><tt class="py-lineno"> 279</tt> <tt class="py-line"> </tt>
-<a name="HostGone"></a><div id="HostGone-def"><a name="L280"></a><tt class="py-lineno"> 280</tt> <a class="py-toggle" href="#" id="HostGone-toggle" onclick="return toggle('HostGone');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.HostGone-class.html">HostGone</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostGone-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HostGone-expanded"><a name="L281"></a><tt class="py-lineno"> 281</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L282"></a><tt class="py-lineno"> 282</tt> <tt class="py-line"> </tt>
-<a name="HostUnknown"></a><div id="HostUnknown-def"><a name="L283"></a><tt class="py-lineno"> 283</tt> <a class="py-toggle" href="#" id="HostUnknown-toggle" onclick="return toggle('HostUnknown');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.HostUnknown-class.html">HostUnknown</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HostUnknown-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HostUnknown-expanded"><a name="L284"></a><tt class="py-lineno"> 284</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L285"></a><tt class="py-lineno"> 285</tt> <tt class="py-line"> </tt>
-<a name="ImproperAddressing"></a><div id="ImproperAddressing-def"><a name="L286"></a><tt class="py-lineno"> 286</tt> <a class="py-toggle" href="#" id="ImproperAddressing-toggle" onclick="return toggle('ImproperAddressing');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.ImproperAddressing-class.html">ImproperAddressing</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ImproperAddressing-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ImproperAddressing-expanded"><a name="L287"></a><tt class="py-lineno"> 287</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L288"></a><tt class="py-lineno"> 288</tt> <tt class="py-line"> </tt>
-<a name="InternalServerError"></a><div id="InternalServerError-def"><a name="L289"></a><tt class="py-lineno"> 289</tt> <a class="py-toggle" href="#" id="InternalServerError-toggle" onclick="return toggle('InternalServerError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.InternalServerError-class.html">InternalServerError</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InternalServerError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InternalServerError-expanded"><a name="L290"></a><tt class="py-lineno"> 290</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L291"></a><tt class="py-lineno"> 291</tt> <tt class="py-line"> </tt>
-<a name="InvalidFrom"></a><div id="InvalidFrom-def"><a name="L292"></a><tt class="py-lineno"> 292</tt> <a class="py-toggle" href="#" id="InvalidFrom-toggle" onclick="return toggle('InvalidFrom');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.InvalidFrom-class.html">InvalidFrom</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InvalidFrom-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InvalidFrom-expanded"><a name="L293"></a><tt class="py-lineno"> 293</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L294"></a><tt class="py-lineno"> 294</tt> <tt class="py-line"> </tt>
-<a name="InvalidID"></a><div id="InvalidID-def"><a name="L295"></a><tt class="py-lineno"> 295</tt> <a class="py-toggle" href="#" id="InvalidID-toggle" onclick="return toggle('InvalidID');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.InvalidID-class.html">InvalidID</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InvalidID-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InvalidID-expanded"><a name="L296"></a><tt class="py-lineno"> 296</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L297"></a><tt class="py-lineno"> 297</tt> <tt class="py-line"> </tt>
-<a name="InvalidNamespace"></a><div id="InvalidNamespace-def"><a name="L298"></a><tt class="py-lineno"> 298</tt> <a class="py-toggle" href="#" id="InvalidNamespace-toggle" onclick="return toggle('InvalidNamespace');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.InvalidNamespace-class.html">InvalidNamespace</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InvalidNamespace-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InvalidNamespace-expanded"><a name="L299"></a><tt class="py-lineno"> 299</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L300"></a><tt class="py-lineno"> 300</tt> <tt class="py-line"> </tt>
-<a name="InvalidXML"></a><div id="InvalidXML-def"><a name="L301"></a><tt class="py-lineno"> 301</tt> <a class="py-toggle" href="#" id="InvalidXML-toggle" onclick="return toggle('InvalidXML');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.InvalidXML-class.html">InvalidXML</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InvalidXML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InvalidXML-expanded"><a name="L302"></a><tt class="py-lineno"> 302</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L303"></a><tt class="py-lineno"> 303</tt> <tt class="py-line"> </tt>
-<a name="NotAuthorized"></a><div id="NotAuthorized-def"><a name="L304"></a><tt class="py-lineno"> 304</tt> <a class="py-toggle" href="#" id="NotAuthorized-toggle" onclick="return toggle('NotAuthorized');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.NotAuthorized-class.html">NotAuthorized</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NotAuthorized-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="NotAuthorized-expanded"><a name="L305"></a><tt class="py-lineno"> 305</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L306"></a><tt class="py-lineno"> 306</tt> <tt class="py-line"> </tt>
-<a name="PolicyViolation"></a><div id="PolicyViolation-def"><a name="L307"></a><tt class="py-lineno"> 307</tt> <a class="py-toggle" href="#" id="PolicyViolation-toggle" onclick="return toggle('PolicyViolation');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.PolicyViolation-class.html">PolicyViolation</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="PolicyViolation-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="PolicyViolation-expanded"><a name="L308"></a><tt class="py-lineno"> 308</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L309"></a><tt class="py-lineno"> 309</tt> <tt class="py-line"> </tt>
-<a name="RemoteConnectionFailed"></a><div id="RemoteConnectionFailed-def"><a name="L310"></a><tt class="py-lineno"> 310</tt> <a class="py-toggle" href="#" id="RemoteConnectionFailed-toggle" onclick="return toggle('RemoteConnectionFailed');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.RemoteConnectionFailed-class.html">RemoteConnectionFailed</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RemoteConnectionFailed-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="RemoteConnectionFailed-expanded"><a name="L311"></a><tt class="py-lineno"> 311</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L312"></a><tt class="py-lineno"> 312</tt> <tt class="py-line"> </tt>
-<a name="ResourceConstraint"></a><div id="ResourceConstraint-def"><a name="L313"></a><tt class="py-lineno"> 313</tt> <a class="py-toggle" href="#" id="ResourceConstraint-toggle" onclick="return toggle('ResourceConstraint');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.ResourceConstraint-class.html">ResourceConstraint</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ResourceConstraint-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ResourceConstraint-expanded"><a name="L314"></a><tt class="py-lineno"> 314</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L315"></a><tt class="py-lineno"> 315</tt> <tt class="py-line"> </tt>
-<a name="RestrictedXML"></a><div id="RestrictedXML-def"><a name="L316"></a><tt class="py-lineno"> 316</tt> <a class="py-toggle" href="#" id="RestrictedXML-toggle" onclick="return toggle('RestrictedXML');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.RestrictedXML-class.html">RestrictedXML</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RestrictedXML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="RestrictedXML-expanded"><a name="L317"></a><tt class="py-lineno"> 317</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L318"></a><tt class="py-lineno"> 318</tt> <tt class="py-line"> </tt>
-<a name="SeeOtherHost"></a><div id="SeeOtherHost-def"><a name="L319"></a><tt class="py-lineno"> 319</tt> <a class="py-toggle" href="#" id="SeeOtherHost-toggle" onclick="return toggle('SeeOtherHost');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.SeeOtherHost-class.html">SeeOtherHost</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SeeOtherHost-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SeeOtherHost-expanded"><a name="L320"></a><tt class="py-lineno"> 320</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L321"></a><tt class="py-lineno"> 321</tt> <tt class="py-line"> </tt>
-<a name="SystemShutdown"></a><div id="SystemShutdown-def"><a name="L322"></a><tt class="py-lineno"> 322</tt> <a class="py-toggle" href="#" id="SystemShutdown-toggle" onclick="return toggle('SystemShutdown');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.SystemShutdown-class.html">SystemShutdown</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SystemShutdown-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SystemShutdown-expanded"><a name="L323"></a><tt class="py-lineno"> 323</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L324"></a><tt class="py-lineno"> 324</tt> <tt class="py-line"> </tt>
-<a name="UndefinedCondition"></a><div id="UndefinedCondition-def"><a name="L325"></a><tt class="py-lineno"> 325</tt> <a class="py-toggle" href="#" id="UndefinedCondition-toggle" onclick="return toggle('UndefinedCondition');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.UndefinedCondition-class.html">UndefinedCondition</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UndefinedCondition-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="UndefinedCondition-expanded"><a name="L326"></a><tt class="py-lineno"> 326</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L327"></a><tt class="py-lineno"> 327</tt> <tt class="py-line"> </tt>
-<a name="UnsupportedEncoding"></a><div id="UnsupportedEncoding-def"><a name="L328"></a><tt class="py-lineno"> 328</tt> <a class="py-toggle" href="#" id="UnsupportedEncoding-toggle" onclick="return toggle('UnsupportedEncoding');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.UnsupportedEncoding-class.html">UnsupportedEncoding</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnsupportedEncoding-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="UnsupportedEncoding-expanded"><a name="L329"></a><tt class="py-lineno"> 329</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L330"></a><tt class="py-lineno"> 330</tt> <tt class="py-line"> </tt>
-<a name="UnsupportedStanzaType"></a><div id="UnsupportedStanzaType-def"><a name="L331"></a><tt class="py-lineno"> 331</tt> <a class="py-toggle" href="#" id="UnsupportedStanzaType-toggle" onclick="return toggle('UnsupportedStanzaType');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.UnsupportedStanzaType-class.html">UnsupportedStanzaType</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnsupportedStanzaType-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="UnsupportedStanzaType-expanded"><a name="L332"></a><tt class="py-lineno"> 332</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L333"></a><tt class="py-lineno"> 333</tt> <tt class="py-line"> </tt>
-<a name="UnsupportedVersion"></a><div id="UnsupportedVersion-def"><a name="L334"></a><tt class="py-lineno"> 334</tt> <a class="py-toggle" href="#" id="UnsupportedVersion-toggle" onclick="return toggle('UnsupportedVersion');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.UnsupportedVersion-class.html">UnsupportedVersion</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnsupportedVersion-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="UnsupportedVersion-expanded"><a name="L335"></a><tt class="py-lineno"> 335</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L336"></a><tt class="py-lineno"> 336</tt> <tt class="py-line"> </tt>
-<a name="XMLNotWellFormed"></a><div id="XMLNotWellFormed-def"><a name="L337"></a><tt class="py-lineno"> 337</tt> <a class="py-toggle" href="#" id="XMLNotWellFormed-toggle" onclick="return toggle('XMLNotWellFormed');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.XMLNotWellFormed-class.html">XMLNotWellFormed</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLNotWellFormed-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLNotWellFormed-expanded"><a name="L338"></a><tt class="py-lineno"> 338</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L339"></a><tt class="py-lineno"> 339</tt> <tt class="py-line"> </tt>
-<a name="L340"></a><tt class="py-lineno"> 340</tt> <tt class="py-line"><tt id="link-172" class="py-name" targets="Variable nbxmpp.protocol.stream_exceptions=nbxmpp.protocol-module.html#stream_exceptions"><a title="nbxmpp.protocol.stream_exceptions" class="py-name" href="#" onclick="return doclink('link-172', 'stream_exceptions', 'link-172');">stream_exceptions</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'bad-format'</tt><tt class="py-op">:</tt> <tt id="link-173" class="py-name" targets="Class nbxmpp.protocol.BadFormat=nbxmpp.protocol.BadFormat-class.html"><a title="nbxmpp.protocol.BadFormat" class="py-name" href="#" onclick="return doclink('link-173', 'BadFormat', 'link-173');">BadFormat</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L341"></a><tt class="py-lineno"> 341</tt> <tt class="py-line"> <tt class="py-string">'bad-namespace-prefix'</tt><tt class="py-op">:</tt> <tt id="link-174" class="py-name" targets="Class nbxmpp.protocol.BadNamespacePrefix=nbxmpp.protocol.BadNamespacePrefix-class.html"><a title="nbxmpp.protocol.BadNamespacePrefix" class="py-name" href="#" onclick="return doclink('link-174', 'BadNamespacePrefix', 'link-174');">BadNamespacePrefix</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L342"></a><tt class="py-lineno"> 342</tt> <tt class="py-line"> <tt class="py-string">'conflict'</tt><tt class="py-op">:</tt> <tt id="link-175" class="py-name" targets="Class nbxmpp.protocol.Conflict=nbxmpp.protocol.Conflict-class.html"><a title="nbxmpp.protocol.Conflict" class="py-name" href="#" onclick="return doclink('link-175', 'Conflict', 'link-175');">Conflict</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L343"></a><tt class="py-lineno"> 343</tt> <tt class="py-line"> <tt class="py-string">'connection-timeout'</tt><tt class="py-op">:</tt> <tt id="link-176" class="py-name" targets="Class nbxmpp.protocol.ConnectionTimeout=nbxmpp.protocol.ConnectionTimeout-class.html"><a title="nbxmpp.protocol.ConnectionTimeout" class="py-name" href="#" onclick="return doclink('link-176', 'ConnectionTimeout', 'link-176');">ConnectionTimeout</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L344"></a><tt class="py-lineno"> 344</tt> <tt class="py-line"> <tt class="py-string">'host-gone'</tt><tt class="py-op">:</tt> <tt id="link-177" class="py-name" targets="Class nbxmpp.protocol.HostGone=nbxmpp.protocol.HostGone-class.html"><a title="nbxmpp.protocol.HostGone" class="py-name" href="#" onclick="return doclink('link-177', 'HostGone', 'link-177');">HostGone</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L345"></a><tt class="py-lineno"> 345</tt> <tt class="py-line"> <tt class="py-string">'host-unknown'</tt><tt class="py-op">:</tt> <tt id="link-178" class="py-name" targets="Class nbxmpp.protocol.HostUnknown=nbxmpp.protocol.HostUnknown-class.html"><a title="nbxmpp.protocol.HostUnknown" class="py-name" href="#" onclick="return doclink('link-178', 'HostUnknown', 'link-178');">HostUnknown</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L346"></a><tt class="py-lineno"> 346</tt> <tt class="py-line"> <tt class="py-string">'improper-addressing'</tt><tt class="py-op">:</tt> <tt id="link-179" class="py-name" targets="Class nbxmpp.protocol.ImproperAddressing=nbxmpp.protocol.ImproperAddressing-class.html"><a title="nbxmpp.protocol.ImproperAddressing" class="py-name" href="#" onclick="return doclink('link-179', 'ImproperAddressing', 'link-179');">ImproperAddressing</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L347"></a><tt class="py-lineno"> 347</tt> <tt class="py-line"> <tt class="py-string">'internal-server-error'</tt><tt class="py-op">:</tt> <tt id="link-180" class="py-name" targets="Class nbxmpp.protocol.InternalServerError=nbxmpp.protocol.InternalServerError-class.html"><a title="nbxmpp.protocol.InternalServerError" class="py-name" href="#" onclick="return doclink('link-180', 'InternalServerError', 'link-180');">InternalServerError</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L348"></a><tt class="py-lineno"> 348</tt> <tt class="py-line"> <tt class="py-string">'invalid-from'</tt><tt class="py-op">:</tt> <tt id="link-181" class="py-name" targets="Class nbxmpp.protocol.InvalidFrom=nbxmpp.protocol.InvalidFrom-class.html"><a title="nbxmpp.protocol.InvalidFrom" class="py-name" href="#" onclick="return doclink('link-181', 'InvalidFrom', 'link-181');">InvalidFrom</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L349"></a><tt class="py-lineno"> 349</tt> <tt class="py-line"> <tt class="py-string">'invalid-id'</tt><tt class="py-op">:</tt> <tt id="link-182" class="py-name" targets="Class nbxmpp.protocol.InvalidID=nbxmpp.protocol.InvalidID-class.html"><a title="nbxmpp.protocol.InvalidID" class="py-name" href="#" onclick="return doclink('link-182', 'InvalidID', 'link-182');">InvalidID</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L350"></a><tt class="py-lineno"> 350</tt> <tt class="py-line"> <tt class="py-string">'invalid-namespace'</tt><tt class="py-op">:</tt> <tt id="link-183" class="py-name" targets="Class nbxmpp.protocol.InvalidNamespace=nbxmpp.protocol.InvalidNamespace-class.html"><a title="nbxmpp.protocol.InvalidNamespace" class="py-name" href="#" onclick="return doclink('link-183', 'InvalidNamespace', 'link-183');">InvalidNamespace</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L351"></a><tt class="py-lineno"> 351</tt> <tt class="py-line"> <tt class="py-string">'invalid-xml'</tt><tt class="py-op">:</tt> <tt id="link-184" class="py-name" targets="Class nbxmpp.protocol.InvalidXML=nbxmpp.protocol.InvalidXML-class.html"><a title="nbxmpp.protocol.InvalidXML" class="py-name" href="#" onclick="return doclink('link-184', 'InvalidXML', 'link-184');">InvalidXML</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L352"></a><tt class="py-lineno"> 352</tt> <tt class="py-line"> <tt class="py-string">'not-authorized'</tt><tt class="py-op">:</tt> <tt id="link-185" class="py-name" targets="Class nbxmpp.protocol.NotAuthorized=nbxmpp.protocol.NotAuthorized-class.html"><a title="nbxmpp.protocol.NotAuthorized" class="py-name" href="#" onclick="return doclink('link-185', 'NotAuthorized', 'link-185');">NotAuthorized</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L353"></a><tt class="py-lineno"> 353</tt> <tt class="py-line"> <tt class="py-string">'policy-violation'</tt><tt class="py-op">:</tt> <tt id="link-186" class="py-name" targets="Class nbxmpp.protocol.PolicyViolation=nbxmpp.protocol.PolicyViolation-class.html"><a title="nbxmpp.protocol.PolicyViolation" class="py-name" href="#" onclick="return doclink('link-186', 'PolicyViolation', 'link-186');">PolicyViolation</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L354"></a><tt class="py-lineno"> 354</tt> <tt class="py-line"> <tt class="py-string">'remote-connection-failed'</tt><tt class="py-op">:</tt> <tt id="link-187" class="py-name" targets="Class nbxmpp.protocol.RemoteConnectionFailed=nbxmpp.protocol.RemoteConnectionFailed-class.html"><a title="nbxmpp.protocol.RemoteConnectionFailed" class="py-name" href="#" onclick="return doclink('link-187', 'RemoteConnectionFailed', 'link-187');">RemoteConnectionFailed</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L355"></a><tt class="py-lineno"> 355</tt> <tt class="py-line"> <tt class="py-string">'resource-constraint'</tt><tt class="py-op">:</tt> <tt id="link-188" class="py-name" targets="Class nbxmpp.protocol.ResourceConstraint=nbxmpp.protocol.ResourceConstraint-class.html"><a title="nbxmpp.protocol.ResourceConstraint" class="py-name" href="#" onclick="return doclink('link-188', 'ResourceConstraint', 'link-188');">ResourceConstraint</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L356"></a><tt class="py-lineno"> 356</tt> <tt class="py-line"> <tt class="py-string">'restricted-xml'</tt><tt class="py-op">:</tt> <tt id="link-189" class="py-name" targets="Class nbxmpp.protocol.RestrictedXML=nbxmpp.protocol.RestrictedXML-class.html"><a title="nbxmpp.protocol.RestrictedXML" class="py-name" href="#" onclick="return doclink('link-189', 'RestrictedXML', 'link-189');">RestrictedXML</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L357"></a><tt class="py-lineno"> 357</tt> <tt class="py-line"> <tt class="py-string">'see-other-host'</tt><tt class="py-op">:</tt> <tt id="link-190" class="py-name" targets="Class nbxmpp.protocol.SeeOtherHost=nbxmpp.protocol.SeeOtherHost-class.html"><a title="nbxmpp.protocol.SeeOtherHost" class="py-name" href="#" onclick="return doclink('link-190', 'SeeOtherHost', 'link-190');">SeeOtherHost</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L358"></a><tt class="py-lineno"> 358</tt> <tt class="py-line"> <tt class="py-string">'system-shutdown'</tt><tt class="py-op">:</tt> <tt id="link-191" class="py-name" targets="Class nbxmpp.protocol.SystemShutdown=nbxmpp.protocol.SystemShutdown-class.html"><a title="nbxmpp.protocol.SystemShutdown" class="py-name" href="#" onclick="return doclink('link-191', 'SystemShutdown', 'link-191');">SystemShutdown</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L359"></a><tt class="py-lineno"> 359</tt> <tt class="py-line"> <tt class="py-string">'undefined-condition'</tt><tt class="py-op">:</tt> <tt id="link-192" class="py-name" targets="Class nbxmpp.protocol.UndefinedCondition=nbxmpp.protocol.UndefinedCondition-class.html"><a title="nbxmpp.protocol.UndefinedCondition" class="py-name" href="#" onclick="return doclink('link-192', 'UndefinedCondition', 'link-192');">UndefinedCondition</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L360"></a><tt class="py-lineno"> 360</tt> <tt class="py-line"> <tt class="py-string">'unsupported-encoding'</tt><tt class="py-op">:</tt> <tt id="link-193" class="py-name" targets="Class nbxmpp.protocol.UnsupportedEncoding=nbxmpp.protocol.UnsupportedEncoding-class.html"><a title="nbxmpp.protocol.UnsupportedEncoding" class="py-name" href="#" onclick="return doclink('link-193', 'UnsupportedEncoding', 'link-193');">UnsupportedEncoding</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L361"></a><tt class="py-lineno"> 361</tt> <tt class="py-line"> <tt class="py-string">'unsupported-stanza-type'</tt><tt class="py-op">:</tt> <tt id="link-194" class="py-name" targets="Class nbxmpp.protocol.UnsupportedStanzaType=nbxmpp.protocol.UnsupportedStanzaType-class.html"><a title="nbxmpp.protocol.UnsupportedStanzaType" class="py-name" href="#" onclick="return doclink('link-194', 'UnsupportedStanzaType', 'link-194');">UnsupportedStanzaType</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L362"></a><tt class="py-lineno"> 362</tt> <tt class="py-line"> <tt class="py-string">'unsupported-version'</tt><tt class="py-op">:</tt> <tt id="link-195" class="py-name" targets="Class nbxmpp.protocol.UnsupportedVersion=nbxmpp.protocol.UnsupportedVersion-class.html"><a title="nbxmpp.protocol.UnsupportedVersion" class="py-name" href="#" onclick="return doclink('link-195', 'UnsupportedVersion', 'link-195');">UnsupportedVersion</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L363"></a><tt class="py-lineno"> 363</tt> <tt class="py-line"> <tt class="py-string">'xml-not-well-formed'</tt><tt class="py-op">:</tt> <tt id="link-196" class="py-name" targets="Class nbxmpp.protocol.XMLNotWellFormed=nbxmpp.protocol.XMLNotWellFormed-class.html"><a title="nbxmpp.protocol.XMLNotWellFormed" class="py-name" href="#" onclick="return doclink('link-196', 'XMLNotWellFormed', 'link-196');">XMLNotWellFormed</a></tt><tt class="py-op">}</tt> </tt>
-<a name="L364"></a><tt class="py-lineno"> 364</tt> <tt class="py-line"> </tt>
-<a name="JID"></a><div id="JID-def"><a name="L365"></a><tt class="py-lineno"> 365</tt> <a class="py-toggle" href="#" id="JID-toggle" onclick="return toggle('JID');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html">JID</a><tt class="py-op">:</tt> </tt>
-</div><div id="JID-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="JID-expanded"><a name="L366"></a><tt class="py-lineno"> 366</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L367"></a><tt class="py-lineno"> 367</tt> <tt class="py-line"><tt class="py-docstring"> JID can be built from string, modified, compared, serialised into string</tt> </tt>
-<a name="L368"></a><tt class="py-lineno"> 368</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L369"></a><tt class="py-lineno"> 369</tt> <tt class="py-line"> </tt>
-<a name="JID.__init__"></a><div id="JID.__init__-def"><a name="L370"></a><tt class="py-lineno"> 370</tt> <a class="py-toggle" href="#" id="JID.__init__-toggle" onclick="return toggle('JID.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">jid</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">domain</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">resource</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.__init__-expanded"><a name="L371"></a><tt class="py-lineno"> 371</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L372"></a><tt class="py-lineno"> 372</tt> <tt class="py-line"><tt class="py-docstring"> JID can be specified as string (jid argument) or as separate parts</tt> </tt>
-<a name="L373"></a><tt class="py-lineno"> 373</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L374"></a><tt class="py-lineno"> 374</tt> <tt class="py-line"><tt class="py-docstring"> Examples:</tt> </tt>
-<a name="L375"></a><tt class="py-lineno"> 375</tt> <tt class="py-line"><tt class="py-docstring"> JID('node@domain/resource')</tt> </tt>
-<a name="L376"></a><tt class="py-lineno"> 376</tt> <tt class="py-line"><tt class="py-docstring"> JID(node='node',domain='domain.org')</tt> </tt>
-<a name="L377"></a><tt class="py-lineno"> 377</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L378"></a><tt class="py-lineno"> 378</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">jid</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">domain</tt><tt class="py-op">:</tt> </tt>
-<a name="L379"></a><tt class="py-lineno"> 379</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">'JID must contain at least domain name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L380"></a><tt class="py-lineno"> 380</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">jid</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L381"></a><tt class="py-lineno"> 381</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt> <tt class="py-op">=</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt> </tt>
-<a name="L382"></a><tt class="py-lineno"> 382</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> </tt>
-<a name="L383"></a><tt class="py-lineno"> 383</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">domain</tt><tt class="py-op">:</tt> </tt>
-<a name="L384"></a><tt class="py-lineno"> 384</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">domain</tt><tt class="py-op">,</tt> <tt class="py-name">resource</tt> </tt>
-<a name="L385"></a><tt class="py-lineno"> 385</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L386"></a><tt class="py-lineno"> 386</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">'@'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L387"></a><tt class="py-lineno"> 387</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">jid</tt> <tt class="py-op">=</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'@'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L388"></a><tt class="py-lineno"> 388</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L389"></a><tt class="py-lineno"> 389</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L390"></a><tt class="py-lineno"> 390</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L391"></a><tt class="py-lineno"> 391</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L392"></a><tt class="py-lineno"> 392</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L393"></a><tt class="py-lineno"> 393</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt class="py-name">jid</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt> </tt>
-</div><a name="L394"></a><tt class="py-lineno"> 394</tt> <tt class="py-line"> </tt>
-<a name="JID.getNode"></a><div id="JID.getNode-def"><a name="L395"></a><tt class="py-lineno"> 395</tt> <a class="py-toggle" href="#" id="JID.getNode-toggle" onclick="return toggle('JID.getNode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#getNode">getNode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.getNode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.getNode-expanded"><a name="L396"></a><tt class="py-lineno"> 396</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L397"></a><tt class="py-lineno"> 397</tt> <tt class="py-line"><tt class="py-docstring"> Return the node part of the JID</tt> </tt>
-<a name="L398"></a><tt class="py-lineno"> 398</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L399"></a><tt class="py-lineno"> 399</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt> </tt>
-</div><a name="L400"></a><tt class="py-lineno"> 400</tt> <tt class="py-line"> </tt>
-<a name="JID.setNode"></a><div id="JID.setNode-def"><a name="L401"></a><tt class="py-lineno"> 401</tt> <a class="py-toggle" href="#" id="JID.setNode-toggle" onclick="return toggle('JID.setNode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#setNode">setNode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.setNode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.setNode-expanded"><a name="L402"></a><tt class="py-lineno"> 402</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L403"></a><tt class="py-lineno"> 403</tt> <tt class="py-line"><tt class="py-docstring"> Set the node part of the JID to new value. Specify None to remove</tt> </tt>
-<a name="L404"></a><tt class="py-lineno"> 404</tt> <tt class="py-line"><tt class="py-docstring"> the node part</tt> </tt>
-<a name="L405"></a><tt class="py-lineno"> 405</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L406"></a><tt class="py-lineno"> 406</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt> <tt class="py-op">=</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L407"></a><tt class="py-lineno"> 407</tt> <tt class="py-line"> </tt>
-<a name="JID.getDomain"></a><div id="JID.getDomain-def"><a name="L408"></a><tt class="py-lineno"> 408</tt> <a class="py-toggle" href="#" id="JID.getDomain-toggle" onclick="return toggle('JID.getDomain');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#getDomain">getDomain</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.getDomain-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.getDomain-expanded"><a name="L409"></a><tt class="py-lineno"> 409</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L410"></a><tt class="py-lineno"> 410</tt> <tt class="py-line"><tt class="py-docstring"> Return the domain part of the JID</tt> </tt>
-<a name="L411"></a><tt class="py-lineno"> 411</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L412"></a><tt class="py-lineno"> 412</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt> </tt>
-</div><a name="L413"></a><tt class="py-lineno"> 413</tt> <tt class="py-line"> </tt>
-<a name="JID.setDomain"></a><div id="JID.setDomain-def"><a name="L414"></a><tt class="py-lineno"> 414</tt> <a class="py-toggle" href="#" id="JID.setDomain-toggle" onclick="return toggle('JID.setDomain');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#setDomain">setDomain</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">domain</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.setDomain-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.setDomain-expanded"><a name="L415"></a><tt class="py-lineno"> 415</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L416"></a><tt class="py-lineno"> 416</tt> <tt class="py-line"><tt class="py-docstring"> Set the domain part of the JID to new value</tt> </tt>
-<a name="L417"></a><tt class="py-lineno"> 417</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L418"></a><tt class="py-lineno"> 418</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt> <tt class="py-op">=</tt> <tt class="py-name">domain</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L419"></a><tt class="py-lineno"> 419</tt> <tt class="py-line"> </tt>
-<a name="JID.getResource"></a><div id="JID.getResource-def"><a name="L420"></a><tt class="py-lineno"> 420</tt> <a class="py-toggle" href="#" id="JID.getResource-toggle" onclick="return toggle('JID.getResource');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#getResource">getResource</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.getResource-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.getResource-expanded"><a name="L421"></a><tt class="py-lineno"> 421</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L422"></a><tt class="py-lineno"> 422</tt> <tt class="py-line"><tt class="py-docstring"> Return the resource part of the JID</tt> </tt>
-<a name="L423"></a><tt class="py-lineno"> 423</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L424"></a><tt class="py-lineno"> 424</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> </tt>
-</div><a name="L425"></a><tt class="py-lineno"> 425</tt> <tt class="py-line"> </tt>
-<a name="JID.setResource"></a><div id="JID.setResource-def"><a name="L426"></a><tt class="py-lineno"> 426</tt> <a class="py-toggle" href="#" id="JID.setResource-toggle" onclick="return toggle('JID.setResource');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#setResource">setResource</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resource</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.setResource-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.setResource-expanded"><a name="L427"></a><tt class="py-lineno"> 427</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L428"></a><tt class="py-lineno"> 428</tt> <tt class="py-line"><tt class="py-docstring"> Set the resource part of the JID to new value. Specify None to remove the</tt> </tt>
-<a name="L429"></a><tt class="py-lineno"> 429</tt> <tt class="py-line"><tt class="py-docstring"> resource part</tt> </tt>
-<a name="L430"></a><tt class="py-lineno"> 430</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L431"></a><tt class="py-lineno"> 431</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt class="py-name">resource</tt> </tt>
-</div><a name="L432"></a><tt class="py-lineno"> 432</tt> <tt class="py-line"> </tt>
-<a name="JID.getStripped"></a><div id="JID.getStripped-def"><a name="L433"></a><tt class="py-lineno"> 433</tt> <a class="py-toggle" href="#" id="JID.getStripped-toggle" onclick="return toggle('JID.getStripped');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#getStripped">getStripped</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.getStripped-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.getStripped-expanded"><a name="L434"></a><tt class="py-lineno"> 434</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L435"></a><tt class="py-lineno"> 435</tt> <tt class="py-line"><tt class="py-docstring"> Return the bare representation of JID. I.e. string value w/o resource</tt> </tt>
-<a name="L436"></a><tt class="py-lineno"> 436</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L437"></a><tt class="py-lineno"> 437</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name" targets="Method nbxmpp.protocol.JID.__str__()=nbxmpp.protocol.JID-class.html#__str__,Method nbxmpp.simplexml.Node.__str__()=nbxmpp.simplexml.Node-class.html#__str__,Method nbxmpp.tls_nb.SSLWrapper.Error.__str__()=nbxmpp.tls_nb.SSLWrapper.Error-class.html#__str__"><a title="nbxmpp.protocol.JID.__str__
+nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-214', 'getType', 'link-213');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'error'</tt> </tt>
+</div><a name="L498"></a><tt class="py-lineno"> 498</tt> <tt class="py-line"> </tt>
+<a name="NodeProcessed"></a><div id="NodeProcessed-def"><a name="L499"></a><tt class="py-lineno"> 499</tt> <a class="py-toggle" href="#" id="NodeProcessed-toggle" onclick="return toggle('NodeProcessed');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.NodeProcessed-class.html">NodeProcessed</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NodeProcessed-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="NodeProcessed-expanded"><a name="L500"></a><tt class="py-lineno"> 500</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L501"></a><tt class="py-lineno"> 501</tt> <tt class="py-line"><tt class="py-docstring"> Exception that should be raised by handler when the handling should be</tt> </tt>
+<a name="L502"></a><tt class="py-lineno"> 502</tt> <tt class="py-line"><tt class="py-docstring"> stopped</tt> </tt>
+<a name="L503"></a><tt class="py-lineno"> 503</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L504"></a><tt class="py-lineno"> 504</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L505"></a><tt class="py-lineno"> 505</tt> <tt class="py-line"> </tt>
+<a name="StreamError"></a><div id="StreamError-def"><a name="L506"></a><tt class="py-lineno"> 506</tt> <a class="py-toggle" href="#" id="StreamError-toggle" onclick="return toggle('StreamError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.StreamError-class.html">StreamError</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="StreamError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="StreamError-expanded"><a name="L507"></a><tt class="py-lineno"> 507</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L508"></a><tt class="py-lineno"> 508</tt> <tt class="py-line"><tt class="py-docstring"> Base exception class for stream errors</tt> </tt>
+<a name="L509"></a><tt class="py-lineno"> 509</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L510"></a><tt class="py-lineno"> 510</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L511"></a><tt class="py-lineno"> 511</tt> <tt class="py-line"> </tt>
+<a name="BadFormat"></a><div id="BadFormat-def"><a name="L512"></a><tt class="py-lineno"> 512</tt> <a class="py-toggle" href="#" id="BadFormat-toggle" onclick="return toggle('BadFormat');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.BadFormat-class.html">BadFormat</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BadFormat-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BadFormat-expanded"><a name="L513"></a><tt class="py-lineno"> 513</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L514"></a><tt class="py-lineno"> 514</tt> <tt class="py-line"> </tt>
+<a name="BadNamespacePrefix"></a><div id="BadNamespacePrefix-def"><a name="L515"></a><tt class="py-lineno"> 515</tt> <a class="py-toggle" href="#" id="BadNamespacePrefix-toggle" onclick="return toggle('BadNamespacePrefix');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.BadNamespacePrefix-class.html">BadNamespacePrefix</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BadNamespacePrefix-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BadNamespacePrefix-expanded"><a name="L516"></a><tt class="py-lineno"> 516</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L517"></a><tt class="py-lineno"> 517</tt> <tt class="py-line"> </tt>
+<a name="Conflict"></a><div id="Conflict-def"><a name="L518"></a><tt class="py-lineno"> 518</tt> <a class="py-toggle" href="#" id="Conflict-toggle" onclick="return toggle('Conflict');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Conflict-class.html">Conflict</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Conflict-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Conflict-expanded"><a name="L519"></a><tt class="py-lineno"> 519</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L520"></a><tt class="py-lineno"> 520</tt> <tt class="py-line"> </tt>
+<a name="ConnectionTimeout"></a><div id="ConnectionTimeout-def"><a name="L521"></a><tt class="py-lineno"> 521</tt> <a class="py-toggle" href="#" id="ConnectionTimeout-toggle" onclick="return toggle('ConnectionTimeout');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.ConnectionTimeout-class.html">ConnectionTimeout</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ConnectionTimeout-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ConnectionTimeout-expanded"><a name="L522"></a><tt class="py-lineno"> 522</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L523"></a><tt class="py-lineno"> 523</tt> <tt class="py-line"> </tt>
+<a name="HostGone"></a><div id="HostGone-def"><a name="L524"></a><tt class="py-lineno"> 524</tt> <a class="py-toggle" href="#" id="HostGone-toggle" onclick="return toggle('HostGone');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.HostGone-class.html">HostGone</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostGone-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HostGone-expanded"><a name="L525"></a><tt class="py-lineno"> 525</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L526"></a><tt class="py-lineno"> 526</tt> <tt class="py-line"> </tt>
+<a name="HostUnknown"></a><div id="HostUnknown-def"><a name="L527"></a><tt class="py-lineno"> 527</tt> <a class="py-toggle" href="#" id="HostUnknown-toggle" onclick="return toggle('HostUnknown');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.HostUnknown-class.html">HostUnknown</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostUnknown-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HostUnknown-expanded"><a name="L528"></a><tt class="py-lineno"> 528</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L529"></a><tt class="py-lineno"> 529</tt> <tt class="py-line"> </tt>
+<a name="ImproperAddressing"></a><div id="ImproperAddressing-def"><a name="L530"></a><tt class="py-lineno"> 530</tt> <a class="py-toggle" href="#" id="ImproperAddressing-toggle" onclick="return toggle('ImproperAddressing');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.ImproperAddressing-class.html">ImproperAddressing</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ImproperAddressing-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ImproperAddressing-expanded"><a name="L531"></a><tt class="py-lineno"> 531</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L532"></a><tt class="py-lineno"> 532</tt> <tt class="py-line"> </tt>
+<a name="InternalServerError"></a><div id="InternalServerError-def"><a name="L533"></a><tt class="py-lineno"> 533</tt> <a class="py-toggle" href="#" id="InternalServerError-toggle" onclick="return toggle('InternalServerError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.InternalServerError-class.html">InternalServerError</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InternalServerError-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InternalServerError-expanded"><a name="L534"></a><tt class="py-lineno"> 534</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L535"></a><tt class="py-lineno"> 535</tt> <tt class="py-line"> </tt>
+<a name="InvalidFrom"></a><div id="InvalidFrom-def"><a name="L536"></a><tt class="py-lineno"> 536</tt> <a class="py-toggle" href="#" id="InvalidFrom-toggle" onclick="return toggle('InvalidFrom');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.InvalidFrom-class.html">InvalidFrom</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InvalidFrom-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InvalidFrom-expanded"><a name="L537"></a><tt class="py-lineno"> 537</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L538"></a><tt class="py-lineno"> 538</tt> <tt class="py-line"> </tt>
+<a name="InvalidID"></a><div id="InvalidID-def"><a name="L539"></a><tt class="py-lineno"> 539</tt> <a class="py-toggle" href="#" id="InvalidID-toggle" onclick="return toggle('InvalidID');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.InvalidID-class.html">InvalidID</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InvalidID-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InvalidID-expanded"><a name="L540"></a><tt class="py-lineno"> 540</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L541"></a><tt class="py-lineno"> 541</tt> <tt class="py-line"> </tt>
+<a name="InvalidNamespace"></a><div id="InvalidNamespace-def"><a name="L542"></a><tt class="py-lineno"> 542</tt> <a class="py-toggle" href="#" id="InvalidNamespace-toggle" onclick="return toggle('InvalidNamespace');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.InvalidNamespace-class.html">InvalidNamespace</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InvalidNamespace-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InvalidNamespace-expanded"><a name="L543"></a><tt class="py-lineno"> 543</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L544"></a><tt class="py-lineno"> 544</tt> <tt class="py-line"> </tt>
+<a name="InvalidXML"></a><div id="InvalidXML-def"><a name="L545"></a><tt class="py-lineno"> 545</tt> <a class="py-toggle" href="#" id="InvalidXML-toggle" onclick="return toggle('InvalidXML');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.InvalidXML-class.html">InvalidXML</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InvalidXML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="InvalidXML-expanded"><a name="L546"></a><tt class="py-lineno"> 546</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L547"></a><tt class="py-lineno"> 547</tt> <tt class="py-line"> </tt>
+<a name="NotAuthorized"></a><div id="NotAuthorized-def"><a name="L548"></a><tt class="py-lineno"> 548</tt> <a class="py-toggle" href="#" id="NotAuthorized-toggle" onclick="return toggle('NotAuthorized');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.NotAuthorized-class.html">NotAuthorized</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NotAuthorized-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="NotAuthorized-expanded"><a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L550"></a><tt class="py-lineno"> 550</tt> <tt class="py-line"> </tt>
+<a name="PolicyViolation"></a><div id="PolicyViolation-def"><a name="L551"></a><tt class="py-lineno"> 551</tt> <a class="py-toggle" href="#" id="PolicyViolation-toggle" onclick="return toggle('PolicyViolation');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.PolicyViolation-class.html">PolicyViolation</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="PolicyViolation-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="PolicyViolation-expanded"><a name="L552"></a><tt class="py-lineno"> 552</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L553"></a><tt class="py-lineno"> 553</tt> <tt class="py-line"> </tt>
+<a name="RemoteConnectionFailed"></a><div id="RemoteConnectionFailed-def"><a name="L554"></a><tt class="py-lineno"> 554</tt> <a class="py-toggle" href="#" id="RemoteConnectionFailed-toggle" onclick="return toggle('RemoteConnectionFailed');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.RemoteConnectionFailed-class.html">RemoteConnectionFailed</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RemoteConnectionFailed-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="RemoteConnectionFailed-expanded"><a name="L555"></a><tt class="py-lineno"> 555</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L556"></a><tt class="py-lineno"> 556</tt> <tt class="py-line"> </tt>
+<a name="ResourceConstraint"></a><div id="ResourceConstraint-def"><a name="L557"></a><tt class="py-lineno"> 557</tt> <a class="py-toggle" href="#" id="ResourceConstraint-toggle" onclick="return toggle('ResourceConstraint');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.ResourceConstraint-class.html">ResourceConstraint</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ResourceConstraint-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ResourceConstraint-expanded"><a name="L558"></a><tt class="py-lineno"> 558</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L559"></a><tt class="py-lineno"> 559</tt> <tt class="py-line"> </tt>
+<a name="RestrictedXML"></a><div id="RestrictedXML-def"><a name="L560"></a><tt class="py-lineno"> 560</tt> <a class="py-toggle" href="#" id="RestrictedXML-toggle" onclick="return toggle('RestrictedXML');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.RestrictedXML-class.html">RestrictedXML</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RestrictedXML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="RestrictedXML-expanded"><a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L562"></a><tt class="py-lineno"> 562</tt> <tt class="py-line"> </tt>
+<a name="SeeOtherHost"></a><div id="SeeOtherHost-def"><a name="L563"></a><tt class="py-lineno"> 563</tt> <a class="py-toggle" href="#" id="SeeOtherHost-toggle" onclick="return toggle('SeeOtherHost');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.SeeOtherHost-class.html">SeeOtherHost</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SeeOtherHost-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SeeOtherHost-expanded"><a name="L564"></a><tt class="py-lineno"> 564</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L565"></a><tt class="py-lineno"> 565</tt> <tt class="py-line"> </tt>
+<a name="SystemShutdown"></a><div id="SystemShutdown-def"><a name="L566"></a><tt class="py-lineno"> 566</tt> <a class="py-toggle" href="#" id="SystemShutdown-toggle" onclick="return toggle('SystemShutdown');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.SystemShutdown-class.html">SystemShutdown</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SystemShutdown-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SystemShutdown-expanded"><a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L568"></a><tt class="py-lineno"> 568</tt> <tt class="py-line"> </tt>
+<a name="UndefinedCondition"></a><div id="UndefinedCondition-def"><a name="L569"></a><tt class="py-lineno"> 569</tt> <a class="py-toggle" href="#" id="UndefinedCondition-toggle" onclick="return toggle('UndefinedCondition');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.UndefinedCondition-class.html">UndefinedCondition</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UndefinedCondition-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="UndefinedCondition-expanded"><a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"> </tt>
+<a name="UnsupportedEncoding"></a><div id="UnsupportedEncoding-def"><a name="L572"></a><tt class="py-lineno"> 572</tt> <a class="py-toggle" href="#" id="UnsupportedEncoding-toggle" onclick="return toggle('UnsupportedEncoding');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.UnsupportedEncoding-class.html">UnsupportedEncoding</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnsupportedEncoding-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="UnsupportedEncoding-expanded"><a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L574"></a><tt class="py-lineno"> 574</tt> <tt class="py-line"> </tt>
+<a name="UnsupportedStanzaType"></a><div id="UnsupportedStanzaType-def"><a name="L575"></a><tt class="py-lineno"> 575</tt> <a class="py-toggle" href="#" id="UnsupportedStanzaType-toggle" onclick="return toggle('UnsupportedStanzaType');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.UnsupportedStanzaType-class.html">UnsupportedStanzaType</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnsupportedStanzaType-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="UnsupportedStanzaType-expanded"><a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"> </tt>
+<a name="UnsupportedVersion"></a><div id="UnsupportedVersion-def"><a name="L578"></a><tt class="py-lineno"> 578</tt> <a class="py-toggle" href="#" id="UnsupportedVersion-toggle" onclick="return toggle('UnsupportedVersion');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.UnsupportedVersion-class.html">UnsupportedVersion</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnsupportedVersion-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="UnsupportedVersion-expanded"><a name="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"> </tt>
+<a name="XMLNotWellFormed"></a><div id="XMLNotWellFormed-def"><a name="L581"></a><tt class="py-lineno"> 581</tt> <a class="py-toggle" href="#" id="XMLNotWellFormed-toggle" onclick="return toggle('XMLNotWellFormed');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.XMLNotWellFormed-class.html">XMLNotWellFormed</a><tt class="py-op">(</tt><tt class="py-base-class">StreamError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLNotWellFormed-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLNotWellFormed-expanded"><a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"><tt id="link-215" class="py-name" targets="Variable nbxmpp.protocol.stream_exceptions=nbxmpp.protocol-module.html#stream_exceptions"><a title="nbxmpp.protocol.stream_exceptions" class="py-name" href="#" onclick="return doclink('link-215', 'stream_exceptions', 'link-215');">stream_exceptions</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'bad-format'</tt><tt class="py-op">:</tt> <tt id="link-216" class="py-name" targets="Class nbxmpp.protocol.BadFormat=nbxmpp.protocol.BadFormat-class.html"><a title="nbxmpp.protocol.BadFormat" class="py-name" href="#" onclick="return doclink('link-216', 'BadFormat', 'link-216');">BadFormat</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L585"></a><tt class="py-lineno"> 585</tt> <tt class="py-line"> <tt class="py-string">'bad-namespace-prefix'</tt><tt class="py-op">:</tt> <tt id="link-217" class="py-name" targets="Class nbxmpp.protocol.BadNamespacePrefix=nbxmpp.protocol.BadNamespacePrefix-class.html"><a title="nbxmpp.protocol.BadNamespacePrefix" class="py-name" href="#" onclick="return doclink('link-217', 'BadNamespacePrefix', 'link-217');">BadNamespacePrefix</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L586"></a><tt class="py-lineno"> 586</tt> <tt class="py-line"> <tt class="py-string">'conflict'</tt><tt class="py-op">:</tt> <tt id="link-218" class="py-name" targets="Class nbxmpp.protocol.Conflict=nbxmpp.protocol.Conflict-class.html"><a title="nbxmpp.protocol.Conflict" class="py-name" href="#" onclick="return doclink('link-218', 'Conflict', 'link-218');">Conflict</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L587"></a><tt class="py-lineno"> 587</tt> <tt class="py-line"> <tt class="py-string">'connection-timeout'</tt><tt class="py-op">:</tt> <tt id="link-219" class="py-name" targets="Class nbxmpp.protocol.ConnectionTimeout=nbxmpp.protocol.ConnectionTimeout-class.html"><a title="nbxmpp.protocol.ConnectionTimeout" class="py-name" href="#" onclick="return doclink('link-219', 'ConnectionTimeout', 'link-219');">ConnectionTimeout</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L588"></a><tt class="py-lineno"> 588</tt> <tt class="py-line"> <tt class="py-string">'host-gone'</tt><tt class="py-op">:</tt> <tt id="link-220" class="py-name" targets="Class nbxmpp.protocol.HostGone=nbxmpp.protocol.HostGone-class.html"><a title="nbxmpp.protocol.HostGone" class="py-name" href="#" onclick="return doclink('link-220', 'HostGone', 'link-220');">HostGone</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"> <tt class="py-string">'host-unknown'</tt><tt class="py-op">:</tt> <tt id="link-221" class="py-name" targets="Class nbxmpp.protocol.HostUnknown=nbxmpp.protocol.HostUnknown-class.html"><a title="nbxmpp.protocol.HostUnknown" class="py-name" href="#" onclick="return doclink('link-221', 'HostUnknown', 'link-221');">HostUnknown</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"> <tt class="py-string">'improper-addressing'</tt><tt class="py-op">:</tt> <tt id="link-222" class="py-name" targets="Class nbxmpp.protocol.ImproperAddressing=nbxmpp.protocol.ImproperAddressing-class.html"><a title="nbxmpp.protocol.ImproperAddressing" class="py-name" href="#" onclick="return doclink('link-222', 'ImproperAddressing', 'link-222');">ImproperAddressing</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L591"></a><tt class="py-lineno"> 591</tt> <tt class="py-line"> <tt class="py-string">'internal-server-error'</tt><tt class="py-op">:</tt> <tt id="link-223" class="py-name" targets="Class nbxmpp.protocol.InternalServerError=nbxmpp.protocol.InternalServerError-class.html"><a title="nbxmpp.protocol.InternalServerError" class="py-name" href="#" onclick="return doclink('link-223', 'InternalServerError', 'link-223');">InternalServerError</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"> <tt class="py-string">'invalid-from'</tt><tt class="py-op">:</tt> <tt id="link-224" class="py-name" targets="Class nbxmpp.protocol.InvalidFrom=nbxmpp.protocol.InvalidFrom-class.html"><a title="nbxmpp.protocol.InvalidFrom" class="py-name" href="#" onclick="return doclink('link-224', 'InvalidFrom', 'link-224');">InvalidFrom</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"> <tt class="py-string">'invalid-id'</tt><tt class="py-op">:</tt> <tt id="link-225" class="py-name" targets="Class nbxmpp.protocol.InvalidID=nbxmpp.protocol.InvalidID-class.html"><a title="nbxmpp.protocol.InvalidID" class="py-name" href="#" onclick="return doclink('link-225', 'InvalidID', 'link-225');">InvalidID</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"> <tt class="py-string">'invalid-namespace'</tt><tt class="py-op">:</tt> <tt id="link-226" class="py-name" targets="Class nbxmpp.protocol.InvalidNamespace=nbxmpp.protocol.InvalidNamespace-class.html"><a title="nbxmpp.protocol.InvalidNamespace" class="py-name" href="#" onclick="return doclink('link-226', 'InvalidNamespace', 'link-226');">InvalidNamespace</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"> <tt class="py-string">'invalid-xml'</tt><tt class="py-op">:</tt> <tt id="link-227" class="py-name" targets="Class nbxmpp.protocol.InvalidXML=nbxmpp.protocol.InvalidXML-class.html"><a title="nbxmpp.protocol.InvalidXML" class="py-name" href="#" onclick="return doclink('link-227', 'InvalidXML', 'link-227');">InvalidXML</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> <tt class="py-string">'not-authorized'</tt><tt class="py-op">:</tt> <tt id="link-228" class="py-name" targets="Class nbxmpp.protocol.NotAuthorized=nbxmpp.protocol.NotAuthorized-class.html"><a title="nbxmpp.protocol.NotAuthorized" class="py-name" href="#" onclick="return doclink('link-228', 'NotAuthorized', 'link-228');">NotAuthorized</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L597"></a><tt class="py-lineno"> 597</tt> <tt class="py-line"> <tt class="py-string">'policy-violation'</tt><tt class="py-op">:</tt> <tt id="link-229" class="py-name" targets="Class nbxmpp.protocol.PolicyViolation=nbxmpp.protocol.PolicyViolation-class.html"><a title="nbxmpp.protocol.PolicyViolation" class="py-name" href="#" onclick="return doclink('link-229', 'PolicyViolation', 'link-229');">PolicyViolation</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L598"></a><tt class="py-lineno"> 598</tt> <tt class="py-line"> <tt class="py-string">'remote-connection-failed'</tt><tt class="py-op">:</tt> <tt id="link-230" class="py-name" targets="Class nbxmpp.protocol.RemoteConnectionFailed=nbxmpp.protocol.RemoteConnectionFailed-class.html"><a title="nbxmpp.protocol.RemoteConnectionFailed" class="py-name" href="#" onclick="return doclink('link-230', 'RemoteConnectionFailed', 'link-230');">RemoteConnectionFailed</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L599"></a><tt class="py-lineno"> 599</tt> <tt class="py-line"> <tt class="py-string">'resource-constraint'</tt><tt class="py-op">:</tt> <tt id="link-231" class="py-name" targets="Class nbxmpp.protocol.ResourceConstraint=nbxmpp.protocol.ResourceConstraint-class.html"><a title="nbxmpp.protocol.ResourceConstraint" class="py-name" href="#" onclick="return doclink('link-231', 'ResourceConstraint', 'link-231');">ResourceConstraint</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L600"></a><tt class="py-lineno"> 600</tt> <tt class="py-line"> <tt class="py-string">'restricted-xml'</tt><tt class="py-op">:</tt> <tt id="link-232" class="py-name" targets="Class nbxmpp.protocol.RestrictedXML=nbxmpp.protocol.RestrictedXML-class.html"><a title="nbxmpp.protocol.RestrictedXML" class="py-name" href="#" onclick="return doclink('link-232', 'RestrictedXML', 'link-232');">RestrictedXML</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L601"></a><tt class="py-lineno"> 601</tt> <tt class="py-line"> <tt class="py-string">'see-other-host'</tt><tt class="py-op">:</tt> <tt id="link-233" class="py-name" targets="Class nbxmpp.protocol.SeeOtherHost=nbxmpp.protocol.SeeOtherHost-class.html"><a title="nbxmpp.protocol.SeeOtherHost" class="py-name" href="#" onclick="return doclink('link-233', 'SeeOtherHost', 'link-233');">SeeOtherHost</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"> <tt class="py-string">'system-shutdown'</tt><tt class="py-op">:</tt> <tt id="link-234" class="py-name" targets="Class nbxmpp.protocol.SystemShutdown=nbxmpp.protocol.SystemShutdown-class.html"><a title="nbxmpp.protocol.SystemShutdown" class="py-name" href="#" onclick="return doclink('link-234', 'SystemShutdown', 'link-234');">SystemShutdown</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L603"></a><tt class="py-lineno"> 603</tt> <tt class="py-line"> <tt class="py-string">'undefined-condition'</tt><tt class="py-op">:</tt> <tt id="link-235" class="py-name" targets="Class nbxmpp.protocol.UndefinedCondition=nbxmpp.protocol.UndefinedCondition-class.html"><a title="nbxmpp.protocol.UndefinedCondition" class="py-name" href="#" onclick="return doclink('link-235', 'UndefinedCondition', 'link-235');">UndefinedCondition</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L604"></a><tt class="py-lineno"> 604</tt> <tt class="py-line"> <tt class="py-string">'unsupported-encoding'</tt><tt class="py-op">:</tt> <tt id="link-236" class="py-name" targets="Class nbxmpp.protocol.UnsupportedEncoding=nbxmpp.protocol.UnsupportedEncoding-class.html"><a title="nbxmpp.protocol.UnsupportedEncoding" class="py-name" href="#" onclick="return doclink('link-236', 'UnsupportedEncoding', 'link-236');">UnsupportedEncoding</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L605"></a><tt class="py-lineno"> 605</tt> <tt class="py-line"> <tt class="py-string">'unsupported-stanza-type'</tt><tt class="py-op">:</tt> <tt id="link-237" class="py-name" targets="Class nbxmpp.protocol.UnsupportedStanzaType=nbxmpp.protocol.UnsupportedStanzaType-class.html"><a title="nbxmpp.protocol.UnsupportedStanzaType" class="py-name" href="#" onclick="return doclink('link-237', 'UnsupportedStanzaType', 'link-237');">UnsupportedStanzaType</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"> <tt class="py-string">'unsupported-version'</tt><tt class="py-op">:</tt> <tt id="link-238" class="py-name" targets="Class nbxmpp.protocol.UnsupportedVersion=nbxmpp.protocol.UnsupportedVersion-class.html"><a title="nbxmpp.protocol.UnsupportedVersion" class="py-name" href="#" onclick="return doclink('link-238', 'UnsupportedVersion', 'link-238');">UnsupportedVersion</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"> <tt class="py-string">'xml-not-well-formed'</tt><tt class="py-op">:</tt> <tt id="link-239" class="py-name" targets="Class nbxmpp.protocol.XMLNotWellFormed=nbxmpp.protocol.XMLNotWellFormed-class.html"><a title="nbxmpp.protocol.XMLNotWellFormed" class="py-name" href="#" onclick="return doclink('link-239', 'XMLNotWellFormed', 'link-239');">XMLNotWellFormed</a></tt><tt class="py-op">}</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"> </tt>
+<a name="JID"></a><div id="JID-def"><a name="L609"></a><tt class="py-lineno"> 609</tt> <a class="py-toggle" href="#" id="JID-toggle" onclick="return toggle('JID');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html">JID</a><tt class="py-op">:</tt> </tt>
+</div><div id="JID-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="JID-expanded"><a name="L610"></a><tt class="py-lineno"> 610</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L611"></a><tt class="py-lineno"> 611</tt> <tt class="py-line"><tt class="py-docstring"> JID can be built from string, modified, compared, serialised into string</tt> </tt>
+<a name="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> </tt>
+<a name="JID.__init__"></a><div id="JID.__init__-def"><a name="L614"></a><tt class="py-lineno"> 614</tt> <a class="py-toggle" href="#" id="JID.__init__-toggle" onclick="return toggle('JID.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">jid</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">domain</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">resource</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.__init__-expanded"><a name="L615"></a><tt class="py-lineno"> 615</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L616"></a><tt class="py-lineno"> 616</tt> <tt class="py-line"><tt class="py-docstring"> JID can be specified as string (jid argument) or as separate parts</tt> </tt>
+<a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"><tt class="py-docstring"> Examples:</tt> </tt>
+<a name="L619"></a><tt class="py-lineno"> 619</tt> <tt class="py-line"><tt class="py-docstring"> JID('node@domain/resource')</tt> </tt>
+<a name="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"><tt class="py-docstring"> JID(node='node',domain='domain.org')</tt> </tt>
+<a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">jid</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">domain</tt><tt class="py-op">:</tt> </tt>
+<a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">'JID must contain at least domain name'</tt><tt class="py-op">)</tt> </tt>
+<a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">jid</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt> <tt class="py-op">=</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt> </tt>
+<a name="L626"></a><tt class="py-lineno"> 626</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">domain</tt><tt class="py-op">:</tt> </tt>
+<a name="L628"></a><tt class="py-lineno"> 628</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">domain</tt><tt class="py-op">,</tt> <tt class="py-name">resource</tt> </tt>
+<a name="L629"></a><tt class="py-lineno"> 629</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L630"></a><tt class="py-lineno"> 630</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">'@'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L631"></a><tt class="py-lineno"> 631</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">jid</tt> <tt class="py-op">=</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'@'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L633"></a><tt class="py-lineno"> 633</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L634"></a><tt class="py-lineno"> 634</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">find</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt class="py-name">jid</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L636"></a><tt class="py-lineno"> 636</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt class="py-name">jid</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt> </tt>
+</div><a name="L638"></a><tt class="py-lineno"> 638</tt> <tt class="py-line"> </tt>
+<a name="JID.getNode"></a><div id="JID.getNode-def"><a name="L639"></a><tt class="py-lineno"> 639</tt> <a class="py-toggle" href="#" id="JID.getNode-toggle" onclick="return toggle('JID.getNode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#getNode">getNode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.getNode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.getNode-expanded"><a name="L640"></a><tt class="py-lineno"> 640</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L641"></a><tt class="py-lineno"> 641</tt> <tt class="py-line"><tt class="py-docstring"> Return the node part of the JID</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt> </tt>
+</div><a name="L644"></a><tt class="py-lineno"> 644</tt> <tt class="py-line"> </tt>
+<a name="JID.setNode"></a><div id="JID.setNode-def"><a name="L645"></a><tt class="py-lineno"> 645</tt> <a class="py-toggle" href="#" id="JID.setNode-toggle" onclick="return toggle('JID.setNode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#setNode">setNode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.setNode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.setNode-expanded"><a name="L646"></a><tt class="py-lineno"> 646</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L647"></a><tt class="py-lineno"> 647</tt> <tt class="py-line"><tt class="py-docstring"> Set the node part of the JID to new value. Specify None to remove</tt> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</tt> <tt class="py-line"><tt class="py-docstring"> the node part</tt> </tt>
+<a name="L649"></a><tt class="py-lineno"> 649</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L650"></a><tt class="py-lineno"> 650</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt> <tt class="py-op">=</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L651"></a><tt class="py-lineno"> 651</tt> <tt class="py-line"> </tt>
+<a name="JID.getDomain"></a><div id="JID.getDomain-def"><a name="L652"></a><tt class="py-lineno"> 652</tt> <a class="py-toggle" href="#" id="JID.getDomain-toggle" onclick="return toggle('JID.getDomain');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#getDomain">getDomain</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.getDomain-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.getDomain-expanded"><a name="L653"></a><tt class="py-lineno"> 653</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"><tt class="py-docstring"> Return the domain part of the JID</tt> </tt>
+<a name="L655"></a><tt class="py-lineno"> 655</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L656"></a><tt class="py-lineno"> 656</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt> </tt>
+</div><a name="L657"></a><tt class="py-lineno"> 657</tt> <tt class="py-line"> </tt>
+<a name="JID.setDomain"></a><div id="JID.setDomain-def"><a name="L658"></a><tt class="py-lineno"> 658</tt> <a class="py-toggle" href="#" id="JID.setDomain-toggle" onclick="return toggle('JID.setDomain');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#setDomain">setDomain</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">domain</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.setDomain-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.setDomain-expanded"><a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"><tt class="py-docstring"> Set the domain part of the JID to new value</tt> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt> <tt class="py-op">=</tt> <tt class="py-name">domain</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"> </tt>
+<a name="JID.getResource"></a><div id="JID.getResource-def"><a name="L664"></a><tt class="py-lineno"> 664</tt> <a class="py-toggle" href="#" id="JID.getResource-toggle" onclick="return toggle('JID.getResource');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#getResource">getResource</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.getResource-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.getResource-expanded"><a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"><tt class="py-docstring"> Return the resource part of the JID</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> </tt>
+</div><a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"> </tt>
+<a name="JID.setResource"></a><div id="JID.setResource-def"><a name="L670"></a><tt class="py-lineno"> 670</tt> <a class="py-toggle" href="#" id="JID.setResource-toggle" onclick="return toggle('JID.setResource');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#setResource">setResource</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resource</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.setResource-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.setResource-expanded"><a name="L671"></a><tt class="py-lineno"> 671</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"><tt class="py-docstring"> Set the resource part of the JID to new value. Specify None to remove the</tt> </tt>
+<a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"><tt class="py-docstring"> resource part</tt> </tt>
+<a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt class="py-name">resource</tt> </tt>
+</div><a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"> </tt>
+<a name="JID.getStripped"></a><div id="JID.getStripped-def"><a name="L677"></a><tt class="py-lineno"> 677</tt> <a class="py-toggle" href="#" id="JID.getStripped-toggle" onclick="return toggle('JID.getStripped');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#getStripped">getStripped</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.getStripped-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.getStripped-expanded"><a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"><tt class="py-docstring"> Return the bare representation of JID. I.e. string value w/o resource</tt> </tt>
+<a name="L680"></a><tt class="py-lineno"> 680</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-240" class="py-name" targets="Method nbxmpp.protocol.JID.__str__()=nbxmpp.protocol.JID-class.html#__str__,Method nbxmpp.simplexml.Node.__str__()=nbxmpp.simplexml.Node-class.html#__str__,Method nbxmpp.tls_nb.SSLWrapper.Error.__str__()=nbxmpp.tls_nb.SSLWrapper.Error-class.html#__str__"><a title="nbxmpp.protocol.JID.__str__
nbxmpp.simplexml.Node.__str__
-nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-197', '__str__', 'link-197');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L438"></a><tt class="py-lineno"> 438</tt> <tt class="py-line"> </tt>
-<a name="JID.__eq__"></a><div id="JID.__eq__-def"><a name="L439"></a><tt class="py-lineno"> 439</tt> <a class="py-toggle" href="#" id="JID.__eq__-toggle" onclick="return toggle('JID.__eq__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#__eq__">__eq__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.__eq__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.__eq__-expanded"><a name="L440"></a><tt class="py-lineno"> 440</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L441"></a><tt class="py-lineno"> 441</tt> <tt class="py-line"><tt class="py-docstring"> Compare the JID to another instance or to string for equality</tt> </tt>
-<a name="L442"></a><tt class="py-lineno"> 442</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L443"></a><tt class="py-lineno"> 443</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L444"></a><tt class="py-lineno"> 444</tt> <tt class="py-line"> <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt id="link-198" class="py-name" targets="Class nbxmpp.protocol.JID=nbxmpp.protocol.JID-class.html"><a title="nbxmpp.protocol.JID" class="py-name" href="#" onclick="return doclink('link-198', 'JID', 'link-198');">JID</a></tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
-<a name="L445"></a><tt class="py-lineno"> 445</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L446"></a><tt class="py-lineno"> 446</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
-<a name="L447"></a><tt class="py-lineno"> 447</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-op">==</tt> <tt class="py-name">other</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-keyword">and</tt> \ </tt>
-<a name="L448"></a><tt class="py-lineno"> 448</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="nbxmpp.protocol.JID.__str__
+nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-240', '__str__', 'link-240');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"> </tt>
+<a name="JID.__eq__"></a><div id="JID.__eq__-def"><a name="L683"></a><tt class="py-lineno"> 683</tt> <a class="py-toggle" href="#" id="JID.__eq__-toggle" onclick="return toggle('JID.__eq__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#__eq__">__eq__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.__eq__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.__eq__-expanded"><a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"><tt class="py-docstring"> Compare the JID to another instance or to string for equality</tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"> <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt id="link-241" class="py-name" targets="Class nbxmpp.protocol.JID=nbxmpp.protocol.JID-class.html"><a title="nbxmpp.protocol.JID" class="py-name" href="#" onclick="return doclink('link-241', 'JID', 'link-241');">JID</a></tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
+<a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+<a name="L691"></a><tt class="py-lineno"> 691</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-op">==</tt> <tt class="py-name">other</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> <tt class="py-keyword">and</tt> \ </tt>
+<a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-242" class="py-name"><a title="nbxmpp.protocol.JID.__str__
nbxmpp.simplexml.Node.__str__
-nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-199', '__str__', 'link-197');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-200" class="py-name"><a title="nbxmpp.protocol.JID.__str__
+nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-242', '__str__', 'link-240');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="nbxmpp.protocol.JID.__str__
nbxmpp.simplexml.Node.__str__
-nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-200', '__str__', 'link-197');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L449"></a><tt class="py-lineno"> 449</tt> <tt class="py-line"> </tt>
-<a name="JID.__ne__"></a><div id="JID.__ne__-def"><a name="L450"></a><tt class="py-lineno"> 450</tt> <a class="py-toggle" href="#" id="JID.__ne__-toggle" onclick="return toggle('JID.__ne__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#__ne__">__ne__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.__ne__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.__ne__-expanded"><a name="L451"></a><tt class="py-lineno"> 451</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L452"></a><tt class="py-lineno"> 452</tt> <tt class="py-line"><tt class="py-docstring"> Compare the JID to another instance or to string for non-equality</tt> </tt>
-<a name="L453"></a><tt class="py-lineno"> 453</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L454"></a><tt class="py-lineno"> 454</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name" targets="Method nbxmpp.protocol.JID.__eq__()=nbxmpp.protocol.JID-class.html#__eq__"><a title="nbxmpp.protocol.JID.__eq__" class="py-name" href="#" onclick="return doclink('link-201', '__eq__', 'link-201');">__eq__</a></tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L455"></a><tt class="py-lineno"> 455</tt> <tt class="py-line"> </tt>
-<a name="JID.bareMatch"></a><div id="JID.bareMatch-def"><a name="L456"></a><tt class="py-lineno"> 456</tt> <a class="py-toggle" href="#" id="JID.bareMatch-toggle" onclick="return toggle('JID.bareMatch');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#bareMatch">bareMatch</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.bareMatch-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.bareMatch-expanded"><a name="L457"></a><tt class="py-lineno"> 457</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L458"></a><tt class="py-lineno"> 458</tt> <tt class="py-line"><tt class="py-docstring"> Compare the node and domain parts of the JID's for equality</tt> </tt>
-<a name="L459"></a><tt class="py-lineno"> 459</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L460"></a><tt class="py-lineno"> 460</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-202" class="py-name"><a title="nbxmpp.protocol.JID.__str__
+nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-243', '__str__', 'link-240');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"> </tt>
+<a name="JID.__ne__"></a><div id="JID.__ne__-def"><a name="L694"></a><tt class="py-lineno"> 694</tt> <a class="py-toggle" href="#" id="JID.__ne__-toggle" onclick="return toggle('JID.__ne__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#__ne__">__ne__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.__ne__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.__ne__-expanded"><a name="L695"></a><tt class="py-lineno"> 695</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt> <tt class="py-line"><tt class="py-docstring"> Compare the JID to another instance or to string for non-equality</tt> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L698"></a><tt class="py-lineno"> 698</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name" targets="Method nbxmpp.protocol.JID.__eq__()=nbxmpp.protocol.JID-class.html#__eq__"><a title="nbxmpp.protocol.JID.__eq__" class="py-name" href="#" onclick="return doclink('link-244', '__eq__', 'link-244');">__eq__</a></tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L699"></a><tt class="py-lineno"> 699</tt> <tt class="py-line"> </tt>
+<a name="JID.bareMatch"></a><div id="JID.bareMatch-def"><a name="L700"></a><tt class="py-lineno"> 700</tt> <a class="py-toggle" href="#" id="JID.bareMatch-toggle" onclick="return toggle('JID.bareMatch');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#bareMatch">bareMatch</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.bareMatch-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.bareMatch-expanded"><a name="L701"></a><tt class="py-lineno"> 701</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L702"></a><tt class="py-lineno"> 702</tt> <tt class="py-line"><tt class="py-docstring"> Compare the node and domain parts of the JID's for equality</tt> </tt>
+<a name="L703"></a><tt class="py-lineno"> 703</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L704"></a><tt class="py-lineno"> 704</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-245" class="py-name"><a title="nbxmpp.protocol.JID.__str__
nbxmpp.simplexml.Node.__str__
-nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-202', '__str__', 'link-197');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-203" class="py-name"><a title="nbxmpp.protocol.JID" class="py-name" href="#" onclick="return doclink('link-203', 'JID', 'link-198');">JID</a></tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-204" class="py-name"><a title="nbxmpp.protocol.JID.__str__
+nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-245', '__str__', 'link-240');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-246" class="py-name"><a title="nbxmpp.protocol.JID" class="py-name" href="#" onclick="return doclink('link-246', 'JID', 'link-241');">JID</a></tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-247" class="py-name"><a title="nbxmpp.protocol.JID.__str__
nbxmpp.simplexml.Node.__str__
-nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-204', '__str__', 'link-197');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L461"></a><tt class="py-lineno"> 461</tt> <tt class="py-line"> </tt>
-<a name="JID.__str__"></a><div id="JID.__str__-def"><a name="L462"></a><tt class="py-lineno"> 462</tt> <a class="py-toggle" href="#" id="JID.__str__-toggle" onclick="return toggle('JID.__str__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">wresource</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.__str__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.__str__-expanded"><a name="L463"></a><tt class="py-lineno"> 463</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L464"></a><tt class="py-lineno"> 464</tt> <tt class="py-line"><tt class="py-docstring"> Serialise JID into string</tt> </tt>
-<a name="L465"></a><tt class="py-lineno"> 465</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L466"></a><tt class="py-lineno"> 466</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">:</tt> </tt>
-<a name="L467"></a><tt class="py-lineno"> 467</tt> <tt class="py-line"> <tt class="py-name">jid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt> <tt class="py-op">+</tt> <tt class="py-string">'@'</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt> </tt>
-<a name="L468"></a><tt class="py-lineno"> 468</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L469"></a><tt class="py-lineno"> 469</tt> <tt class="py-line"> <tt class="py-name">jid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt> </tt>
-<a name="L470"></a><tt class="py-lineno"> 470</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">wresource</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt><tt class="py-op">:</tt> </tt>
-<a name="L471"></a><tt class="py-lineno"> 471</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">jid</tt> <tt class="py-op">+</tt> <tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> </tt>
-<a name="L472"></a><tt class="py-lineno"> 472</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">jid</tt> </tt>
-</div><a name="L473"></a><tt class="py-lineno"> 473</tt> <tt class="py-line"> </tt>
-<a name="JID.__hash__"></a><div id="JID.__hash__-def"><a name="L474"></a><tt class="py-lineno"> 474</tt> <a class="py-toggle" href="#" id="JID.__hash__-toggle" onclick="return toggle('JID.__hash__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#__hash__">__hash__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JID.__hash__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.__hash__-expanded"><a name="L475"></a><tt class="py-lineno"> 475</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L476"></a><tt class="py-lineno"> 476</tt> <tt class="py-line"><tt class="py-docstring"> Produce hash of the JID, Allows to use JID objects as keys of the</tt> </tt>
-<a name="L477"></a><tt class="py-lineno"> 477</tt> <tt class="py-line"><tt class="py-docstring"> dictionary</tt> </tt>
-<a name="L478"></a><tt class="py-lineno"> 478</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L479"></a><tt class="py-lineno"> 479</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">hash</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L480"></a><tt class="py-lineno"> 480</tt> <tt class="py-line"> </tt>
-<a name="BOSHBody"></a><div id="BOSHBody-def"><a name="L481"></a><tt class="py-lineno"> 481</tt> <a class="py-toggle" href="#" id="BOSHBody-toggle" onclick="return toggle('BOSHBody');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.BOSHBody-class.html">BOSHBody</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BOSHBody-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BOSHBody-expanded"><a name="L482"></a><tt class="py-lineno"> 482</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L483"></a><tt class="py-lineno"> 483</tt> <tt class="py-line"><tt class="py-docstring"> &lt;body&gt; tag that wraps usual XMPP stanzas in XMPP over BOSH</tt> </tt>
-<a name="L484"></a><tt class="py-lineno"> 484</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L485"></a><tt class="py-lineno"> 485</tt> <tt class="py-line"> </tt>
-<a name="BOSHBody.__init__"></a><div id="BOSHBody.__init__-def"><a name="L486"></a><tt class="py-lineno"> 486</tt> <a class="py-toggle" href="#" id="BOSHBody.__init__-toggle" onclick="return toggle('BOSHBody.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.BOSHBody-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BOSHBody.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="BOSHBody.__init__-expanded"><a name="L487"></a><tt class="py-lineno"> 487</tt> <tt class="py-line"> <tt id="link-205" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-205', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-206" class="py-name" targets="Method nbxmpp.auth_nb.NonBlockingBind.__init__()=nbxmpp.auth_nb.NonBlockingBind-class.html#__init__,Method nbxmpp.auth_nb.NonBlockingNonSASL.__init__()=nbxmpp.auth_nb.NonBlockingNonSASL-class.html#__init__,Method nbxmpp.auth_nb.SASL.__init__()=nbxmpp.auth_nb.SASL-class.html#__init__,Method nbxmpp.bosh.AckChecker.__init__()=nbxmpp.bosh.AckChecker-class.html#__init__,Method nbxmpp.bosh.KeyStack.__init__()=nbxmpp.bosh.KeyStack-class.html#__init__,Method nbxmpp.bosh.NonBlockingBOSH.__init__()=nbxmpp.bosh.NonBlockingBOSH-class.html#__init__,Method nbxmpp.client_nb.NonBlockingClient.__init__()=nbxmpp.client_nb.NonBlockingClient-class.html#__init__,Method nbxmpp.dispatcher_nb.XMPPDispatcher.__init__()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#__init__,Method nbxmpp.idlequeue.IdleCommand.__init__()=nbxmpp.idlequeue.IdleCommand-class.html#__init__,Method nbxmpp.idlequeue.IdleObject.__init__()=nbxmpp.idlequeue.IdleObject-class.html#__init__,Method nbxmpp.idlequeue.IdleQueue.__init__()=nbxmpp.idlequeue.IdleQueue-class.html#__init__,Method nbxmpp.plugin.PlugIn.__init__()=nbxmpp.plugin.PlugIn-class.html#__init__,Method nbxmpp.protocol.Acks.__init__()=nbxmpp.protocol.Acks-class.html#__init__,Method nbxmpp.protocol.BOSHBody.__init__()=nbxmpp.protocol.BOSHBody-class.html#__init__,Method nbxmpp.protocol.DataField.__init__()=nbxmpp.protocol.DataField-class.html#__init__,Method nbxmpp.protocol.DataForm.__init__()=nbxmpp.protocol.DataForm-class.html#__init__,Method nbxmpp.protocol.Error.__init__()=nbxmpp.protocol.Error-class.html#__init__,Method nbxmpp.protocol.ErrorNode.__init__()=nbxmpp.protocol.ErrorNode-class.html#__init__,Method nbxmpp.protocol.Hashes.__init__()=nbxmpp.protocol.Hashes-class.html#__init__,Method nbxmpp.protocol.Iq.__init__()=nbxmpp.protocol.Iq-class.html#__init__,Method nbxmpp.protocol.JID.__init__()=nbxmpp.protocol.JID-class.html#__init__,Method nbxmpp.protocol.Message.__init__()=nbxmpp.protocol.Message-class.html#__init__,Method nbxmpp.protocol.Presence.__init__()=nbxmpp.protocol.Presence-class.html#__init__,Method nbxmpp.protocol.Protocol.__init__()=nbxmpp.protocol.Protocol-class.html#__init__,Method nbxmpp.proxy_connectors.ProxyConnector.__init__()=nbxmpp.proxy_connectors.ProxyConnector-class.html#__init__,Method nbxmpp.roster_nb.NonBlockingRoster.__init__()=nbxmpp.roster_nb.NonBlockingRoster-class.html#__init__,Method nbxmpp.simplexml.Node.__init__()=nbxmpp.simplexml.Node-class.html#__init__,Method nbxmpp.simplexml.NodeBuilder.__init__()=nbxmpp.simplexml.NodeBuilder-class.html#__init__,Method nbxmpp.simplexml.T.__init__()=nbxmpp.simplexml.T-class.html#__init__,Method nbxmpp.smacks.Smacks.__init__()=nbxmpp.smacks.Smacks-class.html#__init__,Method nbxmpp.stringprepare.EmptyMappingTable.__init__()=nbxmpp.stringprepare.EmptyMappingTable-class.html#__init__,Method nbxmpp.stringprepare.LookupTable.__init__()=nbxmpp.stringprepare.LookupTable-class.html#__init__,Method nbxmpp.stringprepare.LookupTableFromFunction.__init__()=nbxmpp.stringprepare.LookupTableFromFunction-class.html#__init__,Method nbxmpp.stringprepare.MappingTableFromFunction.__init__()=nbxmpp.stringprepare.MappingTableFromFunction-class.html#__init__,Method nbxmpp.stringprepare.Profile.__init__()=nbxmpp.stringprepare.Profile-class.html#__init__,Method nbxmpp.tls_nb.NonBlockingTLS.__init__()=nbxmpp.tls_nb.NonBlockingTLS-class.html#__init__,Method nbxmpp.tls_nb.PyOpenSSLWrapper.__init__()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#__init__,Method nbxmpp.tls_nb.SSLWrapper.Error.__init__()=nbxmpp.tls_nb.SSLWrapper.Error-class.html#__init__,Method nbxmpp.tls_nb.SSLWrapper.__init__()=nbxmpp.tls_nb.SSLWrapper-class.html#__init__,Method nbxmpp.tls_nb.StdlibSSLWrapper.__init__()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingHTTP.__init__()=nbxmpp.transports_nb.NonBlockingHTTP-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingTCP.__init__()=nbxmpp.transports_nb.NonBlockingTCP-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingTransport.__init__()=nbxmpp.transports_nb.NonBlockingTransport-class.html#__init__"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-247', '__str__', 'link-240');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L705"></a><tt class="py-lineno"> 705</tt> <tt class="py-line"> </tt>
+<a name="JID.__str__"></a><div id="JID.__str__-def"><a name="L706"></a><tt class="py-lineno"> 706</tt> <a class="py-toggle" href="#" id="JID.__str__-toggle" onclick="return toggle('JID.__str__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">wresource</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.__str__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.__str__-expanded"><a name="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt> <tt class="py-line"><tt class="py-docstring"> Serialise JID into string</tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">:</tt> </tt>
+<a name="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"> <tt class="py-name">jid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt> <tt class="py-op">+</tt> <tt class="py-string">'@'</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</tt> <tt class="py-line"> <tt class="py-name">jid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">domain</tt> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">wresource</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt><tt class="py-op">:</tt> </tt>
+<a name="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">jid</tt> <tt class="py-op">+</tt> <tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource</tt> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">jid</tt> </tt>
+</div><a name="L717"></a><tt class="py-lineno"> 717</tt> <tt class="py-line"> </tt>
+<a name="JID.__hash__"></a><div id="JID.__hash__-def"><a name="L718"></a><tt class="py-lineno"> 718</tt> <a class="py-toggle" href="#" id="JID.__hash__-toggle" onclick="return toggle('JID.__hash__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.JID-class.html#__hash__">__hash__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JID.__hash__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="JID.__hash__-expanded"><a name="L719"></a><tt class="py-lineno"> 719</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"><tt class="py-docstring"> Produce hash of the JID, Allows to use JID objects as keys of the</tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"><tt class="py-docstring"> dictionary</tt> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">hash</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L724"></a><tt class="py-lineno"> 724</tt> <tt class="py-line"> </tt>
+<a name="BOSHBody"></a><div id="BOSHBody-def"><a name="L725"></a><tt class="py-lineno"> 725</tt> <a class="py-toggle" href="#" id="BOSHBody-toggle" onclick="return toggle('BOSHBody');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.BOSHBody-class.html">BOSHBody</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BOSHBody-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BOSHBody-expanded"><a name="L726"></a><tt class="py-lineno"> 726</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"><tt class="py-docstring"> &lt;body&gt; tag that wraps usual XMPP stanzas in XMPP over BOSH</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L729"></a><tt class="py-lineno"> 729</tt> <tt class="py-line"> </tt>
+<a name="BOSHBody.__init__"></a><div id="BOSHBody.__init__-def"><a name="L730"></a><tt class="py-lineno"> 730</tt> <a class="py-toggle" href="#" id="BOSHBody.__init__-toggle" onclick="return toggle('BOSHBody.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.BOSHBody-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BOSHBody.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="BOSHBody.__init__-expanded"><a name="L731"></a><tt class="py-lineno"> 731</tt> <tt class="py-line"> <tt id="link-248" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-248', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-249" class="py-name" targets="Method nbxmpp.auth_nb.NonBlockingBind.__init__()=nbxmpp.auth_nb.NonBlockingBind-class.html#__init__,Method nbxmpp.auth_nb.NonBlockingNonSASL.__init__()=nbxmpp.auth_nb.NonBlockingNonSASL-class.html#__init__,Method nbxmpp.auth_nb.SASL.__init__()=nbxmpp.auth_nb.SASL-class.html#__init__,Method nbxmpp.bosh.AckChecker.__init__()=nbxmpp.bosh.AckChecker-class.html#__init__,Method nbxmpp.bosh.KeyStack.__init__()=nbxmpp.bosh.KeyStack-class.html#__init__,Method nbxmpp.bosh.NonBlockingBOSH.__init__()=nbxmpp.bosh.NonBlockingBOSH-class.html#__init__,Method nbxmpp.client_nb.NonBlockingClient.__init__()=nbxmpp.client_nb.NonBlockingClient-class.html#__init__,Method nbxmpp.dispatcher_nb.XMPPDispatcher.__init__()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#__init__,Method nbxmpp.idlequeue.IdleCommand.__init__()=nbxmpp.idlequeue.IdleCommand-class.html#__init__,Method nbxmpp.idlequeue.IdleObject.__init__()=nbxmpp.idlequeue.IdleObject-class.html#__init__,Method nbxmpp.idlequeue.IdleQueue.__init__()=nbxmpp.idlequeue.IdleQueue-class.html#__init__,Method nbxmpp.plugin.PlugIn.__init__()=nbxmpp.plugin.PlugIn-class.html#__init__,Method nbxmpp.protocol.Acks.__init__()=nbxmpp.protocol.Acks-class.html#__init__,Method nbxmpp.protocol.BOSHBody.__init__()=nbxmpp.protocol.BOSHBody-class.html#__init__,Method nbxmpp.protocol.DataField.__init__()=nbxmpp.protocol.DataField-class.html#__init__,Method nbxmpp.protocol.DataForm.__init__()=nbxmpp.protocol.DataForm-class.html#__init__,Method nbxmpp.protocol.Error.__init__()=nbxmpp.protocol.Error-class.html#__init__,Method nbxmpp.protocol.ErrorNode.__init__()=nbxmpp.protocol.ErrorNode-class.html#__init__,Method nbxmpp.protocol.Hashes.__init__()=nbxmpp.protocol.Hashes-class.html#__init__,Method nbxmpp.protocol.Iq.__init__()=nbxmpp.protocol.Iq-class.html#__init__,Method nbxmpp.protocol.JID.__init__()=nbxmpp.protocol.JID-class.html#__init__,Method nbxmpp.protocol.Message.__init__()=nbxmpp.protocol.Message-class.html#__init__,Method nbxmpp.protocol.Presence.__init__()=nbxmpp.protocol.Presence-class.html#__init__,Method nbxmpp.protocol.Protocol.__init__()=nbxmpp.protocol.Protocol-class.html#__init__,Method nbxmpp.proxy_connectors.ProxyConnector.__init__()=nbxmpp.proxy_connectors.ProxyConnector-class.html#__init__,Method nbxmpp.roster_nb.NonBlockingRoster.__init__()=nbxmpp.roster_nb.NonBlockingRoster-class.html#__init__,Method nbxmpp.simplexml.Node.__init__()=nbxmpp.simplexml.Node-class.html#__init__,Method nbxmpp.simplexml.NodeBuilder.__init__()=nbxmpp.simplexml.NodeBuilder-class.html#__init__,Method nbxmpp.simplexml.T.__init__()=nbxmpp.simplexml.T-class.html#__init__,Method nbxmpp.smacks.Smacks.__init__()=nbxmpp.smacks.Smacks-class.html#__init__,Method nbxmpp.stringprepare.EmptyMappingTable.__init__()=nbxmpp.stringprepare.EmptyMappingTable-class.html#__init__,Method nbxmpp.stringprepare.LookupTable.__init__()=nbxmpp.stringprepare.LookupTable-class.html#__init__,Method nbxmpp.stringprepare.LookupTableFromFunction.__init__()=nbxmpp.stringprepare.LookupTableFromFunction-class.html#__init__,Method nbxmpp.stringprepare.MappingTableFromFunction.__init__()=nbxmpp.stringprepare.MappingTableFromFunction-class.html#__init__,Method nbxmpp.stringprepare.Profile.__init__()=nbxmpp.stringprepare.Profile-class.html#__init__,Method nbxmpp.tls_nb.NonBlockingTLS.__init__()=nbxmpp.tls_nb.NonBlockingTLS-class.html#__init__,Method nbxmpp.tls_nb.PyOpenSSLWrapper.__init__()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#__init__,Method nbxmpp.tls_nb.SSLWrapper.Error.__init__()=nbxmpp.tls_nb.SSLWrapper.Error-class.html#__init__,Method nbxmpp.tls_nb.SSLWrapper.__init__()=nbxmpp.tls_nb.SSLWrapper-class.html#__init__,Method nbxmpp.tls_nb.StdlibSSLWrapper.__init__()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingHTTP.__init__()=nbxmpp.transports_nb.NonBlockingHTTP-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingTCP.__init__()=nbxmpp.transports_nb.NonBlockingTCP-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingTransport.__init__()=nbxmpp.transports_nb.NonBlockingTransport-class.html#__init__"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -607,38 +847,38 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-206', '__init__', 'link-206');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">tag</tt><tt class="py-op">=</tt><tt class="py-string">'body'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-name">payload</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
-<a name="L488"></a><tt class="py-lineno"> 488</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-207" class="py-name" targets="Method nbxmpp.simplexml.Node.setNamespace()=nbxmpp.simplexml.Node-class.html#setNamespace"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-207', 'setNamespace', 'link-207');">setNamespace</a></tt><tt class="py-op">(</tt><tt id="link-208" class="py-name"><a title="nbxmpp.protocol.NS_HTTP_BIND" class="py-name" href="#" onclick="return doclink('link-208', 'NS_HTTP_BIND', 'link-62');">NS_HTTP_BIND</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L489"></a><tt class="py-lineno"> 489</tt> <tt class="py-line"> </tt>
-<a name="L490"></a><tt class="py-lineno"> 490</tt> <tt class="py-line"> </tt>
-<a name="Protocol"></a><div id="Protocol-def"><a name="L491"></a><tt class="py-lineno"> 491</tt> <a class="py-toggle" href="#" id="Protocol-toggle" onclick="return toggle('Protocol');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html">Protocol</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Protocol-expanded"><a name="L492"></a><tt class="py-lineno"> 492</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L493"></a><tt class="py-lineno"> 493</tt> <tt class="py-line"><tt class="py-docstring"> A "stanza" object class. Contains methods that are common for presences, iqs</tt> </tt>
-<a name="L494"></a><tt class="py-lineno"> 494</tt> <tt class="py-line"><tt class="py-docstring"> and messages</tt> </tt>
-<a name="L495"></a><tt class="py-lineno"> 495</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L496"></a><tt class="py-lineno"> 496</tt> <tt class="py-line"> </tt>
-<a name="Protocol.__init__"></a><div id="Protocol.__init__-def"><a name="L497"></a><tt class="py-lineno"> 497</tt> <a class="py-toggle" href="#" id="Protocol.__init__-toggle" onclick="return toggle('Protocol.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">to</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">frm</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
-<a name="L498"></a><tt class="py-lineno"> 498</tt> <tt class="py-line"> <tt class="py-param">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">timestamp</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">xmlns</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.__init__-expanded"><a name="L499"></a><tt class="py-lineno"> 499</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L500"></a><tt class="py-lineno"> 500</tt> <tt class="py-line"><tt class="py-docstring"> Constructor, name is the name of the stanza</tt> </tt>
-<a name="L501"></a><tt class="py-lineno"> 501</tt> <tt class="py-line"><tt class="py-docstring"> i.e. 'message' or 'presence'or 'iq'</tt> </tt>
-<a name="L502"></a><tt class="py-lineno"> 502</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L503"></a><tt class="py-lineno"> 503</tt> <tt class="py-line"><tt class="py-docstring"> to is the value of 'to' attribure, 'typ' - 'type' attribute</tt> </tt>
-<a name="L504"></a><tt class="py-lineno"> 504</tt> <tt class="py-line"><tt class="py-docstring"> frn - from attribure, attrs - other attributes mapping,</tt> </tt>
-<a name="L505"></a><tt class="py-lineno"> 505</tt> <tt class="py-line"><tt class="py-docstring"> payload - same meaning as for simplexml payload definition</tt> </tt>
-<a name="L506"></a><tt class="py-lineno"> 506</tt> <tt class="py-line"><tt class="py-docstring"> timestamp - the time value that needs to be stamped over stanza</tt> </tt>
-<a name="L507"></a><tt class="py-lineno"> 507</tt> <tt class="py-line"><tt class="py-docstring"> xmlns - namespace of top stanza node</tt> </tt>
-<a name="L508"></a><tt class="py-lineno"> 508</tt> <tt class="py-line"><tt class="py-docstring"> node - parsed or unparsed stana to be taken as prototype.</tt> </tt>
-<a name="L509"></a><tt class="py-lineno"> 509</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L510"></a><tt class="py-lineno"> 510</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">attrs</tt><tt class="py-op">:</tt> </tt>
-<a name="L511"></a><tt class="py-lineno"> 511</tt> <tt class="py-line"> <tt class="py-name">attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L512"></a><tt class="py-lineno"> 512</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">to</tt><tt class="py-op">:</tt> </tt>
-<a name="L513"></a><tt class="py-lineno"> 513</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-string">'to'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">to</tt> </tt>
-<a name="L514"></a><tt class="py-lineno"> 514</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">frm</tt><tt class="py-op">:</tt> </tt>
-<a name="L515"></a><tt class="py-lineno"> 515</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-string">'from'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">frm</tt> </tt>
-<a name="L516"></a><tt class="py-lineno"> 516</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
-<a name="L517"></a><tt class="py-lineno"> 517</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">typ</tt> </tt>
-<a name="L518"></a><tt class="py-lineno"> 518</tt> <tt class="py-line"> <tt id="link-209" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-209', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-249', '__init__', 'link-249');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">tag</tt><tt class="py-op">=</tt><tt class="py-string">'body'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-name">payload</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
+<a name="L732"></a><tt class="py-lineno"> 732</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-250" class="py-name" targets="Method nbxmpp.simplexml.Node.setNamespace()=nbxmpp.simplexml.Node-class.html#setNamespace"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-250', 'setNamespace', 'link-250');">setNamespace</a></tt><tt class="py-op">(</tt><tt id="link-251" class="py-name"><a title="nbxmpp.protocol.NS_HTTP_BIND" class="py-name" href="#" onclick="return doclink('link-251', 'NS_HTTP_BIND', 'link-64');">NS_HTTP_BIND</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"> </tt>
+<a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"> </tt>
+<a name="Protocol"></a><div id="Protocol-def"><a name="L735"></a><tt class="py-lineno"> 735</tt> <a class="py-toggle" href="#" id="Protocol-toggle" onclick="return toggle('Protocol');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html">Protocol</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Protocol-expanded"><a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L737"></a><tt class="py-lineno"> 737</tt> <tt class="py-line"><tt class="py-docstring"> A "stanza" object class. Contains methods that are common for presences, iqs</tt> </tt>
+<a name="L738"></a><tt class="py-lineno"> 738</tt> <tt class="py-line"><tt class="py-docstring"> and messages</tt> </tt>
+<a name="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L740"></a><tt class="py-lineno"> 740</tt> <tt class="py-line"> </tt>
+<a name="Protocol.__init__"></a><div id="Protocol.__init__-def"><a name="L741"></a><tt class="py-lineno"> 741</tt> <a class="py-toggle" href="#" id="Protocol.__init__-toggle" onclick="return toggle('Protocol.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">to</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">frm</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"> <tt class="py-param">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">timestamp</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">xmlns</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.__init__-expanded"><a name="L743"></a><tt class="py-lineno"> 743</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"><tt class="py-docstring"> Constructor, name is the name of the stanza</tt> </tt>
+<a name="L745"></a><tt class="py-lineno"> 745</tt> <tt class="py-line"><tt class="py-docstring"> i.e. 'message' or 'presence'or 'iq'</tt> </tt>
+<a name="L746"></a><tt class="py-lineno"> 746</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"><tt class="py-docstring"> to is the value of 'to' attribure, 'typ' - 'type' attribute</tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"><tt class="py-docstring"> frn - from attribure, attrs - other attributes mapping,</tt> </tt>
+<a name="L749"></a><tt class="py-lineno"> 749</tt> <tt class="py-line"><tt class="py-docstring"> payload - same meaning as for simplexml payload definition</tt> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"><tt class="py-docstring"> timestamp - the time value that needs to be stamped over stanza</tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt> <tt class="py-line"><tt class="py-docstring"> xmlns - namespace of top stanza node</tt> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"><tt class="py-docstring"> node - parsed or unparsed stana to be taken as prototype.</tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">attrs</tt><tt class="py-op">:</tt> </tt>
+<a name="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"> <tt class="py-name">attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">to</tt><tt class="py-op">:</tt> </tt>
+<a name="L757"></a><tt class="py-lineno"> 757</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-string">'to'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">to</tt> </tt>
+<a name="L758"></a><tt class="py-lineno"> 758</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">frm</tt><tt class="py-op">:</tt> </tt>
+<a name="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-string">'from'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">frm</tt> </tt>
+<a name="L760"></a><tt class="py-lineno"> 760</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">typ</tt> </tt>
+<a name="L762"></a><tt class="py-lineno"> 762</tt> <tt class="py-line"> <tt id="link-252" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-252', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-253" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -680,213 +920,211 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-210', '__init__', 'link-206');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">tag</tt><tt class="py-op">=</tt><tt id="link-211" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-211', 'name', 'link-165');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-name">payload</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
-<a name="L519"></a><tt class="py-lineno"> 519</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">node</tt> <tt class="py-keyword">and</tt> <tt class="py-name">xmlns</tt><tt class="py-op">:</tt> </tt>
-<a name="L520"></a><tt class="py-lineno"> 520</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-212', 'setNamespace', 'link-207');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">xmlns</tt><tt class="py-op">)</tt> </tt>
-<a name="L521"></a><tt class="py-lineno"> 521</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'to'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L522"></a><tt class="py-lineno"> 522</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name" targets="Method nbxmpp.protocol.Protocol.setTo()=nbxmpp.protocol.Protocol-class.html#setTo"><a title="nbxmpp.protocol.Protocol.setTo" class="py-name" href="#" onclick="return doclink('link-213', 'setTo', 'link-213');">setTo</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'to'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L523"></a><tt class="py-lineno"> 523</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'from'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L524"></a><tt class="py-lineno"> 524</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-214" class="py-name" targets="Method nbxmpp.protocol.Protocol.setFrom()=nbxmpp.protocol.Protocol-class.html#setFrom"><a title="nbxmpp.protocol.Protocol.setFrom" class="py-name" href="#" onclick="return doclink('link-214', 'setFrom', 'link-214');">setFrom</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'from'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L525"></a><tt class="py-lineno"> 525</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt> <tt class="py-keyword">and</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> \ </tt>
-<a name="L526"></a><tt class="py-lineno"> 526</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt> <tt class="py-op">==</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L527"></a><tt class="py-lineno"> 527</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> </tt>
-<a name="L528"></a><tt class="py-lineno"> 528</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L529"></a><tt class="py-lineno"> 529</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">d</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name" targets="Method nbxmpp.simplexml.Node.getTags()=nbxmpp.simplexml.Node-class.html#getTags"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-215', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'delay'</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-216" class="py-name"><a title="nbxmpp.protocol.NS_DELAY2" class="py-name" href="#" onclick="return doclink('link-216', 'NS_DELAY2', 'link-43');">NS_DELAY2</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L530"></a><tt class="py-lineno"> 530</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L531"></a><tt class="py-lineno"> 531</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-217" class="py-name" targets="Method nbxmpp.simplexml.Node.getAttr()=nbxmpp.simplexml.Node-class.html#getAttr"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-217', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'stamp'</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name" targets="Method nbxmpp.protocol.Protocol.getTimestamp2()=nbxmpp.protocol.Protocol-class.html#getTimestamp2"><a title="nbxmpp.protocol.Protocol.getTimestamp2" class="py-name" href="#" onclick="return doclink('link-218', 'getTimestamp2', 'link-218');">getTimestamp2</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L532"></a><tt class="py-lineno"> 532</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name" targets="Method nbxmpp.protocol.Protocol.setTimestamp()=nbxmpp.protocol.Protocol-class.html#setTimestamp"><a title="nbxmpp.protocol.Protocol.setTimestamp" class="py-name" href="#" onclick="return doclink('link-219', 'setTimestamp', 'link-219');">setTimestamp</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-220" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-220', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'stamp'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L533"></a><tt class="py-lineno"> 533</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
-<a name="L534"></a><tt class="py-lineno"> 534</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L535"></a><tt class="py-lineno"> 535</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt><tt class="py-op">:</tt> </tt>
-<a name="L536"></a><tt class="py-lineno"> 536</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-221', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-222" class="py-name"><a title="nbxmpp.protocol.NS_DELAY" class="py-name" href="#" onclick="return doclink('link-222', 'NS_DELAY', 'link-42');">NS_DELAY</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L537"></a><tt class="py-lineno"> 537</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L538"></a><tt class="py-lineno"> 538</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-223', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'stamp'</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name" targets="Method nbxmpp.protocol.Protocol.getTimestamp()=nbxmpp.protocol.Protocol-class.html#getTimestamp"><a title="nbxmpp.protocol.Protocol.getTimestamp" class="py-name" href="#" onclick="return doclink('link-224', 'getTimestamp', 'link-224');">getTimestamp</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L539"></a><tt class="py-lineno"> 539</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-225" class="py-name"><a title="nbxmpp.protocol.Protocol.setTimestamp" class="py-name" href="#" onclick="return doclink('link-225', 'setTimestamp', 'link-219');">setTimestamp</a></tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-226" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-226', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'stamp'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L540"></a><tt class="py-lineno"> 540</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
-<a name="L541"></a><tt class="py-lineno"> 541</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L542"></a><tt class="py-lineno"> 542</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timestamp</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L543"></a><tt class="py-lineno"> 543</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="nbxmpp.protocol.Protocol.setTimestamp" class="py-name" href="#" onclick="return doclink('link-227', 'setTimestamp', 'link-219');">setTimestamp</a></tt><tt class="py-op">(</tt><tt class="py-name">timestamp</tt><tt class="py-op">)</tt> <tt class="py-comment"># To auto-timestamp stanza just pass timestamp=''</tt> </tt>
-</div><a name="L544"></a><tt class="py-lineno"> 544</tt> <tt class="py-line"> </tt>
-<a name="Protocol.getTo"></a><div id="Protocol.getTo-def"><a name="L545"></a><tt class="py-lineno"> 545</tt> <a class="py-toggle" href="#" id="Protocol.getTo-toggle" onclick="return toggle('Protocol.getTo');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getTo">getTo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.getTo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getTo-expanded"><a name="L546"></a><tt class="py-lineno"> 546</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L547"></a><tt class="py-lineno"> 547</tt> <tt class="py-line"><tt class="py-docstring"> Return value of the 'to' attribute</tt> </tt>
-<a name="L548"></a><tt class="py-lineno"> 548</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L550"></a><tt class="py-lineno"> 550</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'to'</tt><tt class="py-op">]</tt> </tt>
-<a name="L551"></a><tt class="py-lineno"> 551</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L552"></a><tt class="py-lineno"> 552</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L553"></a><tt class="py-lineno"> 553</tt> <tt class="py-line"> </tt>
-<a name="Protocol.getFrom"></a><div id="Protocol.getFrom-def"><a name="L554"></a><tt class="py-lineno"> 554</tt> <a class="py-toggle" href="#" id="Protocol.getFrom-toggle" onclick="return toggle('Protocol.getFrom');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getFrom">getFrom</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.getFrom-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getFrom-expanded"><a name="L555"></a><tt class="py-lineno"> 555</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L556"></a><tt class="py-lineno"> 556</tt> <tt class="py-line"><tt class="py-docstring"> Return value of the 'from' attribute</tt> </tt>
-<a name="L557"></a><tt class="py-lineno"> 557</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L558"></a><tt class="py-lineno"> 558</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L559"></a><tt class="py-lineno"> 559</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'from'</tt><tt class="py-op">]</tt> </tt>
-<a name="L560"></a><tt class="py-lineno"> 560</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L562"></a><tt class="py-lineno"> 562</tt> <tt class="py-line"> </tt>
-<a name="Protocol.getTimestamp"></a><div id="Protocol.getTimestamp-def"><a name="L563"></a><tt class="py-lineno"> 563</tt> <a class="py-toggle" href="#" id="Protocol.getTimestamp-toggle" onclick="return toggle('Protocol.getTimestamp');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getTimestamp">getTimestamp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.getTimestamp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getTimestamp-expanded"><a name="L564"></a><tt class="py-lineno"> 564</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L565"></a><tt class="py-lineno"> 565</tt> <tt class="py-line"><tt class="py-docstring"> Return the timestamp in the 'yyyymmddThhmmss' format</tt> </tt>
-<a name="L566"></a><tt class="py-lineno"> 566</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt><tt class="py-op">:</tt> </tt>
-<a name="L568"></a><tt class="py-lineno"> 568</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt> </tt>
-<a name="L569"></a><tt class="py-lineno"> 569</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">strftime</tt><tt class="py-op">(</tt><tt class="py-string">'%Y%m%dT%H:%M:%S'</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">gmtime</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"> </tt>
-<a name="Protocol.getTimestamp2"></a><div id="Protocol.getTimestamp2-def"><a name="L571"></a><tt class="py-lineno"> 571</tt> <a class="py-toggle" href="#" id="Protocol.getTimestamp2-toggle" onclick="return toggle('Protocol.getTimestamp2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getTimestamp2">getTimestamp2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.getTimestamp2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getTimestamp2-expanded"><a name="L572"></a><tt class="py-lineno"> 572</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"><tt class="py-docstring"> Return the timestamp in the 'yyyymmddThhmmss' format</tt> </tt>
-<a name="L574"></a><tt class="py-lineno"> 574</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L575"></a><tt class="py-lineno"> 575</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt><tt class="py-op">:</tt> </tt>
-<a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt> </tt>
-<a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">strftime</tt><tt class="py-op">(</tt><tt class="py-string">'%Y-%m-%dT%H:%M:%SZ'</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">gmtime</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L578"></a><tt class="py-lineno"> 578</tt> <tt class="py-line"> </tt>
-<a name="Protocol.getID"></a><div id="Protocol.getID-def"><a name="L579"></a><tt class="py-lineno"> 579</tt> <a class="py-toggle" href="#" id="Protocol.getID-toggle" onclick="return toggle('Protocol.getID');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getID">getID</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.getID-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getID-expanded"><a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L581"></a><tt class="py-lineno"> 581</tt> <tt class="py-line"><tt class="py-docstring"> Return the value of the 'id' attribute</tt> </tt>
-<a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-228', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"> </tt>
-<a name="Protocol.setTo"></a><div id="Protocol.setTo-def"><a name="L585"></a><tt class="py-lineno"> 585</tt> <a class="py-toggle" href="#" id="Protocol.setTo-toggle" onclick="return toggle('Protocol.setTo');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#setTo">setTo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.setTo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.setTo-expanded"><a name="L586"></a><tt class="py-lineno"> 586</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L587"></a><tt class="py-lineno"> 587</tt> <tt class="py-line"><tt class="py-docstring"> Set the value of the 'to' attribute</tt> </tt>
-<a name="L588"></a><tt class="py-lineno"> 588</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name" targets="Method nbxmpp.simplexml.Node.setAttr()=nbxmpp.simplexml.Node-class.html#setAttr"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-229', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'to'</tt><tt class="py-op">,</tt> <tt id="link-230" class="py-name"><a title="nbxmpp.protocol.JID" class="py-name" href="#" onclick="return doclink('link-230', 'JID', 'link-198');">JID</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"> </tt>
-<a name="Protocol.getType"></a><div id="Protocol.getType-def"><a name="L591"></a><tt class="py-lineno"> 591</tt> <a class="py-toggle" href="#" id="Protocol.getType-toggle" onclick="return toggle('Protocol.getType');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getType">getType</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.getType-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getType-expanded"><a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"><tt class="py-docstring"> Return the value of the 'type' attribute</tt> </tt>
-<a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-231', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> </tt>
-<a name="Protocol.setFrom"></a><div id="Protocol.setFrom-def"><a name="L597"></a><tt class="py-lineno"> 597</tt> <a class="py-toggle" href="#" id="Protocol.setFrom-toggle" onclick="return toggle('Protocol.setFrom');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#setFrom">setFrom</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.setFrom-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.setFrom-expanded"><a name="L598"></a><tt class="py-lineno"> 598</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L599"></a><tt class="py-lineno"> 599</tt> <tt class="py-line"><tt class="py-docstring"> Set the value of the 'from' attribute</tt> </tt>
-<a name="L600"></a><tt class="py-lineno"> 600</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L601"></a><tt class="py-lineno"> 601</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-232', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'from'</tt><tt class="py-op">,</tt> <tt id="link-233" class="py-name"><a title="nbxmpp.protocol.JID" class="py-name" href="#" onclick="return doclink('link-233', 'JID', 'link-198');">JID</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"> </tt>
-<a name="Protocol.setType"></a><div id="Protocol.setType-def"><a name="L603"></a><tt class="py-lineno"> 603</tt> <a class="py-toggle" href="#" id="Protocol.setType-toggle" onclick="return toggle('Protocol.setType');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#setType">setType</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.setType-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.setType-expanded"><a name="L604"></a><tt class="py-lineno"> 604</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L605"></a><tt class="py-lineno"> 605</tt> <tt class="py-line"><tt class="py-docstring"> Set the value of the 'type' attribute</tt> </tt>
-<a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-234" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-234', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"> </tt>
-<a name="Protocol.setID"></a><div id="Protocol.setID-def"><a name="L609"></a><tt class="py-lineno"> 609</tt> <a class="py-toggle" href="#" id="Protocol.setID-toggle" onclick="return toggle('Protocol.setID');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#setID">setID</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.setID-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.setID-expanded"><a name="L610"></a><tt class="py-lineno"> 610</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L611"></a><tt class="py-lineno"> 611</tt> <tt class="py-line"><tt class="py-docstring"> Set the value of the 'id' attribute</tt> </tt>
-<a name="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-235" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-235', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L614"></a><tt class="py-lineno"> 614</tt> <tt class="py-line"> </tt>
-<a name="Protocol.getError"></a><div id="Protocol.getError-def"><a name="L615"></a><tt class="py-lineno"> 615</tt> <a class="py-toggle" href="#" id="Protocol.getError-toggle" onclick="return toggle('Protocol.getError');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getError">getError</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.getError-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getError-expanded"><a name="L616"></a><tt class="py-lineno"> 616</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"><tt class="py-docstring"> Return the error-condition (if present) or the textual description</tt> </tt>
-<a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"><tt class="py-docstring"> of the error (otherwise)</tt> </tt>
-<a name="L619"></a><tt class="py-lineno"> 619</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"> <tt class="py-name">errtag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name" targets="Method nbxmpp.simplexml.Node.getTag()=nbxmpp.simplexml.Node-class.html#getTag"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-236', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">)</tt> </tt>
-<a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">errtag</tt><tt class="py-op">:</tt> </tt>
-<a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">errtag</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name" targets="Method nbxmpp.simplexml.Node.getChildren()=nbxmpp.simplexml.Node-class.html#getChildren"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-237', 'getChildren', 'link-237');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-238" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.getName()=nbxmpp.roster_nb.NonBlockingRoster-class.html#getName,Method nbxmpp.simplexml.Node.getName()=nbxmpp.simplexml.Node-class.html#getName"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-238', 'getName', 'link-238');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'text'</tt><tt class="py-op">:</tt> </tt>
-<a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-239', 'getName', 'link-238');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">errtag</tt><tt class="py-op">.</tt><tt id="link-240" class="py-name" targets="Method nbxmpp.simplexml.Node.getData()=nbxmpp.simplexml.Node-class.html#getData"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-240', 'getData', 'link-240');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L626"></a><tt class="py-lineno"> 626</tt> <tt class="py-line"> </tt>
-<a name="Protocol.getErrorMsg"></a><div id="Protocol.getErrorMsg-def"><a name="L627"></a><tt class="py-lineno"> 627</tt> <a class="py-toggle" href="#" id="Protocol.getErrorMsg-toggle" onclick="return toggle('Protocol.getErrorMsg');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getErrorMsg">getErrorMsg</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.getErrorMsg-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getErrorMsg-expanded"><a name="L628"></a><tt class="py-lineno"> 628</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L629"></a><tt class="py-lineno"> 629</tt> <tt class="py-line"><tt class="py-docstring"> Return the textual description of the error (if present)</tt> </tt>
-<a name="L630"></a><tt class="py-lineno"> 630</tt> <tt class="py-line"><tt class="py-docstring"> or the error condition</tt> </tt>
-<a name="L631"></a><tt class="py-lineno"> 631</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L632"></a><tt class="py-lineno"> 632</tt> <tt class="py-line"> <tt class="py-name">errtag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-241', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">)</tt> </tt>
-<a name="L633"></a><tt class="py-lineno"> 633</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">errtag</tt><tt class="py-op">:</tt> </tt>
-<a name="L634"></a><tt class="py-lineno"> 634</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">errtag</tt><tt class="py-op">.</tt><tt id="link-242" class="py-name"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-242', 'getChildren', 'link-237');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-243', 'getName', 'link-238');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'text'</tt><tt class="py-op">:</tt> </tt>
-<a name="L636"></a><tt class="py-lineno"> 636</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-244', 'getData', 'link-240');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-245" class="py-name" targets="Method nbxmpp.protocol.Protocol.getError()=nbxmpp.protocol.Protocol-class.html#getError"><a title="nbxmpp.protocol.Protocol.getError" class="py-name" href="#" onclick="return doclink('link-245', 'getError', 'link-245');">getError</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L638"></a><tt class="py-lineno"> 638</tt> <tt class="py-line"> </tt>
-<a name="Protocol.getErrorCode"></a><div id="Protocol.getErrorCode-def"><a name="L639"></a><tt class="py-lineno"> 639</tt> <a class="py-toggle" href="#" id="Protocol.getErrorCode-toggle" onclick="return toggle('Protocol.getErrorCode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getErrorCode">getErrorCode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.getErrorCode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getErrorCode-expanded"><a name="L640"></a><tt class="py-lineno"> 640</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L641"></a><tt class="py-lineno"> 641</tt> <tt class="py-line"><tt class="py-docstring"> Return the error code. Obsolete.</tt> </tt>
-<a name="L642"></a><tt class="py-lineno"> 642</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L643"></a><tt class="py-lineno"> 643</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-246" class="py-name" targets="Method nbxmpp.simplexml.Node.getTagAttr()=nbxmpp.simplexml.Node-class.html#getTagAttr"><a title="nbxmpp.simplexml.Node.getTagAttr" class="py-name" href="#" onclick="return doclink('link-246', 'getTagAttr', 'link-246');">getTagAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">,</tt> <tt class="py-string">'code'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L644"></a><tt class="py-lineno"> 644</tt> <tt class="py-line"> </tt>
-<a name="Protocol.getStatusConditions"></a><div id="Protocol.getStatusConditions-def"><a name="L645"></a><tt class="py-lineno"> 645</tt> <a class="py-toggle" href="#" id="Protocol.getStatusConditions-toggle" onclick="return toggle('Protocol.getStatusConditions');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getStatusConditions">getStatusConditions</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.getStatusConditions-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getStatusConditions-expanded"><a name="L646"></a><tt class="py-lineno"> 646</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L647"></a><tt class="py-lineno"> 647</tt> <tt class="py-line"><tt class="py-docstring"> Return the status conditions list as defined in XEP-0306.</tt> </tt>
-<a name="L648"></a><tt class="py-lineno"> 648</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L649"></a><tt class="py-lineno"> 649</tt> <tt class="py-line"> <tt class="py-name">conds</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L650"></a><tt class="py-lineno"> 650</tt> <tt class="py-line"> <tt class="py-name">condtag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-247" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-247', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'conditions'</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-248" class="py-name"><a title="nbxmpp.protocol.NS_CONDITIONS" class="py-name" href="#" onclick="return doclink('link-248', 'NS_CONDITIONS', 'link-34');">NS_CONDITIONS</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L651"></a><tt class="py-lineno"> 651</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">condtag</tt><tt class="py-op">:</tt> </tt>
-<a name="L652"></a><tt class="py-lineno"> 652</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">condtag</tt><tt class="py-op">.</tt><tt id="link-249" class="py-name"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-249', 'getChildren', 'link-237');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L653"></a><tt class="py-lineno"> 653</tt> <tt class="py-line"> <tt class="py-name">conds</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-250" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-250', 'getName', 'link-238');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">conds</tt> </tt>
-</div><a name="L655"></a><tt class="py-lineno"> 655</tt> <tt class="py-line"> </tt>
-<a name="Protocol.setError"></a><div id="Protocol.setError-def"><a name="L656"></a><tt class="py-lineno"> 656</tt> <a class="py-toggle" href="#" id="Protocol.setError-toggle" onclick="return toggle('Protocol.setError');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#setError">setError</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">error</tt><tt class="py-op">,</tt> <tt class="py-param">code</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.setError-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.setError-expanded"><a name="L657"></a><tt class="py-lineno"> 657</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"><tt class="py-docstring"> Set the error code. Obsolete. Use error-conditions instead</tt> </tt>
-<a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">code</tt><tt class="py-op">:</tt> </tt>
-<a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt id="link-251" class="py-name"><a title="nbxmpp.protocol._errorcodes" class="py-name" href="#" onclick="return doclink('link-251', '_errorcodes', 'link-158');">_errorcodes</a></tt><tt class="py-op">.</tt><tt id="link-252" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.keys()=nbxmpp.roster_nb.NonBlockingRoster-class.html#keys"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-252', 'keys', 'link-252');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"> <tt class="py-name">error</tt> <tt class="py-op">=</tt> <tt id="link-253" class="py-name" targets="Class nbxmpp.protocol.ErrorNode=nbxmpp.protocol.ErrorNode-class.html"><a title="nbxmpp.protocol.ErrorNode" class="py-name" href="#" onclick="return doclink('link-253', 'ErrorNode', 'link-253');">ErrorNode</a></tt><tt class="py-op">(</tt><tt id="link-254" class="py-name"><a title="nbxmpp.protocol._errorcodes" class="py-name" href="#" onclick="return doclink('link-254', '_errorcodes', 'link-158');">_errorcodes</a></tt><tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">=</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
-<a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L664"></a><tt class="py-lineno"> 664</tt> <tt class="py-line"> <tt class="py-name">error</tt> <tt class="py-op">=</tt> <tt id="link-255" class="py-name"><a title="nbxmpp.protocol.ErrorNode" class="py-name" href="#" onclick="return doclink('link-255', 'ErrorNode', 'link-253');">ErrorNode</a></tt><tt class="py-op">(</tt><tt id="link-256" class="py-name" targets="Variable nbxmpp.ERR_UNDEFINED_CONDITION=nbxmpp-module.html#ERR_UNDEFINED_CONDITION,Variable nbxmpp.protocol.ERR_UNDEFINED_CONDITION=nbxmpp.protocol-module.html#ERR_UNDEFINED_CONDITION"><a title="nbxmpp.ERR_UNDEFINED_CONDITION
-nbxmpp.protocol.ERR_UNDEFINED_CONDITION" class="py-name" href="#" onclick="return doclink('link-256', 'ERR_UNDEFINED_CONDITION', 'link-256');">ERR_UNDEFINED_CONDITION</a></tt><tt class="py-op">,</tt> <tt class="py-name">code</tt><tt class="py-op">=</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> </tt>
-<a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-string">'cancel'</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">=</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
-<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"> <tt class="py-name">error</tt><tt class="py-op">=</tt><tt id="link-257" class="py-name"><a title="nbxmpp.protocol.ErrorNode" class="py-name" href="#" onclick="return doclink('link-257', 'ErrorNode', 'link-253');">ErrorNode</a></tt><tt class="py-op">(</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
-<a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-258" class="py-name" targets="Method nbxmpp.protocol.DataField.setType()=nbxmpp.protocol.DataField-class.html#setType,Method nbxmpp.protocol.DataForm.setType()=nbxmpp.protocol.DataForm-class.html#setType,Method nbxmpp.protocol.Protocol.setType()=nbxmpp.protocol.Protocol-class.html#setType"><a title="nbxmpp.protocol.DataField.setType
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-253', '__init__', 'link-249');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">tag</tt><tt class="py-op">=</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-name">payload</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
+<a name="L763"></a><tt class="py-lineno"> 763</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">node</tt> <tt class="py-keyword">and</tt> <tt class="py-name">xmlns</tt><tt class="py-op">:</tt> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-254" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-254', 'setNamespace', 'link-250');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">xmlns</tt><tt class="py-op">)</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'to'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-255" class="py-name" targets="Method nbxmpp.protocol.Protocol.setTo()=nbxmpp.protocol.Protocol-class.html#setTo"><a title="nbxmpp.protocol.Protocol.setTo" class="py-name" href="#" onclick="return doclink('link-255', 'setTo', 'link-255');">setTo</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'to'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L767"></a><tt class="py-lineno"> 767</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'from'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L768"></a><tt class="py-lineno"> 768</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-256" class="py-name" targets="Method nbxmpp.protocol.Protocol.setFrom()=nbxmpp.protocol.Protocol-class.html#setFrom"><a title="nbxmpp.protocol.Protocol.setFrom" class="py-name" href="#" onclick="return doclink('link-256', 'setFrom', 'link-256');">setFrom</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'from'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt> <tt class="py-keyword">and</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> \ </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt> <tt class="py-op">==</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L771"></a><tt class="py-lineno"> 771</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> </tt>
+<a name="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">d</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-257" class="py-name" targets="Method nbxmpp.simplexml.Node.getTags()=nbxmpp.simplexml.Node-class.html#getTags"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-257', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'delay'</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-258" class="py-name"><a title="nbxmpp.protocol.NS_DELAY2" class="py-name" href="#" onclick="return doclink('link-258', 'NS_DELAY2', 'link-45');">NS_DELAY2</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L774"></a><tt class="py-lineno"> 774</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-259" class="py-name" targets="Method nbxmpp.simplexml.Node.getAttr()=nbxmpp.simplexml.Node-class.html#getAttr"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-259', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'stamp'</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-260" class="py-name" targets="Method nbxmpp.protocol.Protocol.getTimestamp2()=nbxmpp.protocol.Protocol-class.html#getTimestamp2"><a title="nbxmpp.protocol.Protocol.getTimestamp2" class="py-name" href="#" onclick="return doclink('link-260', 'getTimestamp2', 'link-260');">getTimestamp2</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-261" class="py-name" targets="Method nbxmpp.protocol.Protocol.setTimestamp()=nbxmpp.protocol.Protocol-class.html#setTimestamp"><a title="nbxmpp.protocol.Protocol.setTimestamp" class="py-name" href="#" onclick="return doclink('link-261', 'setTimestamp', 'link-261');">setTimestamp</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-262" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-262', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'stamp'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L779"></a><tt class="py-lineno"> 779</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt><tt class="py-op">:</tt> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-263" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-263', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-264" class="py-name"><a title="nbxmpp.protocol.NS_DELAY" class="py-name" href="#" onclick="return doclink('link-264', 'NS_DELAY', 'link-44');">NS_DELAY</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L781"></a><tt class="py-lineno"> 781</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-265" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-265', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'stamp'</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-266" class="py-name" targets="Method nbxmpp.protocol.Protocol.getTimestamp()=nbxmpp.protocol.Protocol-class.html#getTimestamp"><a title="nbxmpp.protocol.Protocol.getTimestamp" class="py-name" href="#" onclick="return doclink('link-266', 'getTimestamp', 'link-266');">getTimestamp</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-267" class="py-name"><a title="nbxmpp.protocol.Protocol.setTimestamp" class="py-name" href="#" onclick="return doclink('link-267', 'setTimestamp', 'link-261');">setTimestamp</a></tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-268" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-268', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'stamp'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timestamp</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-269" class="py-name"><a title="nbxmpp.protocol.Protocol.setTimestamp" class="py-name" href="#" onclick="return doclink('link-269', 'setTimestamp', 'link-261');">setTimestamp</a></tt><tt class="py-op">(</tt><tt class="py-name">timestamp</tt><tt class="py-op">)</tt> <tt class="py-comment"># To auto-timestamp stanza just pass timestamp=''</tt> </tt>
+</div><a name="L788"></a><tt class="py-lineno"> 788</tt> <tt class="py-line"> </tt>
+<a name="Protocol.getTo"></a><div id="Protocol.getTo-def"><a name="L789"></a><tt class="py-lineno"> 789</tt> <a class="py-toggle" href="#" id="Protocol.getTo-toggle" onclick="return toggle('Protocol.getTo');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getTo">getTo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.getTo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getTo-expanded"><a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"><tt class="py-docstring"> Return value of the 'to' attribute</tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'to'</tt><tt class="py-op">]</tt> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"> </tt>
+<a name="Protocol.getFrom"></a><div id="Protocol.getFrom-def"><a name="L798"></a><tt class="py-lineno"> 798</tt> <a class="py-toggle" href="#" id="Protocol.getFrom-toggle" onclick="return toggle('Protocol.getFrom');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getFrom">getFrom</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.getFrom-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getFrom-expanded"><a name="L799"></a><tt class="py-lineno"> 799</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"><tt class="py-docstring"> Return value of the 'from' attribute</tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-string">'from'</tt><tt class="py-op">]</tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"> </tt>
+<a name="Protocol.getTimestamp"></a><div id="Protocol.getTimestamp-def"><a name="L807"></a><tt class="py-lineno"> 807</tt> <a class="py-toggle" href="#" id="Protocol.getTimestamp-toggle" onclick="return toggle('Protocol.getTimestamp');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getTimestamp">getTimestamp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.getTimestamp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getTimestamp-expanded"><a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"><tt class="py-docstring"> Return the timestamp in the 'yyyymmddThhmmss' format</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt><tt class="py-op">:</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">strftime</tt><tt class="py-op">(</tt><tt class="py-string">'%Y%m%dT%H:%M:%S'</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">gmtime</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"> </tt>
+<a name="Protocol.getTimestamp2"></a><div id="Protocol.getTimestamp2-def"><a name="L815"></a><tt class="py-lineno"> 815</tt> <a class="py-toggle" href="#" id="Protocol.getTimestamp2-toggle" onclick="return toggle('Protocol.getTimestamp2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getTimestamp2">getTimestamp2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.getTimestamp2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getTimestamp2-expanded"><a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"><tt class="py-docstring"> Return the timestamp in the 'yyyymmddThhmmss' format</tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt><tt class="py-op">:</tt> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">strftime</tt><tt class="py-op">(</tt><tt class="py-string">'%Y-%m-%dT%H:%M:%SZ'</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">gmtime</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"> </tt>
+<a name="Protocol.getID"></a><div id="Protocol.getID-def"><a name="L823"></a><tt class="py-lineno"> 823</tt> <a class="py-toggle" href="#" id="Protocol.getID-toggle" onclick="return toggle('Protocol.getID');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getID">getID</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.getID-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getID-expanded"><a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"><tt class="py-docstring"> Return the value of the 'id' attribute</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-270" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-270', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"> </tt>
+<a name="Protocol.setTo"></a><div id="Protocol.setTo-def"><a name="L829"></a><tt class="py-lineno"> 829</tt> <a class="py-toggle" href="#" id="Protocol.setTo-toggle" onclick="return toggle('Protocol.setTo');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#setTo">setTo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.setTo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.setTo-expanded"><a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"><tt class="py-docstring"> Set the value of the 'to' attribute</tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-271" class="py-name" targets="Method nbxmpp.simplexml.Node.setAttr()=nbxmpp.simplexml.Node-class.html#setAttr"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-271', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'to'</tt><tt class="py-op">,</tt> <tt id="link-272" class="py-name"><a title="nbxmpp.protocol.JID" class="py-name" href="#" onclick="return doclink('link-272', 'JID', 'link-241');">JID</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"> </tt>
+<a name="Protocol.getType"></a><div id="Protocol.getType-def"><a name="L835"></a><tt class="py-lineno"> 835</tt> <a class="py-toggle" href="#" id="Protocol.getType-toggle" onclick="return toggle('Protocol.getType');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getType">getType</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.getType-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getType-expanded"><a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"><tt class="py-docstring"> Return the value of the 'type' attribute</tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-273" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-273', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> </tt>
+<a name="Protocol.setFrom"></a><div id="Protocol.setFrom-def"><a name="L841"></a><tt class="py-lineno"> 841</tt> <a class="py-toggle" href="#" id="Protocol.setFrom-toggle" onclick="return toggle('Protocol.setFrom');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#setFrom">setFrom</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.setFrom-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.setFrom-expanded"><a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"><tt class="py-docstring"> Set the value of the 'from' attribute</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-274" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-274', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'from'</tt><tt class="py-op">,</tt> <tt id="link-275" class="py-name"><a title="nbxmpp.protocol.JID" class="py-name" href="#" onclick="return doclink('link-275', 'JID', 'link-241');">JID</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L846"></a><tt class="py-lineno"> 846</tt> <tt class="py-line"> </tt>
+<a name="Protocol.setType"></a><div id="Protocol.setType-def"><a name="L847"></a><tt class="py-lineno"> 847</tt> <a class="py-toggle" href="#" id="Protocol.setType-toggle" onclick="return toggle('Protocol.setType');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#setType">setType</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.setType-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.setType-expanded"><a name="L848"></a><tt class="py-lineno"> 848</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L849"></a><tt class="py-lineno"> 849</tt> <tt class="py-line"><tt class="py-docstring"> Set the value of the 'type' attribute</tt> </tt>
+<a name="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L851"></a><tt class="py-lineno"> 851</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-276" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-276', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L852"></a><tt class="py-lineno"> 852</tt> <tt class="py-line"> </tt>
+<a name="Protocol.setID"></a><div id="Protocol.setID-def"><a name="L853"></a><tt class="py-lineno"> 853</tt> <a class="py-toggle" href="#" id="Protocol.setID-toggle" onclick="return toggle('Protocol.setID');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#setID">setID</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.setID-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.setID-expanded"><a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"><tt class="py-docstring"> Set the value of the 'id' attribute</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-277" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-277', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L858"></a><tt class="py-lineno"> 858</tt> <tt class="py-line"> </tt>
+<a name="Protocol.getError"></a><div id="Protocol.getError-def"><a name="L859"></a><tt class="py-lineno"> 859</tt> <a class="py-toggle" href="#" id="Protocol.getError-toggle" onclick="return toggle('Protocol.getError');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getError">getError</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.getError-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getError-expanded"><a name="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L861"></a><tt class="py-lineno"> 861</tt> <tt class="py-line"><tt class="py-docstring"> Return the error-condition (if present) or the textual description</tt> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"><tt class="py-docstring"> of the error (otherwise)</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt> <tt class="py-line"> <tt class="py-name">errtag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-278" class="py-name" targets="Method nbxmpp.simplexml.Node.getTag()=nbxmpp.simplexml.Node-class.html#getTag"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-278', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">)</tt> </tt>
+<a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">errtag</tt><tt class="py-op">:</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">errtag</tt><tt class="py-op">.</tt><tt id="link-279" class="py-name" targets="Method nbxmpp.simplexml.Node.getChildren()=nbxmpp.simplexml.Node-class.html#getChildren"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-279', 'getChildren', 'link-279');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-280" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.getName()=nbxmpp.roster_nb.NonBlockingRoster-class.html#getName,Method nbxmpp.simplexml.Node.getName()=nbxmpp.simplexml.Node-class.html#getName"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-280', 'getName', 'link-280');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'text'</tt><tt class="py-op">:</tt> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-281" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-281', 'getName', 'link-280');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">errtag</tt><tt class="py-op">.</tt><tt id="link-282" class="py-name" targets="Method nbxmpp.simplexml.Node.getData()=nbxmpp.simplexml.Node-class.html#getData"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-282', 'getData', 'link-282');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"> </tt>
+<a name="Protocol.getErrorMsg"></a><div id="Protocol.getErrorMsg-def"><a name="L871"></a><tt class="py-lineno"> 871</tt> <a class="py-toggle" href="#" id="Protocol.getErrorMsg-toggle" onclick="return toggle('Protocol.getErrorMsg');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getErrorMsg">getErrorMsg</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.getErrorMsg-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getErrorMsg-expanded"><a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"><tt class="py-docstring"> Return the textual description of the error (if present)</tt> </tt>
+<a name="L874"></a><tt class="py-lineno"> 874</tt> <tt class="py-line"><tt class="py-docstring"> or the error condition</tt> </tt>
+<a name="L875"></a><tt class="py-lineno"> 875</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"> <tt class="py-name">errtag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-283" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-283', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">)</tt> </tt>
+<a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">errtag</tt><tt class="py-op">:</tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">errtag</tt><tt class="py-op">.</tt><tt id="link-284" class="py-name"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-284', 'getChildren', 'link-279');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-285" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-285', 'getName', 'link-280');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'text'</tt><tt class="py-op">:</tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-286" class="py-name"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-286', 'getData', 'link-282');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-287" class="py-name" targets="Method nbxmpp.protocol.Protocol.getError()=nbxmpp.protocol.Protocol-class.html#getError"><a title="nbxmpp.protocol.Protocol.getError" class="py-name" href="#" onclick="return doclink('link-287', 'getError', 'link-287');">getError</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"> </tt>
+<a name="Protocol.getErrorCode"></a><div id="Protocol.getErrorCode-def"><a name="L883"></a><tt class="py-lineno"> 883</tt> <a class="py-toggle" href="#" id="Protocol.getErrorCode-toggle" onclick="return toggle('Protocol.getErrorCode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getErrorCode">getErrorCode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.getErrorCode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getErrorCode-expanded"><a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"><tt class="py-docstring"> Return the error code. Obsolete.</tt> </tt>
+<a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-288" class="py-name" targets="Method nbxmpp.simplexml.Node.getTagAttr()=nbxmpp.simplexml.Node-class.html#getTagAttr"><a title="nbxmpp.simplexml.Node.getTagAttr" class="py-name" href="#" onclick="return doclink('link-288', 'getTagAttr', 'link-288');">getTagAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">,</tt> <tt class="py-string">'code'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"> </tt>
+<a name="Protocol.getStatusConditions"></a><div id="Protocol.getStatusConditions-def"><a name="L889"></a><tt class="py-lineno"> 889</tt> <a class="py-toggle" href="#" id="Protocol.getStatusConditions-toggle" onclick="return toggle('Protocol.getStatusConditions');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getStatusConditions">getStatusConditions</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.getStatusConditions-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getStatusConditions-expanded"><a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt> <tt class="py-line"><tt class="py-docstring"> Return the status conditions list as defined in XEP-0306.</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"> <tt class="py-name">conds</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"> <tt class="py-name">condtag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-289" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-289', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'conditions'</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-290" class="py-name"><a title="nbxmpp.protocol.NS_CONDITIONS" class="py-name" href="#" onclick="return doclink('link-290', 'NS_CONDITIONS', 'link-35');">NS_CONDITIONS</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">condtag</tt><tt class="py-op">:</tt> </tt>
+<a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">condtag</tt><tt class="py-op">.</tt><tt id="link-291" class="py-name"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-291', 'getChildren', 'link-279');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"> <tt class="py-name">conds</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-292" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-292', 'getName', 'link-280');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">conds</tt> </tt>
+</div><a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"> </tt>
+<a name="Protocol.setError"></a><div id="Protocol.setError-def"><a name="L900"></a><tt class="py-lineno"> 900</tt> <a class="py-toggle" href="#" id="Protocol.setError-toggle" onclick="return toggle('Protocol.setError');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#setError">setError</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">error</tt><tt class="py-op">,</tt> <tt class="py-param">code</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.setError-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.setError-expanded"><a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"><tt class="py-docstring"> Set the error code. Obsolete. Use error-conditions instead</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">code</tt><tt class="py-op">:</tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt id="link-293" class="py-name"><a title="nbxmpp.protocol._errorcodes" class="py-name" href="#" onclick="return doclink('link-293', '_errorcodes', 'link-159');">_errorcodes</a></tt><tt class="py-op">.</tt><tt id="link-294" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.keys()=nbxmpp.roster_nb.NonBlockingRoster-class.html#keys"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-294', 'keys', 'link-294');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"> <tt class="py-name">error</tt> <tt class="py-op">=</tt> <tt id="link-295" class="py-name" targets="Class nbxmpp.protocol.ErrorNode=nbxmpp.protocol.ErrorNode-class.html"><a title="nbxmpp.protocol.ErrorNode" class="py-name" href="#" onclick="return doclink('link-295', 'ErrorNode', 'link-295');">ErrorNode</a></tt><tt class="py-op">(</tt><tt id="link-296" class="py-name"><a title="nbxmpp.protocol._errorcodes" class="py-name" href="#" onclick="return doclink('link-296', '_errorcodes', 'link-159');">_errorcodes</a></tt><tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">=</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"> <tt class="py-name">error</tt> <tt class="py-op">=</tt> <tt id="link-297" class="py-name"><a title="nbxmpp.protocol.ErrorNode" class="py-name" href="#" onclick="return doclink('link-297', 'ErrorNode', 'link-295');">ErrorNode</a></tt><tt class="py-op">(</tt><tt id="link-298" class="py-name"><a title="nbxmpp.protocol.ERR_UNDEFINED_CONDITION" class="py-name" href="#" onclick="return doclink('link-298', 'ERR_UNDEFINED_CONDITION', 'link-202');">ERR_UNDEFINED_CONDITION</a></tt><tt class="py-op">,</tt> <tt class="py-name">code</tt><tt class="py-op">=</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-string">'cancel'</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">=</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"> <tt class="py-name">error</tt><tt class="py-op">=</tt><tt id="link-299" class="py-name"><a title="nbxmpp.protocol.ErrorNode" class="py-name" href="#" onclick="return doclink('link-299', 'ErrorNode', 'link-295');">ErrorNode</a></tt><tt class="py-op">(</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-300" class="py-name" targets="Method nbxmpp.protocol.DataField.setType()=nbxmpp.protocol.DataField-class.html#setType,Method nbxmpp.protocol.DataForm.setType()=nbxmpp.protocol.DataForm-class.html#setType,Method nbxmpp.protocol.Protocol.setType()=nbxmpp.protocol.Protocol-class.html#setType"><a title="nbxmpp.protocol.DataField.setType
nbxmpp.protocol.DataForm.setType
-nbxmpp.protocol.Protocol.setType" class="py-name" href="#" onclick="return doclink('link-258', 'setType', 'link-258');">setType</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">)</tt> </tt>
-<a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-259" class="py-name" targets="Method nbxmpp.simplexml.Node.addChild()=nbxmpp.simplexml.Node-class.html#addChild"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-259', 'addChild', 'link-259');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L670"></a><tt class="py-lineno"> 670</tt> <tt class="py-line"> </tt>
-<a name="Protocol.setTimestamp"></a><div id="Protocol.setTimestamp-def"><a name="L671"></a><tt class="py-lineno"> 671</tt> <a class="py-toggle" href="#" id="Protocol.setTimestamp-toggle" onclick="return toggle('Protocol.setTimestamp');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#setTimestamp">setTimestamp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.setTimestamp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.setTimestamp-expanded"><a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"><tt class="py-docstring"> Set the timestamp. timestamp should be the yyyymmddThhmmss string</tt> </tt>
-<a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">val</tt><tt class="py-op">:</tt> </tt>
-<a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">strftime</tt><tt class="py-op">(</tt><tt class="py-string">'%Y%m%dT%H:%M:%S'</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">gmtime</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L677"></a><tt class="py-lineno"> 677</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt><tt class="py-op">=</tt><tt class="py-name">val</tt> </tt>
-<a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-260" class="py-name" targets="Method nbxmpp.simplexml.Node.setTag()=nbxmpp.simplexml.Node-class.html#setTag"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-260', 'setTag', 'link-260');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'stamp'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-261" class="py-name"><a title="nbxmpp.protocol.NS_DELAY" class="py-name" href="#" onclick="return doclink('link-261', 'NS_DELAY', 'link-42');">NS_DELAY</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"> </tt>
-<a name="Protocol.getProperties"></a><div id="Protocol.getProperties-def"><a name="L680"></a><tt class="py-lineno"> 680</tt> <a class="py-toggle" href="#" id="Protocol.getProperties-toggle" onclick="return toggle('Protocol.getProperties');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getProperties">getProperties</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.getProperties-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getProperties-expanded"><a name="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"><tt class="py-docstring"> Return the list of namespaces to which belongs the direct childs of element</tt> </tt>
-<a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"> <tt class="py-name">props</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-262" class="py-name"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-262', 'getChildren', 'link-237');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"> <tt class="py-name">prop</tt> <tt class="py-op">=</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-263" class="py-name" targets="Method nbxmpp.simplexml.Node.getNamespace()=nbxmpp.simplexml.Node-class.html#getNamespace"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-263', 'getNamespace', 'link-263');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">prop</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">props</tt><tt class="py-op">:</tt> </tt>
-<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"> <tt class="py-name">props</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">prop</tt><tt class="py-op">)</tt> </tt>
-<a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">props</tt> </tt>
-</div><a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"> </tt>
-<a name="Protocol.__setitem__"></a><div id="Protocol.__setitem__-def"><a name="L691"></a><tt class="py-lineno"> 691</tt> <a class="py-toggle" href="#" id="Protocol.__setitem__-toggle" onclick="return toggle('Protocol.__setitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#__setitem__">__setitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Protocol.__setitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.__setitem__-expanded"><a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"><tt class="py-docstring"> Set the item 'item' to the value 'val'</tt> </tt>
-<a name="L694"></a><tt class="py-lineno"> 694</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L695"></a><tt class="py-lineno"> 695</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'to'</tt><tt class="py-op">,</tt> <tt class="py-string">'from'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L696"></a><tt class="py-lineno"> 696</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt id="link-264" class="py-name"><a title="nbxmpp.protocol.JID" class="py-name" href="#" onclick="return doclink('link-264', 'JID', 'link-198');">JID</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-<a name="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-265" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-265', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L698"></a><tt class="py-lineno"> 698</tt> <tt class="py-line"> </tt>
-<a name="L699"></a><tt class="py-lineno"> 699</tt> <tt class="py-line"> </tt>
-<a name="Message"></a><div id="Message-def"><a name="L700"></a><tt class="py-lineno"> 700</tt> <a class="py-toggle" href="#" id="Message-toggle" onclick="return toggle('Message');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html">Message</a><tt class="py-op">(</tt><tt class="py-base-class">Protocol</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Message-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Message-expanded"><a name="L701"></a><tt class="py-lineno"> 701</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L702"></a><tt class="py-lineno"> 702</tt> <tt class="py-line"><tt class="py-docstring"> XMPP Message stanza - "push" mechanism</tt> </tt>
-<a name="L703"></a><tt class="py-lineno"> 703</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L704"></a><tt class="py-lineno"> 704</tt> <tt class="py-line"> </tt>
-<a name="Message.__init__"></a><div id="Message.__init__-def"><a name="L705"></a><tt class="py-lineno"> 705</tt> <a class="py-toggle" href="#" id="Message.__init__-toggle" onclick="return toggle('Message.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">to</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">xhtml</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">subject</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L706"></a><tt class="py-lineno"> 706</tt> <tt class="py-line"> <tt class="py-param">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-param">frm</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">timestamp</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">xmlns</tt><tt class="py-op">=</tt><tt id="link-266" class="py-name"><a title="nbxmpp.protocol.NS_CLIENT" class="py-name" href="#" onclick="return doclink('link-266', 'NS_CLIENT', 'link-33');">NS_CLIENT</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Message.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.__init__-expanded"><a name="L708"></a><tt class="py-lineno"> 708</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L709"></a><tt class="py-lineno"> 709</tt> <tt class="py-line"><tt class="py-docstring"> You can specify recipient, text of message, type of message any</tt> </tt>
-<a name="L710"></a><tt class="py-lineno"> 710</tt> <tt class="py-line"><tt class="py-docstring"> additional attributes, sender of the message, any additional payload</tt> </tt>
-<a name="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"><tt class="py-docstring"> (f.e. jabber:x:delay element) and namespace in one go.</tt> </tt>
-<a name="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L713"></a><tt class="py-lineno"> 713</tt> <tt class="py-line"><tt class="py-docstring"> Alternatively you can pass in the other XML object as the 'node'</tt> </tt>
-<a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"><tt class="py-docstring"> parameted to replicate it as message</tt> </tt>
-<a name="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L716"></a><tt class="py-lineno"> 716</tt> <tt class="py-line"> <tt id="link-267" class="py-name" targets="Class nbxmpp.protocol.Protocol=nbxmpp.protocol.Protocol-class.html"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-267', 'Protocol', 'link-267');">Protocol</a></tt><tt class="py-op">.</tt><tt id="link-268" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+nbxmpp.protocol.Protocol.setType" class="py-name" href="#" onclick="return doclink('link-300', 'setType', 'link-300');">setType</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">)</tt> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-301" class="py-name" targets="Method nbxmpp.simplexml.Node.addChild()=nbxmpp.simplexml.Node-class.html#addChild"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-301', 'addChild', 'link-301');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"> </tt>
+<a name="Protocol.setTimestamp"></a><div id="Protocol.setTimestamp-def"><a name="L915"></a><tt class="py-lineno"> 915</tt> <a class="py-toggle" href="#" id="Protocol.setTimestamp-toggle" onclick="return toggle('Protocol.setTimestamp');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#setTimestamp">setTimestamp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.setTimestamp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.setTimestamp-expanded"><a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"><tt class="py-docstring"> Set the timestamp. timestamp should be the yyyymmddThhmmss string</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">val</tt><tt class="py-op">:</tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">strftime</tt><tt class="py-op">(</tt><tt class="py-string">'%Y%m%dT%H:%M:%S'</tt><tt class="py-op">,</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">gmtime</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L921"></a><tt class="py-lineno"> 921</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt><tt class="py-op">=</tt><tt class="py-name">val</tt> </tt>
+<a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-302" class="py-name" targets="Method nbxmpp.simplexml.Node.setTag()=nbxmpp.simplexml.Node-class.html#setTag"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-302', 'setTag', 'link-302');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'stamp'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">timestamp</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-303" class="py-name"><a title="nbxmpp.protocol.NS_DELAY" class="py-name" href="#" onclick="return doclink('link-303', 'NS_DELAY', 'link-44');">NS_DELAY</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L923"></a><tt class="py-lineno"> 923</tt> <tt class="py-line"> </tt>
+<a name="Protocol.getProperties"></a><div id="Protocol.getProperties-def"><a name="L924"></a><tt class="py-lineno"> 924</tt> <a class="py-toggle" href="#" id="Protocol.getProperties-toggle" onclick="return toggle('Protocol.getProperties');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#getProperties">getProperties</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.getProperties-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.getProperties-expanded"><a name="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L926"></a><tt class="py-lineno"> 926</tt> <tt class="py-line"><tt class="py-docstring"> Return the list of namespaces to which belongs the direct childs of element</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"> <tt class="py-name">props</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-304" class="py-name"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-304', 'getChildren', 'link-279');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"> <tt class="py-name">prop</tt> <tt class="py-op">=</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-305" class="py-name" targets="Method nbxmpp.simplexml.Node.getNamespace()=nbxmpp.simplexml.Node-class.html#getNamespace"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-305', 'getNamespace', 'link-305');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">prop</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">props</tt><tt class="py-op">:</tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt> <tt class="py-line"> <tt class="py-name">props</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">prop</tt><tt class="py-op">)</tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">props</tt> </tt>
+</div><a name="L934"></a><tt class="py-lineno"> 934</tt> <tt class="py-line"> </tt>
+<a name="Protocol.__setitem__"></a><div id="Protocol.__setitem__-def"><a name="L935"></a><tt class="py-lineno"> 935</tt> <a class="py-toggle" href="#" id="Protocol.__setitem__-toggle" onclick="return toggle('Protocol.__setitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Protocol-class.html#__setitem__">__setitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Protocol.__setitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Protocol.__setitem__-expanded"><a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"><tt class="py-docstring"> Set the item 'item' to the value 'val'</tt> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'to'</tt><tt class="py-op">,</tt> <tt class="py-string">'from'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt id="link-306" class="py-name"><a title="nbxmpp.protocol.JID" class="py-name" href="#" onclick="return doclink('link-306', 'JID', 'link-241');">JID</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-307" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-307', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"> </tt>
+<a name="Message"></a><div id="Message-def"><a name="L944"></a><tt class="py-lineno"> 944</tt> <a class="py-toggle" href="#" id="Message-toggle" onclick="return toggle('Message');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html">Message</a><tt class="py-op">(</tt><tt class="py-base-class">Protocol</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Message-expanded"><a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"><tt class="py-docstring"> XMPP Message stanza - "push" mechanism</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"> </tt>
+<a name="Message.__init__"></a><div id="Message.__init__-def"><a name="L949"></a><tt class="py-lineno"> 949</tt> <a class="py-toggle" href="#" id="Message.__init__-toggle" onclick="return toggle('Message.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">to</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">xhtml</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">subject</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"> <tt class="py-param">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-param">frm</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">timestamp</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">xmlns</tt><tt class="py-op">=</tt><tt id="link-308" class="py-name"><a title="nbxmpp.protocol.NS_CLIENT" class="py-name" href="#" onclick="return doclink('link-308', 'NS_CLIENT', 'link-34');">NS_CLIENT</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L951"></a><tt class="py-lineno"> 951</tt> <tt class="py-line"> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.__init__-expanded"><a name="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"><tt class="py-docstring"> You can specify recipient, text of message, type of message any</tt> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"><tt class="py-docstring"> additional attributes, sender of the message, any additional payload</tt> </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"><tt class="py-docstring"> (f.e. jabber:x:delay element) and namespace in one go.</tt> </tt>
+<a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt> <tt class="py-line"><tt class="py-docstring"> Alternatively you can pass in the other XML object as the 'node'</tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"><tt class="py-docstring"> parameted to replicate it as message</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"> <tt id="link-309" class="py-name" targets="Class nbxmpp.protocol.Protocol=nbxmpp.protocol.Protocol-class.html"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-309', 'Protocol', 'link-309');">Protocol</a></tt><tt class="py-op">.</tt><tt id="link-310" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -928,123 +1166,123 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-268', '__init__', 'link-206');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'message'</tt><tt class="py-op">,</tt> <tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">to</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">frm</tt><tt class="py-op">=</tt><tt class="py-name">frm</tt><tt class="py-op">,</tt> </tt>
-<a name="L717"></a><tt class="py-lineno"> 717</tt> <tt class="py-line"> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-name">payload</tt><tt class="py-op">,</tt> <tt class="py-name">timestamp</tt><tt class="py-op">=</tt><tt class="py-name">timestamp</tt><tt class="py-op">,</tt> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
-<a name="L718"></a><tt class="py-lineno"> 718</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">body</tt><tt class="py-op">:</tt> </tt>
-<a name="L719"></a><tt class="py-lineno"> 719</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-269" class="py-name" targets="Method nbxmpp.protocol.Message.setBody()=nbxmpp.protocol.Message-class.html#setBody"><a title="nbxmpp.protocol.Message.setBody" class="py-name" href="#" onclick="return doclink('link-269', 'setBody', 'link-269');">setBody</a></tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
-<a name="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xhtml</tt><tt class="py-op">:</tt> </tt>
-<a name="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-270" class="py-name" targets="Method nbxmpp.protocol.Message.setXHTML()=nbxmpp.protocol.Message-class.html#setXHTML"><a title="nbxmpp.protocol.Message.setXHTML" class="py-name" href="#" onclick="return doclink('link-270', 'setXHTML', 'link-270');">setXHTML</a></tt><tt class="py-op">(</tt><tt class="py-name">xhtml</tt><tt class="py-op">)</tt> </tt>
-<a name="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">subject</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-271" class="py-name" targets="Method nbxmpp.protocol.Message.setSubject()=nbxmpp.protocol.Message-class.html#setSubject"><a title="nbxmpp.protocol.Message.setSubject" class="py-name" href="#" onclick="return doclink('link-271', 'setSubject', 'link-271');">setSubject</a></tt><tt class="py-op">(</tt><tt class="py-name">subject</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L724"></a><tt class="py-lineno"> 724</tt> <tt class="py-line"> </tt>
-<a name="Message.getBody"></a><div id="Message.getBody-def"><a name="L725"></a><tt class="py-lineno"> 725</tt> <a class="py-toggle" href="#" id="Message.getBody-toggle" onclick="return toggle('Message.getBody');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#getBody">getBody</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Message.getBody-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.getBody-expanded"><a name="L726"></a><tt class="py-lineno"> 726</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"><tt class="py-docstring"> Return text of the message</tt> </tt>
-<a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L729"></a><tt class="py-lineno"> 729</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-272" class="py-name" targets="Method nbxmpp.simplexml.Node.getTagData()=nbxmpp.simplexml.Node-class.html#getTagData"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-272', 'getTagData', 'link-272');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L730"></a><tt class="py-lineno"> 730</tt> <tt class="py-line"> </tt>
-<a name="Message.getXHTML"></a><div id="Message.getXHTML-def"><a name="L731"></a><tt class="py-lineno"> 731</tt> <a class="py-toggle" href="#" id="Message.getXHTML-toggle" onclick="return toggle('Message.getXHTML');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#getXHTML">getXHTML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">xmllang</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Message.getXHTML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.getXHTML-expanded"><a name="L732"></a><tt class="py-lineno"> 732</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"><tt class="py-docstring"> Return serialized xhtml-im element text of the message</tt> </tt>
-<a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"><tt class="py-docstring"> TODO: Returning a DOM could make rendering faster.</tt> </tt>
-<a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L737"></a><tt class="py-lineno"> 737</tt> <tt class="py-line"> <tt class="py-name">xhtml</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-273" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-273', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L738"></a><tt class="py-lineno"> 738</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xhtml</tt><tt class="py-op">:</tt> </tt>
-<a name="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xmllang</tt><tt class="py-op">:</tt> </tt>
-<a name="L740"></a><tt class="py-lineno"> 740</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">xhtml</tt><tt class="py-op">.</tt><tt id="link-274" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-274', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'xml:lang'</tt><tt class="py-op">:</tt> <tt class="py-name">xmllang</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L741"></a><tt class="py-lineno"> 741</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">xhtml</tt><tt class="py-op">.</tt><tt id="link-275" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-275', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
-<a name="L743"></a><tt class="py-lineno"> 743</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
-<a name="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L745"></a><tt class="py-lineno"> 745</tt> <tt class="py-line"> </tt>
-<a name="Message.getSubject"></a><div id="Message.getSubject-def"><a name="L746"></a><tt class="py-lineno"> 746</tt> <a class="py-toggle" href="#" id="Message.getSubject-toggle" onclick="return toggle('Message.getSubject');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#getSubject">getSubject</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Message.getSubject-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.getSubject-expanded"><a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"><tt class="py-docstring"> Return subject of the message</tt> </tt>
-<a name="L749"></a><tt class="py-lineno"> 749</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-276" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-276', 'getTagData', 'link-272');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'subject'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L751"></a><tt class="py-lineno"> 751</tt> <tt class="py-line"> </tt>
-<a name="Message.getThread"></a><div id="Message.getThread-def"><a name="L752"></a><tt class="py-lineno"> 752</tt> <a class="py-toggle" href="#" id="Message.getThread-toggle" onclick="return toggle('Message.getThread');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#getThread">getThread</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Message.getThread-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.getThread-expanded"><a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L754"></a><tt class="py-lineno"> 754</tt> <tt class="py-line"><tt class="py-docstring"> Return thread of the message</tt> </tt>
-<a name="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-277" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-277', 'getTagData', 'link-272');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'thread'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L757"></a><tt class="py-lineno"> 757</tt> <tt class="py-line"> </tt>
-<a name="Message.setBody"></a><div id="Message.setBody-def"><a name="L758"></a><tt class="py-lineno"> 758</tt> <a class="py-toggle" href="#" id="Message.setBody-toggle" onclick="return toggle('Message.setBody');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#setBody">setBody</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Message.setBody-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.setBody-expanded"><a name="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L760"></a><tt class="py-lineno"> 760</tt> <tt class="py-line"><tt class="py-docstring"> Set the text of the message"""</tt> </tt>
-<a name="L761"></a><tt class="py-lineno"> 761</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-278" class="py-name" targets="Method nbxmpp.simplexml.Node.setTagData()=nbxmpp.simplexml.Node-class.html#setTagData"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-278', 'setTagData', 'link-278');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L762"></a><tt class="py-lineno"> 762</tt> <tt class="py-line"> </tt>
-<a name="Message.setXHTML"></a><div id="Message.setXHTML-def"><a name="L763"></a><tt class="py-lineno"> 763</tt> <a class="py-toggle" href="#" id="Message.setXHTML-toggle" onclick="return toggle('Message.setXHTML');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#setXHTML">setXHTML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">,</tt> <tt class="py-param">xmllang</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Message.setXHTML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.setXHTML-expanded"><a name="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L765"></a><tt class="py-lineno"> 765</tt> <tt class="py-line"><tt class="py-docstring"> Sets the xhtml text of the message (XEP-0071). The parameter is the</tt> </tt>
-<a name="L766"></a><tt class="py-lineno"> 766</tt> <tt class="py-line"><tt class="py-docstring"> "inner html" to the body.</tt> </tt>
-<a name="L767"></a><tt class="py-lineno"> 767</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L768"></a><tt class="py-lineno"> 768</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L769"></a><tt class="py-lineno"> 769</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xmllang</tt><tt class="py-op">:</tt> </tt>
-<a name="L770"></a><tt class="py-lineno"> 770</tt> <tt class="py-line"> <tt class="py-name">dom</tt> <tt class="py-op">=</tt> <tt id="link-279" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder" class="py-name" href="#" onclick="return doclink('link-279', 'NodeBuilder', 'link-2');">NodeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;body xmlns="%s" xml:lang="%s"&gt;%s&lt;/body&gt;'</tt> \ </tt>
-<a name="L771"></a><tt class="py-lineno"> 771</tt> <tt class="py-line"> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-280" class="py-name"><a title="nbxmpp.protocol.NS_XHTML" class="py-name" href="#" onclick="return doclink('link-280', 'NS_XHTML', 'link-140');">NS_XHTML</a></tt><tt class="py-op">,</tt> <tt class="py-name">xmllang</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-281" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.getDom()=nbxmpp.simplexml.NodeBuilder-class.html#getDom"><a title="nbxmpp.simplexml.NodeBuilder.getDom" class="py-name" href="#" onclick="return doclink('link-281', 'getDom', 'link-281');">getDom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"> <tt class="py-name">dom</tt> <tt class="py-op">=</tt> <tt id="link-282" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder" class="py-name" href="#" onclick="return doclink('link-282', 'NodeBuilder', 'link-2');">NodeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;body xmlns="%s"&gt;%s&lt;/body&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-283" class="py-name"><a title="nbxmpp.protocol.NS_XHTML" class="py-name" href="#" onclick="return doclink('link-283', 'NS_XHTML', 'link-140');">NS_XHTML</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L774"></a><tt class="py-lineno"> 774</tt> <tt class="py-line"> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-284" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.getDom" class="py-name" href="#" onclick="return doclink('link-284', 'getDom', 'link-281');">getDom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-285" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-285', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L776"></a><tt class="py-lineno"> 776</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-286" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-286', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-287" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-287', 'addChild', 'link-259');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">dom</tt><tt class="py-op">)</tt> </tt>
-<a name="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-288" class="py-name"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-288', 'setTag', 'link-260');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-289" class="py-name"><a title="nbxmpp.protocol.NS_XHTML_IM" class="py-name" href="#" onclick="return doclink('link-289', 'NS_XHTML_IM', 'link-139');">NS_XHTML_IM</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-290" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-290', 'addChild', 'link-259');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">dom</tt><tt class="py-op">)</tt> </tt>
-<a name="L779"></a><tt class="py-lineno"> 779</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L780"></a><tt class="py-lineno"> 780</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">"Error"</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt> </tt>
-</div><a name="L781"></a><tt class="py-lineno"> 781</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: log. we could not set xhtml (parse error, whatever)</tt> </tt>
-<a name="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"> </tt>
-<a name="Message.setSubject"></a><div id="Message.setSubject-def"><a name="L783"></a><tt class="py-lineno"> 783</tt> <a class="py-toggle" href="#" id="Message.setSubject-toggle" onclick="return toggle('Message.setSubject');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#setSubject">setSubject</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Message.setSubject-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.setSubject-expanded"><a name="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L785"></a><tt class="py-lineno"> 785</tt> <tt class="py-line"><tt class="py-docstring"> Set the subject of the message</tt> </tt>
-<a name="L786"></a><tt class="py-lineno"> 786</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L787"></a><tt class="py-lineno"> 787</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-291" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-291', 'setTagData', 'link-278');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'subject'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L788"></a><tt class="py-lineno"> 788</tt> <tt class="py-line"> </tt>
-<a name="Message.setThread"></a><div id="Message.setThread-def"><a name="L789"></a><tt class="py-lineno"> 789</tt> <a class="py-toggle" href="#" id="Message.setThread-toggle" onclick="return toggle('Message.setThread');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#setThread">setThread</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Message.setThread-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.setThread-expanded"><a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"><tt class="py-docstring"> Set the thread of the message</tt> </tt>
-<a name="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-292" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-292', 'setTagData', 'link-278');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'thread'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"> </tt>
-<a name="Message.buildReply"></a><div id="Message.buildReply-def"><a name="L795"></a><tt class="py-lineno"> 795</tt> <a class="py-toggle" href="#" id="Message.buildReply-toggle" onclick="return toggle('Message.buildReply');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#buildReply">buildReply</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Message.buildReply-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.buildReply-expanded"><a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"><tt class="py-docstring"> Builds and returns another message object with specified text. The to,</tt> </tt>
-<a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"><tt class="py-docstring"> from, thread and type properties of new message are pre-set as reply to</tt> </tt>
-<a name="L799"></a><tt class="py-lineno"> 799</tt> <tt class="py-line"><tt class="py-docstring"> this message</tt> </tt>
-<a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-293" class="py-name" targets="Class nbxmpp.protocol.Message=nbxmpp.protocol.Message-class.html"><a title="nbxmpp.protocol.Message" class="py-name" href="#" onclick="return doclink('link-293', 'Message', 'link-293');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-294" class="py-name" targets="Method nbxmpp.protocol.Protocol.getFrom()=nbxmpp.protocol.Protocol-class.html#getFrom"><a title="nbxmpp.protocol.Protocol.getFrom" class="py-name" href="#" onclick="return doclink('link-294', 'getFrom', 'link-294');">getFrom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">frm</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-295" class="py-name" targets="Method nbxmpp.protocol.Protocol.getTo()=nbxmpp.protocol.Protocol-class.html#getTo"><a title="nbxmpp.protocol.Protocol.getTo" class="py-name" href="#" onclick="return doclink('link-295', 'getTo', 'link-295');">getTo</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-296" class="py-name"><a title="nbxmpp.protocol.DataField.getType
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-310', '__init__', 'link-249');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'message'</tt><tt class="py-op">,</tt> <tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">to</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">frm</tt><tt class="py-op">=</tt><tt class="py-name">frm</tt><tt class="py-op">,</tt> </tt>
+<a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-name">payload</tt><tt class="py-op">,</tt> <tt class="py-name">timestamp</tt><tt class="py-op">=</tt><tt class="py-name">timestamp</tt><tt class="py-op">,</tt> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">body</tt><tt class="py-op">:</tt> </tt>
+<a name="L963"></a><tt class="py-lineno"> 963</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-311" class="py-name" targets="Method nbxmpp.protocol.Message.setBody()=nbxmpp.protocol.Message-class.html#setBody"><a title="nbxmpp.protocol.Message.setBody" class="py-name" href="#" onclick="return doclink('link-311', 'setBody', 'link-311');">setBody</a></tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xhtml</tt><tt class="py-op">:</tt> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-312" class="py-name" targets="Method nbxmpp.protocol.Message.setXHTML()=nbxmpp.protocol.Message-class.html#setXHTML"><a title="nbxmpp.protocol.Message.setXHTML" class="py-name" href="#" onclick="return doclink('link-312', 'setXHTML', 'link-312');">setXHTML</a></tt><tt class="py-op">(</tt><tt class="py-name">xhtml</tt><tt class="py-op">)</tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">subject</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-313" class="py-name" targets="Method nbxmpp.protocol.Message.setSubject()=nbxmpp.protocol.Message-class.html#setSubject"><a title="nbxmpp.protocol.Message.setSubject" class="py-name" href="#" onclick="return doclink('link-313', 'setSubject', 'link-313');">setSubject</a></tt><tt class="py-op">(</tt><tt class="py-name">subject</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L968"></a><tt class="py-lineno"> 968</tt> <tt class="py-line"> </tt>
+<a name="Message.getBody"></a><div id="Message.getBody-def"><a name="L969"></a><tt class="py-lineno"> 969</tt> <a class="py-toggle" href="#" id="Message.getBody-toggle" onclick="return toggle('Message.getBody');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#getBody">getBody</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.getBody-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.getBody-expanded"><a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"><tt class="py-docstring"> Return text of the message</tt> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-314" class="py-name" targets="Method nbxmpp.simplexml.Node.getTagData()=nbxmpp.simplexml.Node-class.html#getTagData"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-314', 'getTagData', 'link-314');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"> </tt>
+<a name="Message.getXHTML"></a><div id="Message.getXHTML-def"><a name="L975"></a><tt class="py-lineno"> 975</tt> <a class="py-toggle" href="#" id="Message.getXHTML-toggle" onclick="return toggle('Message.getXHTML');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#getXHTML">getXHTML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">xmllang</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.getXHTML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.getXHTML-expanded"><a name="L976"></a><tt class="py-lineno"> 976</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"><tt class="py-docstring"> Return serialized xhtml-im element text of the message</tt> </tt>
+<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"><tt class="py-docstring"> TODO: Returning a DOM could make rendering faster.</tt> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"> <tt class="py-name">xhtml</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-315" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-315', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xhtml</tt><tt class="py-op">:</tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xmllang</tt><tt class="py-op">:</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">xhtml</tt><tt class="py-op">.</tt><tt id="link-316" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-316', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'xml:lang'</tt><tt class="py-op">:</tt> <tt class="py-name">xmllang</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">xhtml</tt><tt class="py-op">.</tt><tt id="link-317" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-317', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L989"></a><tt class="py-lineno"> 989</tt> <tt class="py-line"> </tt>
+<a name="Message.getSubject"></a><div id="Message.getSubject-def"><a name="L990"></a><tt class="py-lineno"> 990</tt> <a class="py-toggle" href="#" id="Message.getSubject-toggle" onclick="return toggle('Message.getSubject');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#getSubject">getSubject</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.getSubject-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.getSubject-expanded"><a name="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"><tt class="py-docstring"> Return subject of the message</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-318" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-318', 'getTagData', 'link-314');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'subject'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L995"></a><tt class="py-lineno"> 995</tt> <tt class="py-line"> </tt>
+<a name="Message.getThread"></a><div id="Message.getThread-def"><a name="L996"></a><tt class="py-lineno"> 996</tt> <a class="py-toggle" href="#" id="Message.getThread-toggle" onclick="return toggle('Message.getThread');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#getThread">getThread</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.getThread-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.getThread-expanded"><a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"><tt class="py-docstring"> Return thread of the message</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-319" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-319', 'getTagData', 'link-314');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'thread'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"> </tt>
+<a name="Message.setBody"></a><div id="Message.setBody-def"><a name="L1002"></a><tt class="py-lineno">1002</tt> <a class="py-toggle" href="#" id="Message.setBody-toggle" onclick="return toggle('Message.setBody');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#setBody">setBody</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.setBody-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.setBody-expanded"><a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"><tt class="py-docstring"> Set the text of the message"""</tt> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-320" class="py-name" targets="Method nbxmpp.simplexml.Node.setTagData()=nbxmpp.simplexml.Node-class.html#setTagData"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-320', 'setTagData', 'link-320');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1006"></a><tt class="py-lineno">1006</tt> <tt class="py-line"> </tt>
+<a name="Message.setXHTML"></a><div id="Message.setXHTML-def"><a name="L1007"></a><tt class="py-lineno">1007</tt> <a class="py-toggle" href="#" id="Message.setXHTML-toggle" onclick="return toggle('Message.setXHTML');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#setXHTML">setXHTML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">,</tt> <tt class="py-param">xmllang</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.setXHTML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.setXHTML-expanded"><a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"><tt class="py-docstring"> Sets the xhtml text of the message (XEP-0071). The parameter is the</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"><tt class="py-docstring"> "inner html" to the body.</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xmllang</tt><tt class="py-op">:</tt> </tt>
+<a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> <tt class="py-name">dom</tt> <tt class="py-op">=</tt> <tt id="link-321" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder" class="py-name" href="#" onclick="return doclink('link-321', 'NodeBuilder', 'link-2');">NodeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;body xmlns="%s" xml:lang="%s"&gt;%s&lt;/body&gt;'</tt> \ </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-322" class="py-name"><a title="nbxmpp.protocol.NS_XHTML" class="py-name" href="#" onclick="return doclink('link-322', 'NS_XHTML', 'link-143');">NS_XHTML</a></tt><tt class="py-op">,</tt> <tt class="py-name">xmllang</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-323" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.getDom()=nbxmpp.simplexml.NodeBuilder-class.html#getDom"><a title="nbxmpp.simplexml.NodeBuilder.getDom" class="py-name" href="#" onclick="return doclink('link-323', 'getDom', 'link-323');">getDom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> <tt class="py-name">dom</tt> <tt class="py-op">=</tt> <tt id="link-324" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder" class="py-name" href="#" onclick="return doclink('link-324', 'NodeBuilder', 'link-2');">NodeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;body xmlns="%s"&gt;%s&lt;/body&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-325" class="py-name"><a title="nbxmpp.protocol.NS_XHTML" class="py-name" href="#" onclick="return doclink('link-325', 'NS_XHTML', 'link-143');">NS_XHTML</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-326" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.getDom" class="py-name" href="#" onclick="return doclink('link-326', 'getDom', 'link-323');">getDom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-327" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-327', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-328" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-328', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-329" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-329', 'addChild', 'link-301');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">dom</tt><tt class="py-op">)</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-330', 'setTag', 'link-302');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-331" class="py-name"><a title="nbxmpp.protocol.NS_XHTML_IM" class="py-name" href="#" onclick="return doclink('link-331', 'NS_XHTML_IM', 'link-142');">NS_XHTML_IM</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-332" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-332', 'addChild', 'link-301');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">dom</tt><tt class="py-op">)</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">"Error"</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt> </tt>
+</div><a name="L1025"></a><tt class="py-lineno">1025</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: log. we could not set xhtml (parse error, whatever)</tt> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"> </tt>
+<a name="Message.setSubject"></a><div id="Message.setSubject-def"><a name="L1027"></a><tt class="py-lineno">1027</tt> <a class="py-toggle" href="#" id="Message.setSubject-toggle" onclick="return toggle('Message.setSubject');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#setSubject">setSubject</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.setSubject-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.setSubject-expanded"><a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"><tt class="py-docstring"> Set the subject of the message</tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-333" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-333', 'setTagData', 'link-320');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'subject'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"> </tt>
+<a name="Message.setThread"></a><div id="Message.setThread-def"><a name="L1033"></a><tt class="py-lineno">1033</tt> <a class="py-toggle" href="#" id="Message.setThread-toggle" onclick="return toggle('Message.setThread');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#setThread">setThread</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.setThread-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.setThread-expanded"><a name="L1034"></a><tt class="py-lineno">1034</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt> <tt class="py-line"><tt class="py-docstring"> Set the thread of the message</tt> </tt>
+<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-334" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-334', 'setTagData', 'link-320');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'thread'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"> </tt>
+<a name="Message.buildReply"></a><div id="Message.buildReply-def"><a name="L1039"></a><tt class="py-lineno">1039</tt> <a class="py-toggle" href="#" id="Message.buildReply-toggle" onclick="return toggle('Message.buildReply');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#buildReply">buildReply</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.buildReply-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.buildReply-expanded"><a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"><tt class="py-docstring"> Builds and returns another message object with specified text. The to,</tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"><tt class="py-docstring"> from, thread and type properties of new message are pre-set as reply to</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"><tt class="py-docstring"> this message</tt> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-335" class="py-name" targets="Class nbxmpp.protocol.Message=nbxmpp.protocol.Message-class.html"><a title="nbxmpp.protocol.Message" class="py-name" href="#" onclick="return doclink('link-335', 'Message', 'link-335');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-336" class="py-name" targets="Method nbxmpp.protocol.Protocol.getFrom()=nbxmpp.protocol.Protocol-class.html#getFrom"><a title="nbxmpp.protocol.Protocol.getFrom" class="py-name" href="#" onclick="return doclink('link-336', 'getFrom', 'link-336');">getFrom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">frm</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-337" class="py-name" targets="Method nbxmpp.protocol.Protocol.getTo()=nbxmpp.protocol.Protocol-class.html#getTo"><a title="nbxmpp.protocol.Protocol.getTo" class="py-name" href="#" onclick="return doclink('link-337', 'getTo', 'link-337');">getTo</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-338" class="py-name"><a title="nbxmpp.protocol.DataField.getType
nbxmpp.protocol.DataForm.getType
-nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-296', 'getType', 'link-170');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"> <tt class="py-name">th</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-297" class="py-name" targets="Method nbxmpp.protocol.Message.getThread()=nbxmpp.protocol.Message-class.html#getThread"><a title="nbxmpp.protocol.Message.getThread" class="py-name" href="#" onclick="return doclink('link-297', 'getThread', 'link-297');">getThread</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">th</tt><tt class="py-op">:</tt> </tt>
-<a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-298" class="py-name" targets="Method nbxmpp.protocol.Message.setThread()=nbxmpp.protocol.Message-class.html#setThread"><a title="nbxmpp.protocol.Message.setThread" class="py-name" href="#" onclick="return doclink('link-298', 'setThread', 'link-298');">setThread</a></tt><tt class="py-op">(</tt><tt class="py-name">th</tt><tt class="py-op">)</tt> </tt>
-<a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">m</tt> </tt>
-</div><a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"> </tt>
-<a name="Message.getStatusCode"></a><div id="Message.getStatusCode-def"><a name="L808"></a><tt class="py-lineno"> 808</tt> <a class="py-toggle" href="#" id="Message.getStatusCode-toggle" onclick="return toggle('Message.getStatusCode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#getStatusCode">getStatusCode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Message.getStatusCode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.getStatusCode-expanded"><a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"><tt class="py-docstring"> Return the status code of the message (for groupchat config change)</tt> </tt>
-<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"> <tt class="py-name">attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">xtag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-299" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-299', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xtag</tt><tt class="py-op">.</tt><tt id="link-300" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-300', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'status'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-301" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-301', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'code'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">attrs</tt> </tt>
-</div></div><a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"> </tt>
-<a name="Presence"></a><div id="Presence-def"><a name="L818"></a><tt class="py-lineno"> 818</tt> <a class="py-toggle" href="#" id="Presence-toggle" onclick="return toggle('Presence');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html">Presence</a><tt class="py-op">(</tt><tt class="py-base-class">Protocol</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Presence-expanded"><a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"> </tt>
-<a name="Presence.__init__"></a><div id="Presence.__init__-def"><a name="L820"></a><tt class="py-lineno"> 820</tt> <a class="py-toggle" href="#" id="Presence.__init__-toggle" onclick="return toggle('Presence.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">to</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">priority</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">show</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">status</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"> <tt class="py-param">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-param">frm</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">timestamp</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">xmlns</tt><tt class="py-op">=</tt><tt id="link-302" class="py-name"><a title="nbxmpp.protocol.NS_CLIENT" class="py-name" href="#" onclick="return doclink('link-302', 'NS_CLIENT', 'link-33');">NS_CLIENT</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.__init__-expanded"><a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"><tt class="py-docstring"> You can specify recipient, type of message, priority, show and status</tt> </tt>
-<a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"><tt class="py-docstring"> values any additional attributes, sender of the presence, timestamp, any</tt> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"><tt class="py-docstring"> additional payload (f.e. jabber:x:delay element) and namespace in one go.</tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"><tt class="py-docstring"> Alternatively you can pass in the other XML object as the 'node'</tt> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"><tt class="py-docstring"> parameted to replicate it as presence</tt> </tt>
-<a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"> <tt id="link-303" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-303', 'Protocol', 'link-267');">Protocol</a></tt><tt class="py-op">.</tt><tt id="link-304" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-338', 'getType', 'link-213');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> <tt class="py-name">th</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-339" class="py-name" targets="Method nbxmpp.protocol.Message.getThread()=nbxmpp.protocol.Message-class.html#getThread"><a title="nbxmpp.protocol.Message.getThread" class="py-name" href="#" onclick="return doclink('link-339', 'getThread', 'link-339');">getThread</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">th</tt><tt class="py-op">:</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-340" class="py-name" targets="Method nbxmpp.protocol.Message.setThread()=nbxmpp.protocol.Message-class.html#setThread"><a title="nbxmpp.protocol.Message.setThread" class="py-name" href="#" onclick="return doclink('link-340', 'setThread', 'link-340');">setThread</a></tt><tt class="py-op">(</tt><tt class="py-name">th</tt><tt class="py-op">)</tt> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">m</tt> </tt>
+</div><a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"> </tt>
+<a name="Message.getStatusCode"></a><div id="Message.getStatusCode-def"><a name="L1052"></a><tt class="py-lineno">1052</tt> <a class="py-toggle" href="#" id="Message.getStatusCode-toggle" onclick="return toggle('Message.getStatusCode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Message-class.html#getStatusCode">getStatusCode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.getStatusCode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Message.getStatusCode-expanded"><a name="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1054"></a><tt class="py-lineno">1054</tt> <tt class="py-line"><tt class="py-docstring"> Return the status code of the message (for groupchat config change)</tt> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"> <tt class="py-name">attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">xtag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-341" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-341', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xtag</tt><tt class="py-op">.</tt><tt id="link-342" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-342', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'status'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1059"></a><tt class="py-lineno">1059</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-343" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-343', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'code'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">attrs</tt> </tt>
+</div></div><a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"> </tt>
+<a name="Presence"></a><div id="Presence-def"><a name="L1062"></a><tt class="py-lineno">1062</tt> <a class="py-toggle" href="#" id="Presence-toggle" onclick="return toggle('Presence');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html">Presence</a><tt class="py-op">(</tt><tt class="py-base-class">Protocol</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Presence-expanded"><a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"> </tt>
+<a name="Presence.__init__"></a><div id="Presence.__init__-def"><a name="L1064"></a><tt class="py-lineno">1064</tt> <a class="py-toggle" href="#" id="Presence.__init__-toggle" onclick="return toggle('Presence.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">to</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">priority</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">show</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">status</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"> <tt class="py-param">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-param">frm</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">timestamp</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">xmlns</tt><tt class="py-op">=</tt><tt id="link-344" class="py-name"><a title="nbxmpp.protocol.NS_CLIENT" class="py-name" href="#" onclick="return doclink('link-344', 'NS_CLIENT', 'link-34');">NS_CLIENT</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.__init__-expanded"><a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"><tt class="py-docstring"> You can specify recipient, type of message, priority, show and status</tt> </tt>
+<a name="L1069"></a><tt class="py-lineno">1069</tt> <tt class="py-line"><tt class="py-docstring"> values any additional attributes, sender of the presence, timestamp, any</tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"><tt class="py-docstring"> additional payload (f.e. jabber:x:delay element) and namespace in one go.</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"><tt class="py-docstring"> Alternatively you can pass in the other XML object as the 'node'</tt> </tt>
+<a name="L1072"></a><tt class="py-lineno">1072</tt> <tt class="py-line"><tt class="py-docstring"> parameted to replicate it as presence</tt> </tt>
+<a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"> <tt id="link-345" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-345', 'Protocol', 'link-309');">Protocol</a></tt><tt class="py-op">.</tt><tt id="link-346" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -1086,129 +1324,129 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-304', '__init__', 'link-206');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'presence'</tt><tt class="py-op">,</tt> <tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">to</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">frm</tt><tt class="py-op">=</tt><tt class="py-name">frm</tt><tt class="py-op">,</tt> </tt>
-<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-name">payload</tt><tt class="py-op">,</tt> <tt class="py-name">timestamp</tt><tt class="py-op">=</tt><tt class="py-name">timestamp</tt><tt class="py-op">,</tt> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
-<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">priority</tt><tt class="py-op">:</tt> </tt>
-<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-305" class="py-name" targets="Method nbxmpp.protocol.Presence.setPriority()=nbxmpp.protocol.Presence-class.html#setPriority"><a title="nbxmpp.protocol.Presence.setPriority" class="py-name" href="#" onclick="return doclink('link-305', 'setPriority', 'link-305');">setPriority</a></tt><tt class="py-op">(</tt><tt class="py-name">priority</tt><tt class="py-op">)</tt> </tt>
-<a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">show</tt><tt class="py-op">:</tt> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-306" class="py-name" targets="Method nbxmpp.protocol.Presence.setShow()=nbxmpp.protocol.Presence-class.html#setShow"><a title="nbxmpp.protocol.Presence.setShow" class="py-name" href="#" onclick="return doclink('link-306', 'setShow', 'link-306');">setShow</a></tt><tt class="py-op">(</tt><tt class="py-name">show</tt><tt class="py-op">)</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">status</tt><tt class="py-op">:</tt> </tt>
-<a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-307" class="py-name" targets="Method nbxmpp.protocol.Presence.setStatus()=nbxmpp.protocol.Presence-class.html#setStatus"><a title="nbxmpp.protocol.Presence.setStatus" class="py-name" href="#" onclick="return doclink('link-307', 'setStatus', 'link-307');">setStatus</a></tt><tt class="py-op">(</tt><tt class="py-name">status</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"> </tt>
-<a name="Presence.getPriority"></a><div id="Presence.getPriority-def"><a name="L839"></a><tt class="py-lineno"> 839</tt> <a class="py-toggle" href="#" id="Presence.getPriority-toggle" onclick="return toggle('Presence.getPriority');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getPriority">getPriority</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.getPriority-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getPriority-expanded"><a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"><tt class="py-docstring"> Return the priority of the message</tt> </tt>
-<a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-308" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-308', 'getTagData', 'link-272');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'priority'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"> </tt>
-<a name="Presence.getShow"></a><div id="Presence.getShow-def"><a name="L845"></a><tt class="py-lineno"> 845</tt> <a class="py-toggle" href="#" id="Presence.getShow-toggle" onclick="return toggle('Presence.getShow');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getShow">getShow</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.getShow-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getShow-expanded"><a name="L846"></a><tt class="py-lineno"> 846</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</tt> <tt class="py-line"><tt class="py-docstring"> Return the show value of the message</tt> </tt>
-<a name="L848"></a><tt class="py-lineno"> 848</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L849"></a><tt class="py-lineno"> 849</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-309" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-309', 'getTagData', 'link-272');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'show'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"> </tt>
-<a name="Presence.getStatus"></a><div id="Presence.getStatus-def"><a name="L851"></a><tt class="py-lineno"> 851</tt> <a class="py-toggle" href="#" id="Presence.getStatus-toggle" onclick="return toggle('Presence.getStatus');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getStatus">getStatus</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.getStatus-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getStatus-expanded"><a name="L852"></a><tt class="py-lineno"> 852</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L853"></a><tt class="py-lineno"> 853</tt> <tt class="py-line"><tt class="py-docstring"> Return the status string of the message</tt> </tt>
-<a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-310" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-310', 'getTagData', 'link-272');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'status'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"> </tt>
-<a name="Presence.setPriority"></a><div id="Presence.setPriority-def"><a name="L857"></a><tt class="py-lineno"> 857</tt> <a class="py-toggle" href="#" id="Presence.setPriority-toggle" onclick="return toggle('Presence.setPriority');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#setPriority">setPriority</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.setPriority-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.setPriority-expanded"><a name="L858"></a><tt class="py-lineno"> 858</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt> <tt class="py-line"><tt class="py-docstring"> Set the priority of the message</tt> </tt>
-<a name="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L861"></a><tt class="py-lineno"> 861</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-311" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-311', 'setTagData', 'link-278');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'priority'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"> </tt>
-<a name="Presence.setShow"></a><div id="Presence.setShow-def"><a name="L863"></a><tt class="py-lineno"> 863</tt> <a class="py-toggle" href="#" id="Presence.setShow-toggle" onclick="return toggle('Presence.setShow');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#setShow">setShow</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.setShow-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.setShow-expanded"><a name="L864"></a><tt class="py-lineno"> 864</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"><tt class="py-docstring"> Set the show value of the message</tt> </tt>
-<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-312" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-312', 'setTagData', 'link-278');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'show'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"> </tt>
-<a name="Presence.setStatus"></a><div id="Presence.setStatus-def"><a name="L869"></a><tt class="py-lineno"> 869</tt> <a class="py-toggle" href="#" id="Presence.setStatus-toggle" onclick="return toggle('Presence.setStatus');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#setStatus">setStatus</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.setStatus-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.setStatus-expanded"><a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt> <tt class="py-line"><tt class="py-docstring"> Set the status string of the message</tt> </tt>
-<a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-313" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-313', 'setTagData', 'link-278');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'status'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L874"></a><tt class="py-lineno"> 874</tt> <tt class="py-line"> </tt>
-<a name="Presence._muc_getItemAttr"></a><div id="Presence._muc_getItemAttr-def"><a name="L875"></a><tt class="py-lineno"> 875</tt> <a class="py-toggle" href="#" id="Presence._muc_getItemAttr-toggle" onclick="return toggle('Presence._muc_getItemAttr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#_muc_getItemAttr">_muc_getItemAttr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence._muc_getItemAttr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence._muc_getItemAttr-expanded"><a name="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">xtag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-314" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-314', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xtag</tt><tt class="py-op">.</tt><tt id="link-315" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-315', 'getNamespace', 'link-263');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt id="link-316" class="py-name"><a title="nbxmpp.protocol.NS_MUC_USER" class="py-name" href="#" onclick="return doclink('link-316', 'NS_MUC_USER', 'link-82');">NS_MUC_USER</a></tt><tt class="py-op">,</tt> <tt id="link-317" class="py-name"><a title="nbxmpp.protocol.NS_MUC_ADMIN" class="py-name" href="#" onclick="return doclink('link-317', 'NS_MUC_ADMIN', 'link-84');">NS_MUC_ADMIN</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L878"></a><tt class="py-lineno"> 878</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xtag</tt><tt class="py-op">.</tt><tt id="link-318" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-318', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-319" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-319', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"> </tt>
-<a name="Presence._muc_getSubTagDataAttr"></a><div id="Presence._muc_getSubTagDataAttr-def"><a name="L882"></a><tt class="py-lineno"> 882</tt> <a class="py-toggle" href="#" id="Presence._muc_getSubTagDataAttr-toggle" onclick="return toggle('Presence._muc_getSubTagDataAttr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#_muc_getSubTagDataAttr">_muc_getSubTagDataAttr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence._muc_getSubTagDataAttr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence._muc_getSubTagDataAttr-expanded"><a name="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">xtag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-320" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-320', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xtag</tt><tt class="py-op">.</tt><tt id="link-321" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-321', 'getNamespace', 'link-263');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt id="link-322" class="py-name"><a title="nbxmpp.protocol.NS_MUC_USER" class="py-name" href="#" onclick="return doclink('link-322', 'NS_MUC_USER', 'link-82');">NS_MUC_USER</a></tt><tt class="py-op">,</tt> <tt id="link-323" class="py-name"><a title="nbxmpp.protocol.NS_MUC_ADMIN" class="py-name" href="#" onclick="return doclink('link-323', 'NS_MUC_ADMIN', 'link-84');">NS_MUC_ADMIN</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xtag</tt><tt class="py-op">.</tt><tt id="link-324" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-324', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L887"></a><tt class="py-lineno"> 887</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">cchild</tt> <tt class="py-keyword">in</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-325" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-325', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">cchild</tt><tt class="py-op">.</tt><tt id="link-326" class="py-name"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-326', 'getData', 'link-240');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">cchild</tt><tt class="py-op">.</tt><tt id="link-327" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-327', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
-<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"> </tt>
-<a name="Presence.getRole"></a><div id="Presence.getRole-def"><a name="L891"></a><tt class="py-lineno"> 891</tt> <a class="py-toggle" href="#" id="Presence.getRole-toggle" onclick="return toggle('Presence.getRole');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getRole">getRole</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.getRole-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getRole-expanded"><a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"><tt class="py-docstring"> Return the presence role (for groupchat)</tt> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-328" class="py-name" targets="Method nbxmpp.protocol.Presence._muc_getItemAttr()=nbxmpp.protocol.Presence-class.html#_muc_getItemAttr"><a title="nbxmpp.protocol.Presence._muc_getItemAttr" class="py-name" href="#" onclick="return doclink('link-328', '_muc_getItemAttr', 'link-328');">_muc_getItemAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">,</tt> <tt class="py-string">'role'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"> </tt>
-<a name="Presence.getAffiliation"></a><div id="Presence.getAffiliation-def"><a name="L897"></a><tt class="py-lineno"> 897</tt> <a class="py-toggle" href="#" id="Presence.getAffiliation-toggle" onclick="return toggle('Presence.getAffiliation');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getAffiliation">getAffiliation</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.getAffiliation-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getAffiliation-expanded"><a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"><tt class="py-docstring"> Return the presence affiliation (for groupchat)</tt> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-329" class="py-name"><a title="nbxmpp.protocol.Presence._muc_getItemAttr" class="py-name" href="#" onclick="return doclink('link-329', '_muc_getItemAttr', 'link-328');">_muc_getItemAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">,</tt> <tt class="py-string">'affiliation'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"> </tt>
-<a name="Presence.getNewNick"></a><div id="Presence.getNewNick-def"><a name="L903"></a><tt class="py-lineno"> 903</tt> <a class="py-toggle" href="#" id="Presence.getNewNick-toggle" onclick="return toggle('Presence.getNewNick');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getNewNick">getNewNick</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.getNewNick-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getNewNick-expanded"><a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"><tt class="py-docstring"> Return the status code of the presence (for groupchat)</tt> </tt>
-<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L907"></a><tt class="py-lineno"> 907</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="nbxmpp.protocol.Presence._muc_getItemAttr" class="py-name" href="#" onclick="return doclink('link-330', '_muc_getItemAttr', 'link-328');">_muc_getItemAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">,</tt> <tt class="py-string">'nick'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"> </tt>
-<a name="Presence.getJid"></a><div id="Presence.getJid-def"><a name="L909"></a><tt class="py-lineno"> 909</tt> <a class="py-toggle" href="#" id="Presence.getJid-toggle" onclick="return toggle('Presence.getJid');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getJid">getJid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.getJid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getJid-expanded"><a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"><tt class="py-docstring"> Return the presence jid (for groupchat)</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-331" class="py-name"><a title="nbxmpp.protocol.Presence._muc_getItemAttr" class="py-name" href="#" onclick="return doclink('link-331', '_muc_getItemAttr', 'link-328');">_muc_getItemAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">,</tt> <tt class="py-string">'jid'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"> </tt>
-<a name="Presence.getReason"></a><div id="Presence.getReason-def"><a name="L915"></a><tt class="py-lineno"> 915</tt> <a class="py-toggle" href="#" id="Presence.getReason-toggle" onclick="return toggle('Presence.getReason');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getReason">getReason</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.getReason-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getReason-expanded"><a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"><tt class="py-docstring"> Returns the reason of the presence (for groupchat)</tt> </tt>
-<a name="L918"></a><tt class="py-lineno"> 918</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-332" class="py-name" targets="Method nbxmpp.protocol.Presence._muc_getSubTagDataAttr()=nbxmpp.protocol.Presence-class.html#_muc_getSubTagDataAttr"><a title="nbxmpp.protocol.Presence._muc_getSubTagDataAttr" class="py-name" href="#" onclick="return doclink('link-332', '_muc_getSubTagDataAttr', 'link-332');">_muc_getSubTagDataAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'reason'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> </tt>
-<a name="Presence.getActor"></a><div id="Presence.getActor-def"><a name="L921"></a><tt class="py-lineno"> 921</tt> <a class="py-toggle" href="#" id="Presence.getActor-toggle" onclick="return toggle('Presence.getActor');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getActor">getActor</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.getActor-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getActor-expanded"><a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L923"></a><tt class="py-lineno"> 923</tt> <tt class="py-line"><tt class="py-docstring"> Return the reason of the presence (for groupchat)</tt> </tt>
-<a name="L924"></a><tt class="py-lineno"> 924</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-333" class="py-name"><a title="nbxmpp.protocol.Presence._muc_getSubTagDataAttr" class="py-name" href="#" onclick="return doclink('link-333', '_muc_getSubTagDataAttr', 'link-332');">_muc_getSubTagDataAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'actor'</tt><tt class="py-op">,</tt> <tt class="py-string">'jid'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L926"></a><tt class="py-lineno"> 926</tt> <tt class="py-line"> </tt>
-<a name="Presence.getStatusCode"></a><div id="Presence.getStatusCode-def"><a name="L927"></a><tt class="py-lineno"> 927</tt> <a class="py-toggle" href="#" id="Presence.getStatusCode-toggle" onclick="return toggle('Presence.getStatusCode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getStatusCode">getStatusCode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Presence.getStatusCode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getStatusCode-expanded"><a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"><tt class="py-docstring"> Return the status code of the presence (for groupchat)</tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"> <tt class="py-name">attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L932"></a><tt class="py-lineno"> 932</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">xtag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-334" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-334', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xtag</tt><tt class="py-op">.</tt><tt id="link-335" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-335', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'status'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L934"></a><tt class="py-lineno"> 934</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-336" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-336', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'code'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">attrs</tt> </tt>
-</div></div><a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"> </tt>
-<a name="Iq"></a><div id="Iq-def"><a name="L937"></a><tt class="py-lineno"> 937</tt> <a class="py-toggle" href="#" id="Iq-toggle" onclick="return toggle('Iq');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html">Iq</a><tt class="py-op">(</tt><tt class="py-base-class">Protocol</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Iq-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Iq-expanded"><a name="L938"></a><tt class="py-lineno"> 938</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"><tt class="py-docstring"> XMPP Iq object - get/set dialog mechanism</tt> </tt>
-<a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"> </tt>
-<a name="Iq.__init__"></a><div id="Iq.__init__-def"><a name="L942"></a><tt class="py-lineno"> 942</tt> <a class="py-toggle" href="#" id="Iq.__init__-toggle" onclick="return toggle('Iq.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">queryNS</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-param">to</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">frm</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"> <tt class="py-param">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">xmlns</tt><tt class="py-op">=</tt><tt id="link-337" class="py-name"><a title="nbxmpp.protocol.NS_CLIENT" class="py-name" href="#" onclick="return doclink('link-337', 'NS_CLIENT', 'link-33');">NS_CLIENT</a></tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Iq.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.__init__-expanded"><a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"><tt class="py-docstring"> You can specify type, query namespace any additional attributes,</tt> </tt>
-<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"><tt class="py-docstring"> recipient of the iq, sender of the iq, any additional payload (f.e.</tt> </tt>
-<a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"><tt class="py-docstring"> jabber:x:data node) and namespace in one go.</tt> </tt>
-<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"><tt class="py-docstring"> Alternatively you can pass in the other XML object as the 'node'</tt> </tt>
-<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"><tt class="py-docstring"> parameted to replicate it as an iq</tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"> <tt id="link-338" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-338', 'Protocol', 'link-267');">Protocol</a></tt><tt class="py-op">.</tt><tt id="link-339" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-346', '__init__', 'link-249');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'presence'</tt><tt class="py-op">,</tt> <tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">to</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">frm</tt><tt class="py-op">=</tt><tt class="py-name">frm</tt><tt class="py-op">,</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-name">payload</tt><tt class="py-op">,</tt> <tt class="py-name">timestamp</tt><tt class="py-op">=</tt><tt class="py-name">timestamp</tt><tt class="py-op">,</tt> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
+<a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">priority</tt><tt class="py-op">:</tt> </tt>
+<a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-347" class="py-name" targets="Method nbxmpp.protocol.Presence.setPriority()=nbxmpp.protocol.Presence-class.html#setPriority"><a title="nbxmpp.protocol.Presence.setPriority" class="py-name" href="#" onclick="return doclink('link-347', 'setPriority', 'link-347');">setPriority</a></tt><tt class="py-op">(</tt><tt class="py-name">priority</tt><tt class="py-op">)</tt> </tt>
+<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">show</tt><tt class="py-op">:</tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-348" class="py-name" targets="Method nbxmpp.protocol.Presence.setShow()=nbxmpp.protocol.Presence-class.html#setShow"><a title="nbxmpp.protocol.Presence.setShow" class="py-name" href="#" onclick="return doclink('link-348', 'setShow', 'link-348');">setShow</a></tt><tt class="py-op">(</tt><tt class="py-name">show</tt><tt class="py-op">)</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">status</tt><tt class="py-op">:</tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-349" class="py-name" targets="Method nbxmpp.protocol.Presence.setStatus()=nbxmpp.protocol.Presence-class.html#setStatus"><a title="nbxmpp.protocol.Presence.setStatus" class="py-name" href="#" onclick="return doclink('link-349', 'setStatus', 'link-349');">setStatus</a></tt><tt class="py-op">(</tt><tt class="py-name">status</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"> </tt>
+<a name="Presence.getPriority"></a><div id="Presence.getPriority-def"><a name="L1083"></a><tt class="py-lineno">1083</tt> <a class="py-toggle" href="#" id="Presence.getPriority-toggle" onclick="return toggle('Presence.getPriority');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getPriority">getPriority</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.getPriority-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getPriority-expanded"><a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"><tt class="py-docstring"> Return the priority of the message</tt> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-350" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-350', 'getTagData', 'link-314');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'priority'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"> </tt>
+<a name="Presence.getShow"></a><div id="Presence.getShow-def"><a name="L1089"></a><tt class="py-lineno">1089</tt> <a class="py-toggle" href="#" id="Presence.getShow-toggle" onclick="return toggle('Presence.getShow');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getShow">getShow</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.getShow-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getShow-expanded"><a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"><tt class="py-docstring"> Return the show value of the message</tt> </tt>
+<a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-351" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-351', 'getTagData', 'link-314');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'show'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"> </tt>
+<a name="Presence.getStatus"></a><div id="Presence.getStatus-def"><a name="L1095"></a><tt class="py-lineno">1095</tt> <a class="py-toggle" href="#" id="Presence.getStatus-toggle" onclick="return toggle('Presence.getStatus');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getStatus">getStatus</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.getStatus-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getStatus-expanded"><a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"><tt class="py-docstring"> Return the status string of the message</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-352" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-352', 'getTagData', 'link-314');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'status'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"> </tt>
+<a name="Presence.setPriority"></a><div id="Presence.setPriority-def"><a name="L1101"></a><tt class="py-lineno">1101</tt> <a class="py-toggle" href="#" id="Presence.setPriority-toggle" onclick="return toggle('Presence.setPriority');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#setPriority">setPriority</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.setPriority-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.setPriority-expanded"><a name="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</tt> <tt class="py-line"><tt class="py-docstring"> Set the priority of the message</tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-353" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-353', 'setTagData', 'link-320');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'priority'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"> </tt>
+<a name="Presence.setShow"></a><div id="Presence.setShow-def"><a name="L1107"></a><tt class="py-lineno">1107</tt> <a class="py-toggle" href="#" id="Presence.setShow-toggle" onclick="return toggle('Presence.setShow');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#setShow">setShow</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.setShow-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.setShow-expanded"><a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"><tt class="py-docstring"> Set the show value of the message</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-354" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-354', 'setTagData', 'link-320');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'show'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"> </tt>
+<a name="Presence.setStatus"></a><div id="Presence.setStatus-def"><a name="L1113"></a><tt class="py-lineno">1113</tt> <a class="py-toggle" href="#" id="Presence.setStatus-toggle" onclick="return toggle('Presence.setStatus');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#setStatus">setStatus</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.setStatus-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.setStatus-expanded"><a name="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"><tt class="py-docstring"> Set the status string of the message</tt> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-355" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-355', 'setTagData', 'link-320');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'status'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"> </tt>
+<a name="Presence._muc_getItemAttr"></a><div id="Presence._muc_getItemAttr-def"><a name="L1119"></a><tt class="py-lineno">1119</tt> <a class="py-toggle" href="#" id="Presence._muc_getItemAttr-toggle" onclick="return toggle('Presence._muc_getItemAttr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#_muc_getItemAttr">_muc_getItemAttr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence._muc_getItemAttr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence._muc_getItemAttr-expanded"><a name="L1120"></a><tt class="py-lineno">1120</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">xtag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-356" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-356', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xtag</tt><tt class="py-op">.</tt><tt id="link-357" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-357', 'getNamespace', 'link-305');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt id="link-358" class="py-name"><a title="nbxmpp.protocol.NS_MUC_USER" class="py-name" href="#" onclick="return doclink('link-358', 'NS_MUC_USER', 'link-85');">NS_MUC_USER</a></tt><tt class="py-op">,</tt> <tt id="link-359" class="py-name"><a title="nbxmpp.protocol.NS_MUC_ADMIN" class="py-name" href="#" onclick="return doclink('link-359', 'NS_MUC_ADMIN', 'link-87');">NS_MUC_ADMIN</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xtag</tt><tt class="py-op">.</tt><tt id="link-360" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-360', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-361" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-361', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"> </tt>
+<a name="Presence._muc_getSubTagDataAttr"></a><div id="Presence._muc_getSubTagDataAttr-def"><a name="L1126"></a><tt class="py-lineno">1126</tt> <a class="py-toggle" href="#" id="Presence._muc_getSubTagDataAttr-toggle" onclick="return toggle('Presence._muc_getSubTagDataAttr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#_muc_getSubTagDataAttr">_muc_getSubTagDataAttr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence._muc_getSubTagDataAttr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence._muc_getSubTagDataAttr-expanded"><a name="L1127"></a><tt class="py-lineno">1127</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">xtag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-362" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-362', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">xtag</tt><tt class="py-op">.</tt><tt id="link-363" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-363', 'getNamespace', 'link-305');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt id="link-364" class="py-name"><a title="nbxmpp.protocol.NS_MUC_USER" class="py-name" href="#" onclick="return doclink('link-364', 'NS_MUC_USER', 'link-85');">NS_MUC_USER</a></tt><tt class="py-op">,</tt> <tt id="link-365" class="py-name"><a title="nbxmpp.protocol.NS_MUC_ADMIN" class="py-name" href="#" onclick="return doclink('link-365', 'NS_MUC_ADMIN', 'link-87');">NS_MUC_ADMIN</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xtag</tt><tt class="py-op">.</tt><tt id="link-366" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-366', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">cchild</tt> <tt class="py-keyword">in</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-367" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-367', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">cchild</tt><tt class="py-op">.</tt><tt id="link-368" class="py-name"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-368', 'getData', 'link-282');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">cchild</tt><tt class="py-op">.</tt><tt id="link-369" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-369', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"> </tt>
+<a name="Presence.getRole"></a><div id="Presence.getRole-def"><a name="L1135"></a><tt class="py-lineno">1135</tt> <a class="py-toggle" href="#" id="Presence.getRole-toggle" onclick="return toggle('Presence.getRole');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getRole">getRole</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.getRole-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getRole-expanded"><a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"><tt class="py-docstring"> Return the presence role (for groupchat)</tt> </tt>
+<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-370" class="py-name" targets="Method nbxmpp.protocol.Presence._muc_getItemAttr()=nbxmpp.protocol.Presence-class.html#_muc_getItemAttr"><a title="nbxmpp.protocol.Presence._muc_getItemAttr" class="py-name" href="#" onclick="return doclink('link-370', '_muc_getItemAttr', 'link-370');">_muc_getItemAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">,</tt> <tt class="py-string">'role'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"> </tt>
+<a name="Presence.getAffiliation"></a><div id="Presence.getAffiliation-def"><a name="L1141"></a><tt class="py-lineno">1141</tt> <a class="py-toggle" href="#" id="Presence.getAffiliation-toggle" onclick="return toggle('Presence.getAffiliation');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getAffiliation">getAffiliation</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.getAffiliation-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getAffiliation-expanded"><a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"><tt class="py-docstring"> Return the presence affiliation (for groupchat)</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-371" class="py-name"><a title="nbxmpp.protocol.Presence._muc_getItemAttr" class="py-name" href="#" onclick="return doclink('link-371', '_muc_getItemAttr', 'link-370');">_muc_getItemAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">,</tt> <tt class="py-string">'affiliation'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1146"></a><tt class="py-lineno">1146</tt> <tt class="py-line"> </tt>
+<a name="Presence.getNewNick"></a><div id="Presence.getNewNick-def"><a name="L1147"></a><tt class="py-lineno">1147</tt> <a class="py-toggle" href="#" id="Presence.getNewNick-toggle" onclick="return toggle('Presence.getNewNick');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getNewNick">getNewNick</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.getNewNick-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getNewNick-expanded"><a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"><tt class="py-docstring"> Return the status code of the presence (for groupchat)</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1151"></a><tt class="py-lineno">1151</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-372" class="py-name"><a title="nbxmpp.protocol.Presence._muc_getItemAttr" class="py-name" href="#" onclick="return doclink('link-372', '_muc_getItemAttr', 'link-370');">_muc_getItemAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">,</tt> <tt class="py-string">'nick'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> </tt>
+<a name="Presence.getJid"></a><div id="Presence.getJid-def"><a name="L1153"></a><tt class="py-lineno">1153</tt> <a class="py-toggle" href="#" id="Presence.getJid-toggle" onclick="return toggle('Presence.getJid');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getJid">getJid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.getJid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getJid-expanded"><a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"><tt class="py-docstring"> Return the presence jid (for groupchat)</tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-373" class="py-name"><a title="nbxmpp.protocol.Presence._muc_getItemAttr" class="py-name" href="#" onclick="return doclink('link-373', '_muc_getItemAttr', 'link-370');">_muc_getItemAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">,</tt> <tt class="py-string">'jid'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"> </tt>
+<a name="Presence.getReason"></a><div id="Presence.getReason-def"><a name="L1159"></a><tt class="py-lineno">1159</tt> <a class="py-toggle" href="#" id="Presence.getReason-toggle" onclick="return toggle('Presence.getReason');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getReason">getReason</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.getReason-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getReason-expanded"><a name="L1160"></a><tt class="py-lineno">1160</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt> <tt class="py-line"><tt class="py-docstring"> Returns the reason of the presence (for groupchat)</tt> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-374" class="py-name" targets="Method nbxmpp.protocol.Presence._muc_getSubTagDataAttr()=nbxmpp.protocol.Presence-class.html#_muc_getSubTagDataAttr"><a title="nbxmpp.protocol.Presence._muc_getSubTagDataAttr" class="py-name" href="#" onclick="return doclink('link-374', '_muc_getSubTagDataAttr', 'link-374');">_muc_getSubTagDataAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'reason'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1164"></a><tt class="py-lineno">1164</tt> <tt class="py-line"> </tt>
+<a name="Presence.getActor"></a><div id="Presence.getActor-def"><a name="L1165"></a><tt class="py-lineno">1165</tt> <a class="py-toggle" href="#" id="Presence.getActor-toggle" onclick="return toggle('Presence.getActor');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getActor">getActor</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.getActor-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getActor-expanded"><a name="L1166"></a><tt class="py-lineno">1166</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt> <tt class="py-line"><tt class="py-docstring"> Return the reason of the presence (for groupchat)</tt> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-375" class="py-name"><a title="nbxmpp.protocol.Presence._muc_getSubTagDataAttr" class="py-name" href="#" onclick="return doclink('link-375', '_muc_getSubTagDataAttr', 'link-374');">_muc_getSubTagDataAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'actor'</tt><tt class="py-op">,</tt> <tt class="py-string">'jid'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"> </tt>
+<a name="Presence.getStatusCode"></a><div id="Presence.getStatusCode-def"><a name="L1171"></a><tt class="py-lineno">1171</tt> <a class="py-toggle" href="#" id="Presence.getStatusCode-toggle" onclick="return toggle('Presence.getStatusCode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Presence-class.html#getStatusCode">getStatusCode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Presence.getStatusCode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Presence.getStatusCode-expanded"><a name="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"><tt class="py-docstring"> Return the status code of the presence (for groupchat)</tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt> <tt class="py-line"> <tt class="py-name">attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">xtag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-376" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-376', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xtag</tt><tt class="py-op">.</tt><tt id="link-377" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-377', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'status'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-378" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-378', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'code'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">attrs</tt> </tt>
+</div></div><a name="L1180"></a><tt class="py-lineno">1180</tt> <tt class="py-line"> </tt>
+<a name="Iq"></a><div id="Iq-def"><a name="L1181"></a><tt class="py-lineno">1181</tt> <a class="py-toggle" href="#" id="Iq-toggle" onclick="return toggle('Iq');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html">Iq</a><tt class="py-op">(</tt><tt class="py-base-class">Protocol</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Iq-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Iq-expanded"><a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1183"></a><tt class="py-lineno">1183</tt> <tt class="py-line"><tt class="py-docstring"> XMPP Iq object - get/set dialog mechanism</tt> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"> </tt>
+<a name="Iq.__init__"></a><div id="Iq.__init__-def"><a name="L1186"></a><tt class="py-lineno">1186</tt> <a class="py-toggle" href="#" id="Iq.__init__-toggle" onclick="return toggle('Iq.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">queryNS</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-param">to</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">frm</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"> <tt class="py-param">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">xmlns</tt><tt class="py-op">=</tt><tt id="link-379" class="py-name"><a title="nbxmpp.protocol.NS_CLIENT" class="py-name" href="#" onclick="return doclink('link-379', 'NS_CLIENT', 'link-34');">NS_CLIENT</a></tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Iq.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.__init__-expanded"><a name="L1188"></a><tt class="py-lineno">1188</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"><tt class="py-docstring"> You can specify type, query namespace any additional attributes,</tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"><tt class="py-docstring"> recipient of the iq, sender of the iq, any additional payload (f.e.</tt> </tt>
+<a name="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"><tt class="py-docstring"> jabber:x:data node) and namespace in one go.</tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1193"></a><tt class="py-lineno">1193</tt> <tt class="py-line"><tt class="py-docstring"> Alternatively you can pass in the other XML object as the 'node'</tt> </tt>
+<a name="L1194"></a><tt class="py-lineno">1194</tt> <tt class="py-line"><tt class="py-docstring"> parameted to replicate it as an iq</tt> </tt>
+<a name="L1195"></a><tt class="py-lineno">1195</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1196"></a><tt class="py-lineno">1196</tt> <tt class="py-line"> <tt id="link-380" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-380', 'Protocol', 'link-309');">Protocol</a></tt><tt class="py-op">.</tt><tt id="link-381" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -1250,121 +1488,119 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-339', '__init__', 'link-206');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'iq'</tt><tt class="py-op">,</tt> <tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">to</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">frm</tt><tt class="py-op">=</tt><tt class="py-name">frm</tt><tt class="py-op">,</tt> </tt>
-<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
-<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">payload</tt><tt class="py-op">:</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-340" class="py-name" targets="Method nbxmpp.protocol.Iq.setQueryPayload()=nbxmpp.protocol.Iq-class.html#setQueryPayload"><a title="nbxmpp.protocol.Iq.setQueryPayload" class="py-name" href="#" onclick="return doclink('link-340', 'setQueryPayload', 'link-340');">setQueryPayload</a></tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
-<a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">queryNS</tt><tt class="py-op">:</tt> </tt>
-<a name="L957"></a><tt class="py-lineno"> 957</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-341" class="py-name" targets="Method nbxmpp.protocol.Iq.setQueryNS()=nbxmpp.protocol.Iq-class.html#setQueryNS"><a title="nbxmpp.protocol.Iq.setQueryNS" class="py-name" href="#" onclick="return doclink('link-341', 'setQueryNS', 'link-341');">setQueryNS</a></tt><tt class="py-op">(</tt><tt class="py-name">queryNS</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"> </tt>
-<a name="Iq.getQuery"></a><div id="Iq.getQuery-def"><a name="L959"></a><tt class="py-lineno"> 959</tt> <a class="py-toggle" href="#" id="Iq.getQuery-toggle" onclick="return toggle('Iq.getQuery');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#getQuery">getQuery</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Iq.getQuery-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.getQuery-expanded"><a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"><tt class="py-docstring"> Return the IQ's child element if it exists, None otherwise.</tt> </tt>
-<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L963"></a><tt class="py-lineno"> 963</tt> <tt class="py-line"> <tt class="py-name">children</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-342" class="py-name"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-342', 'getChildren', 'link-237');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L964"></a><tt class="py-lineno"> 964</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">children</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-343" class="py-name"><a title="nbxmpp.protocol.DataField.getType
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-381', '__init__', 'link-249');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'iq'</tt><tt class="py-op">,</tt> <tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">to</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">=</tt><tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">frm</tt><tt class="py-op">=</tt><tt class="py-name">frm</tt><tt class="py-op">,</tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt class="py-name">xmlns</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">payload</tt><tt class="py-op">:</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-382" class="py-name" targets="Method nbxmpp.protocol.Iq.setQueryPayload()=nbxmpp.protocol.Iq-class.html#setQueryPayload"><a title="nbxmpp.protocol.Iq.setQueryPayload" class="py-name" href="#" onclick="return doclink('link-382', 'setQueryPayload', 'link-382');">setQueryPayload</a></tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
+<a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">queryNS</tt><tt class="py-op">:</tt> </tt>
+<a name="L1201"></a><tt class="py-lineno">1201</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-383" class="py-name" targets="Method nbxmpp.protocol.Iq.setQueryNS()=nbxmpp.protocol.Iq-class.html#setQueryNS"><a title="nbxmpp.protocol.Iq.setQueryNS" class="py-name" href="#" onclick="return doclink('link-383', 'setQueryNS', 'link-383');">setQueryNS</a></tt><tt class="py-op">(</tt><tt class="py-name">queryNS</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"> </tt>
+<a name="Iq.getQuery"></a><div id="Iq.getQuery-def"><a name="L1203"></a><tt class="py-lineno">1203</tt> <a class="py-toggle" href="#" id="Iq.getQuery-toggle" onclick="return toggle('Iq.getQuery');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#getQuery">getQuery</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Iq.getQuery-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.getQuery-expanded"><a name="L1204"></a><tt class="py-lineno">1204</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"><tt class="py-docstring"> Return the IQ's child element if it exists, None otherwise.</tt> </tt>
+<a name="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"> <tt class="py-name">children</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-384', 'getChildren', 'link-279');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">children</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-385" class="py-name"><a title="nbxmpp.protocol.DataField.getType
nbxmpp.protocol.DataForm.getType
-nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-343', 'getType', 'link-170');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'error'</tt> <tt class="py-keyword">and</tt> \ </tt>
-<a name="L965"></a><tt class="py-lineno"> 965</tt> <tt class="py-line"> <tt class="py-name">children</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-344" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-344', 'getName', 'link-238');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'error'</tt><tt class="py-op">:</tt> </tt>
-<a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">children</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"> </tt>
-<a name="Iq.getQueryNS"></a><div id="Iq.getQueryNS-def"><a name="L968"></a><tt class="py-lineno"> 968</tt> <a class="py-toggle" href="#" id="Iq.getQueryNS-toggle" onclick="return toggle('Iq.getQueryNS');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#getQueryNS">getQueryNS</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Iq.getQueryNS-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.getQueryNS-expanded"><a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"><tt class="py-docstring"> Return the namespace of the 'query' child element</tt> </tt>
-<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"> <tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-345" class="py-name" targets="Method nbxmpp.protocol.Iq.getQuery()=nbxmpp.protocol.Iq-class.html#getQuery"><a title="nbxmpp.protocol.Iq.getQuery" class="py-name" href="#" onclick="return doclink('link-345', 'getQuery', 'link-345');">getQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L973"></a><tt class="py-lineno"> 973</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">:</tt> </tt>
-<a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-346" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-346', 'getNamespace', 'link-263');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"> </tt>
-<a name="Iq.getQuerynode"></a><div id="Iq.getQuerynode-def"><a name="L976"></a><tt class="py-lineno"> 976</tt> <a class="py-toggle" href="#" id="Iq.getQuerynode-toggle" onclick="return toggle('Iq.getQuerynode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#getQuerynode">getQuerynode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Iq.getQuerynode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.getQuerynode-expanded"><a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"><tt class="py-docstring"> Return the 'node' attribute value of the 'query' child element</tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"> <tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-347" class="py-name"><a title="nbxmpp.protocol.Iq.getQuery" class="py-name" href="#" onclick="return doclink('link-347', 'getQuery', 'link-345');">getQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">:</tt> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-348" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-348', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'node'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"> </tt>
-<a name="Iq.getQueryPayload"></a><div id="Iq.getQueryPayload-def"><a name="L984"></a><tt class="py-lineno"> 984</tt> <a class="py-toggle" href="#" id="Iq.getQueryPayload-toggle" onclick="return toggle('Iq.getQueryPayload');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#getQueryPayload">getQueryPayload</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Iq.getQueryPayload-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.getQueryPayload-expanded"><a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"><tt class="py-docstring"> Return the 'query' child element payload</tt> </tt>
-<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"> <tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-349" class="py-name"><a title="nbxmpp.protocol.Iq.getQuery" class="py-name" href="#" onclick="return doclink('link-349', 'getQuery', 'link-345');">getQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L989"></a><tt class="py-lineno"> 989</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">:</tt> </tt>
-<a name="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-350" class="py-name" targets="Method nbxmpp.simplexml.Node.getPayload()=nbxmpp.simplexml.Node-class.html#getPayload"><a title="nbxmpp.simplexml.Node.getPayload" class="py-name" href="#" onclick="return doclink('link-350', 'getPayload', 'link-350');">getPayload</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"> </tt>
-<a name="Iq.getQueryChildren"></a><div id="Iq.getQueryChildren-def"><a name="L992"></a><tt class="py-lineno"> 992</tt> <a class="py-toggle" href="#" id="Iq.getQueryChildren-toggle" onclick="return toggle('Iq.getQueryChildren');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#getQueryChildren">getQueryChildren</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Iq.getQueryChildren-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.getQueryChildren-expanded"><a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L994"></a><tt class="py-lineno"> 994</tt> <tt class="py-line"><tt class="py-docstring"> Return the 'query' child element child nodes</tt> </tt>
-<a name="L995"></a><tt class="py-lineno"> 995</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"> <tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-351" class="py-name"><a title="nbxmpp.protocol.Iq.getQuery" class="py-name" href="#" onclick="return doclink('link-351', 'getQuery', 'link-345');">getQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">:</tt> </tt>
-<a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-352" class="py-name"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-352', 'getChildren', 'link-237');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L999"></a><tt class="py-lineno"> 999</tt> <tt class="py-line"> </tt>
-<a name="Iq.setQuery"></a><div id="Iq.setQuery-def"><a name="L1000"></a><tt class="py-lineno">1000</tt> <a class="py-toggle" href="#" id="Iq.setQuery-toggle" onclick="return toggle('Iq.setQuery');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#setQuery">setQuery</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Iq.setQuery-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.setQuery-expanded"><a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"><tt class="py-docstring"> Change the name of the query node, creating it if needed. Keep the</tt> </tt>
-<a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"><tt class="py-docstring"> existing name if none is given (use 'query' if it's a creation).</tt> </tt>
-<a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"><tt class="py-docstring"> Return the query node.</tt> </tt>
-<a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt> <tt class="py-line"> <tt class="py-name">query</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-353" class="py-name"><a title="nbxmpp.protocol.Iq.getQuery" class="py-name" href="#" onclick="return doclink('link-353', 'getQuery', 'link-345');">getQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1007"></a><tt class="py-lineno">1007</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">query</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> <tt class="py-name">query</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-354" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-354', 'addChild', 'link-259');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'query'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-355" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-355', 'name', 'link-165');">name</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"> <tt class="py-name">query</tt><tt class="py-op">.</tt><tt id="link-356" class="py-name" targets="Method nbxmpp.simplexml.Node.setName()=nbxmpp.simplexml.Node-class.html#setName"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-356', 'setName', 'link-356');">setName</a></tt><tt class="py-op">(</tt><tt id="link-357" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-357', 'name', 'link-165');">name</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">query</tt> </tt>
-</div><a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> </tt>
-<a name="Iq.setQueryNS"></a><div id="Iq.setQueryNS-def"><a name="L1013"></a><tt class="py-lineno">1013</tt> <a class="py-toggle" href="#" id="Iq.setQueryNS-toggle" onclick="return toggle('Iq.setQueryNS');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#setQueryNS">setQueryNS</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">namespace</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Iq.setQueryNS-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.setQueryNS-expanded"><a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"><tt class="py-docstring"> Set the namespace of the 'query' child element</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-358" class="py-name" targets="Method nbxmpp.protocol.Iq.setQuery()=nbxmpp.protocol.Iq-class.html#setQuery"><a title="nbxmpp.protocol.Iq.setQuery" class="py-name" href="#" onclick="return doclink('link-358', 'setQuery', 'link-358');">setQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-359" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-359', 'setNamespace', 'link-207');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">namespace</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"> </tt>
-<a name="Iq.setQueryPayload"></a><div id="Iq.setQueryPayload-def"><a name="L1019"></a><tt class="py-lineno">1019</tt> <a class="py-toggle" href="#" id="Iq.setQueryPayload-toggle" onclick="return toggle('Iq.setQueryPayload');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#setQueryPayload">setQueryPayload</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Iq.setQueryPayload-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.setQueryPayload-expanded"><a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"><tt class="py-docstring"> Set the 'query' child element payload</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-360" class="py-name"><a title="nbxmpp.protocol.Iq.setQuery" class="py-name" href="#" onclick="return doclink('link-360', 'setQuery', 'link-358');">setQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-361" class="py-name" targets="Method nbxmpp.simplexml.Node.setPayload()=nbxmpp.simplexml.Node-class.html#setPayload"><a title="nbxmpp.simplexml.Node.setPayload" class="py-name" href="#" onclick="return doclink('link-361', 'setPayload', 'link-361');">setPayload</a></tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"> </tt>
-<a name="Iq.setQuerynode"></a><div id="Iq.setQuerynode-def"><a name="L1025"></a><tt class="py-lineno">1025</tt> <a class="py-toggle" href="#" id="Iq.setQuerynode-toggle" onclick="return toggle('Iq.setQuerynode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#setQuerynode">setQuerynode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Iq.setQuerynode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.setQuerynode-expanded"><a name="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"><tt class="py-docstring"> Set the 'node' attribute value of the 'query' child element</tt> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-362" class="py-name"><a title="nbxmpp.protocol.Iq.setQuery" class="py-name" href="#" onclick="return doclink('link-362', 'setQuery', 'link-358');">setQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-363" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-363', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'node'</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"> </tt>
-<a name="Iq.buildReply"></a><div id="Iq.buildReply-def"><a name="L1031"></a><tt class="py-lineno">1031</tt> <a class="py-toggle" href="#" id="Iq.buildReply-toggle" onclick="return toggle('Iq.buildReply');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#buildReply">buildReply</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Iq.buildReply-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.buildReply-expanded"><a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"><tt class="py-docstring"> Build and return another Iq object of specified type. The to, from and</tt> </tt>
-<a name="L1034"></a><tt class="py-lineno">1034</tt> <tt class="py-line"><tt class="py-docstring"> query child node of new Iq are pre-set as reply to this Iq.</tt> </tt>
-<a name="L1035"></a><tt class="py-lineno">1035</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"> <tt class="py-name">iq</tt> <tt class="py-op">=</tt> <tt id="link-364" class="py-name" targets="Class nbxmpp.protocol.Iq=nbxmpp.protocol.Iq-class.html"><a title="nbxmpp.protocol.Iq" class="py-name" href="#" onclick="return doclink('link-364', 'Iq', 'link-364');">Iq</a></tt><tt class="py-op">(</tt><tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-365" class="py-name"><a title="nbxmpp.protocol.Protocol.getFrom" class="py-name" href="#" onclick="return doclink('link-365', 'getFrom', 'link-294');">getFrom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">frm</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-366" class="py-name"><a title="nbxmpp.protocol.Protocol.getTo" class="py-name" href="#" onclick="return doclink('link-366', 'getTo', 'link-295');">getTo</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'id'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-367" class="py-name" targets="Method nbxmpp.protocol.Protocol.getID()=nbxmpp.protocol.Protocol-class.html#getID"><a title="nbxmpp.protocol.Protocol.getID" class="py-name" href="#" onclick="return doclink('link-367', 'getID', 'link-367');">getID</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"> <tt class="py-name">iq</tt><tt class="py-op">.</tt><tt id="link-368" class="py-name"><a title="nbxmpp.protocol.Iq.setQuery" class="py-name" href="#" onclick="return doclink('link-368', 'setQuery', 'link-358');">setQuery</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-369" class="py-name"><a title="nbxmpp.protocol.Iq.getQuery" class="py-name" href="#" onclick="return doclink('link-369', 'getQuery', 'link-345');">getQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-370" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-370', 'getName', 'link-238');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-371" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-371', 'setNamespace', 'link-207');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-372" class="py-name" targets="Method nbxmpp.protocol.Iq.getQueryNS()=nbxmpp.protocol.Iq-class.html#getQueryNS"><a title="nbxmpp.protocol.Iq.getQueryNS" class="py-name" href="#" onclick="return doclink('link-372', 'getQueryNS', 'link-372');">getQueryNS</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">iq</tt> </tt>
-</div></div><a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"> </tt>
-<a name="Hashes"></a><div id="Hashes-def"><a name="L1041"></a><tt class="py-lineno">1041</tt> <a class="py-toggle" href="#" id="Hashes-toggle" onclick="return toggle('Hashes');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Hashes-class.html">Hashes</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"><tt class="py-docstring"> Hash elements for various XEPs as defined in XEP-300</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> <tt class="py-string">"""</tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"><tt class="py-string"> RECOMENDED HASH USE:</tt> </tt>
-<a name="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"><tt class="py-string"> Algorithm Support</tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"><tt class="py-string"> MD2 MUST NOT</tt> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"><tt class="py-string"> MD4 MUST NOT</tt> </tt>
-<a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"><tt class="py-string"> MD5 MAY</tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"><tt class="py-string"> SHA-1 MUST</tt> </tt>
-<a name="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"><tt class="py-string"> SHA-256 MUST</tt> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</tt> <tt class="py-line"><tt class="py-string"> SHA-512 SHOULD</tt> </tt>
-<a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"><tt class="py-string"> """</tt> </tt>
-<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"> </tt>
-<a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"> <tt id="link-373" class="py-name" targets="Variable nbxmpp.protocol.Hashes.supported=nbxmpp.protocol.Hashes-class.html#supported"><a title="nbxmpp.protocol.Hashes.supported" class="py-name" href="#" onclick="return doclink('link-373', 'supported', 'link-373');">supported</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'md5'</tt><tt class="py-op">,</tt> <tt class="py-string">'sha-1'</tt><tt class="py-op">,</tt> <tt class="py-string">'sha-256'</tt><tt class="py-op">,</tt> <tt class="py-string">'sha-512'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"> </tt>
-<a name="Hashes.__init__"></a><div id="Hashes.__init__-def"><a name="L1059"></a><tt class="py-lineno">1059</tt> <a class="py-toggle" href="#" id="Hashes.__init__-toggle" onclick="return toggle('Hashes.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Hashes-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nsp</tt><tt class="py-op">=</tt><tt id="link-374" class="py-name"><a title="nbxmpp.protocol.NS_HASHES" class="py-name" href="#" onclick="return doclink('link-374', 'NS_HASHES', 'link-149');">NS_HASHES</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Hashes.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Hashes.__init__-expanded"><a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"> <tt id="link-375" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-375', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-376" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-385', 'getType', 'link-213');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'error'</tt> <tt class="py-keyword">and</tt> \ </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt> <tt class="py-line"> <tt class="py-name">children</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-386" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-386', 'getName', 'link-280');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-string">'error'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1210"></a><tt class="py-lineno">1210</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">children</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1211"></a><tt class="py-lineno">1211</tt> <tt class="py-line"> </tt>
+<a name="Iq.getQueryNS"></a><div id="Iq.getQueryNS-def"><a name="L1212"></a><tt class="py-lineno">1212</tt> <a class="py-toggle" href="#" id="Iq.getQueryNS-toggle" onclick="return toggle('Iq.getQueryNS');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#getQueryNS">getQueryNS</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Iq.getQueryNS-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.getQueryNS-expanded"><a name="L1213"></a><tt class="py-lineno">1213</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt> <tt class="py-line"><tt class="py-docstring"> Return the namespace of the 'query' child element</tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt> <tt class="py-line"> <tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-387" class="py-name" targets="Method nbxmpp.protocol.Iq.getQuery()=nbxmpp.protocol.Iq-class.html#getQuery"><a title="nbxmpp.protocol.Iq.getQuery" class="py-name" href="#" onclick="return doclink('link-387', 'getQuery', 'link-387');">getQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">:</tt> </tt>
+<a name="L1218"></a><tt class="py-lineno">1218</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-388" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-388', 'getNamespace', 'link-305');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1219"></a><tt class="py-lineno">1219</tt> <tt class="py-line"> </tt>
+<a name="Iq.getQuerynode"></a><div id="Iq.getQuerynode-def"><a name="L1220"></a><tt class="py-lineno">1220</tt> <a class="py-toggle" href="#" id="Iq.getQuerynode-toggle" onclick="return toggle('Iq.getQuerynode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#getQuerynode">getQuerynode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Iq.getQuerynode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.getQuerynode-expanded"><a name="L1221"></a><tt class="py-lineno">1221</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1222"></a><tt class="py-lineno">1222</tt> <tt class="py-line"><tt class="py-docstring"> Return the 'node' attribute value of the 'query' child element</tt> </tt>
+<a name="L1223"></a><tt class="py-lineno">1223</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1224"></a><tt class="py-lineno">1224</tt> <tt class="py-line"> <tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-389" class="py-name"><a title="nbxmpp.protocol.Iq.getQuery" class="py-name" href="#" onclick="return doclink('link-389', 'getQuery', 'link-387');">getQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">:</tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-390" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-390', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'node'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1227"></a><tt class="py-lineno">1227</tt> <tt class="py-line"> </tt>
+<a name="Iq.getQueryPayload"></a><div id="Iq.getQueryPayload-def"><a name="L1228"></a><tt class="py-lineno">1228</tt> <a class="py-toggle" href="#" id="Iq.getQueryPayload-toggle" onclick="return toggle('Iq.getQueryPayload');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#getQueryPayload">getQueryPayload</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Iq.getQueryPayload-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.getQueryPayload-expanded"><a name="L1229"></a><tt class="py-lineno">1229</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1230"></a><tt class="py-lineno">1230</tt> <tt class="py-line"><tt class="py-docstring"> Return the 'query' child element payload</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1232"></a><tt class="py-lineno">1232</tt> <tt class="py-line"> <tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-391" class="py-name"><a title="nbxmpp.protocol.Iq.getQuery" class="py-name" href="#" onclick="return doclink('link-391', 'getQuery', 'link-387');">getQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1233"></a><tt class="py-lineno">1233</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">:</tt> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-392" class="py-name" targets="Method nbxmpp.simplexml.Node.getPayload()=nbxmpp.simplexml.Node-class.html#getPayload"><a title="nbxmpp.simplexml.Node.getPayload" class="py-name" href="#" onclick="return doclink('link-392', 'getPayload', 'link-392');">getPayload</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1235"></a><tt class="py-lineno">1235</tt> <tt class="py-line"> </tt>
+<a name="Iq.getQueryChildren"></a><div id="Iq.getQueryChildren-def"><a name="L1236"></a><tt class="py-lineno">1236</tt> <a class="py-toggle" href="#" id="Iq.getQueryChildren-toggle" onclick="return toggle('Iq.getQueryChildren');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#getQueryChildren">getQueryChildren</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Iq.getQueryChildren-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.getQueryChildren-expanded"><a name="L1237"></a><tt class="py-lineno">1237</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1238"></a><tt class="py-lineno">1238</tt> <tt class="py-line"><tt class="py-docstring"> Return the 'query' child element child nodes</tt> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt> <tt class="py-line"> <tt class="py-name">tag</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-393" class="py-name"><a title="nbxmpp.protocol.Iq.getQuery" class="py-name" href="#" onclick="return doclink('link-393', 'getQuery', 'link-387');">getQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">:</tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-394" class="py-name"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-394', 'getChildren', 'link-279');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1243"></a><tt class="py-lineno">1243</tt> <tt class="py-line"> </tt>
+<a name="Iq.setQuery"></a><div id="Iq.setQuery-def"><a name="L1244"></a><tt class="py-lineno">1244</tt> <a class="py-toggle" href="#" id="Iq.setQuery-toggle" onclick="return toggle('Iq.setQuery');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#setQuery">setQuery</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Iq.setQuery-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.setQuery-expanded"><a name="L1245"></a><tt class="py-lineno">1245</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1246"></a><tt class="py-lineno">1246</tt> <tt class="py-line"><tt class="py-docstring"> Change the name of the query node, creating it if needed. Keep the</tt> </tt>
+<a name="L1247"></a><tt class="py-lineno">1247</tt> <tt class="py-line"><tt class="py-docstring"> existing name if none is given (use 'query' if it's a creation).</tt> </tt>
+<a name="L1248"></a><tt class="py-lineno">1248</tt> <tt class="py-line"><tt class="py-docstring"> Return the query node.</tt> </tt>
+<a name="L1249"></a><tt class="py-lineno">1249</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1250"></a><tt class="py-lineno">1250</tt> <tt class="py-line"> <tt class="py-name">query</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-395" class="py-name"><a title="nbxmpp.protocol.Iq.getQuery" class="py-name" href="#" onclick="return doclink('link-395', 'getQuery', 'link-387');">getQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1251"></a><tt class="py-lineno">1251</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">query</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1252"></a><tt class="py-lineno">1252</tt> <tt class="py-line"> <tt class="py-name">query</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-396" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-396', 'addChild', 'link-301');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'query'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1253"></a><tt class="py-lineno">1253</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1254"></a><tt class="py-lineno">1254</tt> <tt class="py-line"> <tt class="py-name">query</tt><tt class="py-op">.</tt><tt id="link-397" class="py-name" targets="Method nbxmpp.simplexml.Node.setName()=nbxmpp.simplexml.Node-class.html#setName"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-397', 'setName', 'link-397');">setName</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L1255"></a><tt class="py-lineno">1255</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">query</tt> </tt>
+</div><a name="L1256"></a><tt class="py-lineno">1256</tt> <tt class="py-line"> </tt>
+<a name="Iq.setQueryNS"></a><div id="Iq.setQueryNS-def"><a name="L1257"></a><tt class="py-lineno">1257</tt> <a class="py-toggle" href="#" id="Iq.setQueryNS-toggle" onclick="return toggle('Iq.setQueryNS');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#setQueryNS">setQueryNS</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">namespace</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Iq.setQueryNS-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.setQueryNS-expanded"><a name="L1258"></a><tt class="py-lineno">1258</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1259"></a><tt class="py-lineno">1259</tt> <tt class="py-line"><tt class="py-docstring"> Set the namespace of the 'query' child element</tt> </tt>
+<a name="L1260"></a><tt class="py-lineno">1260</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1261"></a><tt class="py-lineno">1261</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-398" class="py-name" targets="Method nbxmpp.protocol.Iq.setQuery()=nbxmpp.protocol.Iq-class.html#setQuery"><a title="nbxmpp.protocol.Iq.setQuery" class="py-name" href="#" onclick="return doclink('link-398', 'setQuery', 'link-398');">setQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-399" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-399', 'setNamespace', 'link-250');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">namespace</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1262"></a><tt class="py-lineno">1262</tt> <tt class="py-line"> </tt>
+<a name="Iq.setQueryPayload"></a><div id="Iq.setQueryPayload-def"><a name="L1263"></a><tt class="py-lineno">1263</tt> <a class="py-toggle" href="#" id="Iq.setQueryPayload-toggle" onclick="return toggle('Iq.setQueryPayload');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#setQueryPayload">setQueryPayload</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Iq.setQueryPayload-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.setQueryPayload-expanded"><a name="L1264"></a><tt class="py-lineno">1264</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt> <tt class="py-line"><tt class="py-docstring"> Set the 'query' child element payload</tt> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1267"></a><tt class="py-lineno">1267</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-400" class="py-name"><a title="nbxmpp.protocol.Iq.setQuery" class="py-name" href="#" onclick="return doclink('link-400', 'setQuery', 'link-398');">setQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-401" class="py-name" targets="Method nbxmpp.simplexml.Node.setPayload()=nbxmpp.simplexml.Node-class.html#setPayload"><a title="nbxmpp.simplexml.Node.setPayload" class="py-name" href="#" onclick="return doclink('link-401', 'setPayload', 'link-401');">setPayload</a></tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1268"></a><tt class="py-lineno">1268</tt> <tt class="py-line"> </tt>
+<a name="Iq.setQuerynode"></a><div id="Iq.setQuerynode-def"><a name="L1269"></a><tt class="py-lineno">1269</tt> <a class="py-toggle" href="#" id="Iq.setQuerynode-toggle" onclick="return toggle('Iq.setQuerynode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#setQuerynode">setQuerynode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Iq.setQuerynode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.setQuerynode-expanded"><a name="L1270"></a><tt class="py-lineno">1270</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1271"></a><tt class="py-lineno">1271</tt> <tt class="py-line"><tt class="py-docstring"> Set the 'node' attribute value of the 'query' child element</tt> </tt>
+<a name="L1272"></a><tt class="py-lineno">1272</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1273"></a><tt class="py-lineno">1273</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-402" class="py-name"><a title="nbxmpp.protocol.Iq.setQuery" class="py-name" href="#" onclick="return doclink('link-402', 'setQuery', 'link-398');">setQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-403" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-403', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'node'</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1274"></a><tt class="py-lineno">1274</tt> <tt class="py-line"> </tt>
+<a name="Iq.buildReply"></a><div id="Iq.buildReply-def"><a name="L1275"></a><tt class="py-lineno">1275</tt> <a class="py-toggle" href="#" id="Iq.buildReply-toggle" onclick="return toggle('Iq.buildReply');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Iq-class.html#buildReply">buildReply</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Iq.buildReply-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Iq.buildReply-expanded"><a name="L1276"></a><tt class="py-lineno">1276</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1277"></a><tt class="py-lineno">1277</tt> <tt class="py-line"><tt class="py-docstring"> Build and return another Iq object of specified type. The to, from and</tt> </tt>
+<a name="L1278"></a><tt class="py-lineno">1278</tt> <tt class="py-line"><tt class="py-docstring"> query child node of new Iq are pre-set as reply to this Iq.</tt> </tt>
+<a name="L1279"></a><tt class="py-lineno">1279</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1280"></a><tt class="py-lineno">1280</tt> <tt class="py-line"> <tt class="py-name">iq</tt> <tt class="py-op">=</tt> <tt id="link-404" class="py-name" targets="Class nbxmpp.protocol.Iq=nbxmpp.protocol.Iq-class.html"><a title="nbxmpp.protocol.Iq" class="py-name" href="#" onclick="return doclink('link-404', 'Iq', 'link-404');">Iq</a></tt><tt class="py-op">(</tt><tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-405" class="py-name"><a title="nbxmpp.protocol.Protocol.getFrom" class="py-name" href="#" onclick="return doclink('link-405', 'getFrom', 'link-336');">getFrom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">frm</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-406" class="py-name"><a title="nbxmpp.protocol.Protocol.getTo" class="py-name" href="#" onclick="return doclink('link-406', 'getTo', 'link-337');">getTo</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1281"></a><tt class="py-lineno">1281</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'id'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-407" class="py-name" targets="Method nbxmpp.protocol.Protocol.getID()=nbxmpp.protocol.Protocol-class.html#getID"><a title="nbxmpp.protocol.Protocol.getID" class="py-name" href="#" onclick="return doclink('link-407', 'getID', 'link-407');">getID</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1282"></a><tt class="py-lineno">1282</tt> <tt class="py-line"> <tt class="py-name">iq</tt><tt class="py-op">.</tt><tt id="link-408" class="py-name"><a title="nbxmpp.protocol.Iq.setQuery" class="py-name" href="#" onclick="return doclink('link-408', 'setQuery', 'link-398');">setQuery</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-409" class="py-name"><a title="nbxmpp.protocol.Iq.getQuery" class="py-name" href="#" onclick="return doclink('link-409', 'getQuery', 'link-387');">getQuery</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-410" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-410', 'getName', 'link-280');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-411" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-411', 'setNamespace', 'link-250');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-412" class="py-name" targets="Method nbxmpp.protocol.Iq.getQueryNS()=nbxmpp.protocol.Iq-class.html#getQueryNS"><a title="nbxmpp.protocol.Iq.getQueryNS" class="py-name" href="#" onclick="return doclink('link-412', 'getQueryNS', 'link-412');">getQueryNS</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1283"></a><tt class="py-lineno">1283</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">iq</tt> </tt>
+</div></div><a name="L1284"></a><tt class="py-lineno">1284</tt> <tt class="py-line"> </tt>
+<a name="Hashes"></a><div id="Hashes-def"><a name="L1285"></a><tt class="py-lineno">1285</tt> <a class="py-toggle" href="#" id="Hashes-toggle" onclick="return toggle('Hashes');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Hashes-class.html">Hashes</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Hashes-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Hashes-expanded"><a name="L1286"></a><tt class="py-lineno">1286</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1287"></a><tt class="py-lineno">1287</tt> <tt class="py-line"><tt class="py-docstring"> Hash elements for various XEPs as defined in XEP-300</tt> </tt>
+<a name="L1288"></a><tt class="py-lineno">1288</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1289"></a><tt class="py-lineno">1289</tt> <tt class="py-line"> </tt>
+<a name="L1290"></a><tt class="py-lineno">1290</tt> <tt class="py-line"> <tt class="py-string">"""</tt> </tt>
+<a name="L1291"></a><tt class="py-lineno">1291</tt> <tt class="py-line"><tt class="py-string"> RECOMENDED HASH USE:</tt> </tt>
+<a name="L1292"></a><tt class="py-lineno">1292</tt> <tt class="py-line"><tt class="py-string"> Algorithm Support</tt> </tt>
+<a name="L1293"></a><tt class="py-lineno">1293</tt> <tt class="py-line"><tt class="py-string"> MD2 MUST NOT</tt> </tt>
+<a name="L1294"></a><tt class="py-lineno">1294</tt> <tt class="py-line"><tt class="py-string"> MD4 MUST NOT</tt> </tt>
+<a name="L1295"></a><tt class="py-lineno">1295</tt> <tt class="py-line"><tt class="py-string"> MD5 MAY</tt> </tt>
+<a name="L1296"></a><tt class="py-lineno">1296</tt> <tt class="py-line"><tt class="py-string"> SHA-1 MUST</tt> </tt>
+<a name="L1297"></a><tt class="py-lineno">1297</tt> <tt class="py-line"><tt class="py-string"> SHA-256 MUST</tt> </tt>
+<a name="L1298"></a><tt class="py-lineno">1298</tt> <tt class="py-line"><tt class="py-string"> SHA-512 SHOULD</tt> </tt>
+<a name="L1299"></a><tt class="py-lineno">1299</tt> <tt class="py-line"><tt class="py-string"> """</tt> </tt>
+<a name="L1300"></a><tt class="py-lineno">1300</tt> <tt class="py-line"> </tt>
+<a name="L1301"></a><tt class="py-lineno">1301</tt> <tt class="py-line"> <tt id="link-413" class="py-name" targets="Variable nbxmpp.protocol.Hashes.supported=nbxmpp.protocol.Hashes-class.html#supported"><a title="nbxmpp.protocol.Hashes.supported" class="py-name" href="#" onclick="return doclink('link-413', 'supported', 'link-413');">supported</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'md5'</tt><tt class="py-op">,</tt> <tt class="py-string">'sha-1'</tt><tt class="py-op">,</tt> <tt class="py-string">'sha-256'</tt><tt class="py-op">,</tt> <tt class="py-string">'sha-512'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1302"></a><tt class="py-lineno">1302</tt> <tt class="py-line"> </tt>
+<a name="Hashes.__init__"></a><div id="Hashes.__init__-def"><a name="L1303"></a><tt class="py-lineno">1303</tt> <a class="py-toggle" href="#" id="Hashes.__init__-toggle" onclick="return toggle('Hashes.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Hashes-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nsp</tt><tt class="py-op">=</tt><tt id="link-414" class="py-name"><a title="nbxmpp.protocol.NS_HASHES" class="py-name" href="#" onclick="return doclink('link-414', 'NS_HASHES', 'link-153');">NS_HASHES</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Hashes.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Hashes.__init__-expanded"><a name="L1304"></a><tt class="py-lineno">1304</tt> <tt class="py-line"> <tt id="link-415" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-415', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-416" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -1406,64 +1642,55 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-376', '__init__', 'link-206');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-377" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-377', 'setNamespace', 'link-207');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">nsp</tt><tt class="py-op">)</tt> </tt>
-<a name="L1062"></a><tt class="py-lineno">1062</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-378" class="py-name"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-378', 'setName', 'link-356');">setName</a></tt><tt class="py-op">(</tt><tt class="py-string">'hashes'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"> </tt>
-<a name="Hashes.calculateHash"></a><div id="Hashes.calculateHash-def"><a name="L1064"></a><tt class="py-lineno">1064</tt> <a class="py-toggle" href="#" id="Hashes.calculateHash-toggle" onclick="return toggle('Hashes.calculateHash');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Hashes-class.html#calculateHash">calculateHash</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">algo</tt><tt class="py-op">,</tt> <tt class="py-param">file_string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Hashes.calculateHash-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Hashes.calculateHash-expanded"><a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"><tt class="py-docstring"> Calculate the hash and add it. It is preferable doing it here</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"><tt class="py-docstring"> instead of doing it all over the place in Gajim.</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"> <tt class="py-name">hash_</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"> <tt class="py-comment"># file_string can be a string or a file</tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">file_string</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">str</tt><tt class="py-op">:</tt> <tt class="py-comment"># if it is a string</tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'md5'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">md5</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'sha-1'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">sha1</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'sha-256'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">sha256</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'sha-512'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">sha512</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hl</tt><tt class="py-op">:</tt> </tt>
-<a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"> <tt class="py-name">hl</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">file_string</tt><tt class="py-op">)</tt> </tt>
-<a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> <tt class="py-name">hash_</tt> <tt class="py-op">=</tt> <tt class="py-name">hl</tt><tt class="py-op">.</tt><tt class="py-name">hexdigest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> <tt class="py-comment"># if it is a file</tt> </tt>
-<a name="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'md5'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">md5</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'sha-1'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">sha1</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'sha-256'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">sha256</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'sha-512'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">sha512</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</tt> <tt class="py-line"> </tt>
-<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hl</tt><tt class="py-op">:</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file_string</tt><tt class="py-op">:</tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"> <tt class="py-name">hl</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"> <tt class="py-name">hash_</tt> <tt class="py-op">=</tt> <tt class="py-name">hl</tt><tt class="py-op">.</tt><tt class="py-name">hexdigest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">hash_</tt> </tt>
-</div><a name="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"> </tt>
-<a name="Hashes.addHash"></a><div id="Hashes.addHash-def"><a name="L1103"></a><tt class="py-lineno">1103</tt> <a class="py-toggle" href="#" id="Hashes.addHash-toggle" onclick="return toggle('Hashes.addHash');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Hashes-class.html#addHash">addHash</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hash_</tt><tt class="py-op">,</tt> <tt class="py-param">algo</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Hashes.addHash-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Hashes.addHash-expanded"><a name="L1104"></a><tt class="py-lineno">1104</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"><tt class="py-docstring"> More than one hash can be added. Although it is permitted, it should</tt> </tt>
-<a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"><tt class="py-docstring"> not be done for big files because it could slow down Gajim.</tt> </tt>
-<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> <tt class="py-name">attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-string">'algo'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">algo</tt> </tt>
-<a name="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-379" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-379', 'addChild', 'link-259');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'hash'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">hash_</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"> </tt>
-<a name="Acks"></a><div id="Acks-def"><a name="L1112"></a><tt class="py-lineno">1112</tt> <a class="py-toggle" href="#" id="Acks-toggle" onclick="return toggle('Acks');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Acks-class.html">Acks</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Acks-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Acks-expanded"><a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"><tt class="py-docstring"> Acknowledgement elements for Stream Management</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="Acks.__init__"></a><div id="Acks.__init__-def"><a name="L1116"></a><tt class="py-lineno">1116</tt> <a class="py-toggle" href="#" id="Acks.__init__-toggle" onclick="return toggle('Acks.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Acks-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nsp</tt><tt class="py-op">=</tt><tt id="link-380" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-380', 'NS_STREAM_MGMT', 'link-148');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Acks.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Acks.__init__-expanded"><a name="L1117"></a><tt class="py-lineno">1117</tt> <tt class="py-line"> <tt id="link-381" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-381', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-382" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-416', '__init__', 'link-249');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L1305"></a><tt class="py-lineno">1305</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-417" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-417', 'setNamespace', 'link-250');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">nsp</tt><tt class="py-op">)</tt> </tt>
+<a name="L1306"></a><tt class="py-lineno">1306</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-418" class="py-name"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-418', 'setName', 'link-397');">setName</a></tt><tt class="py-op">(</tt><tt class="py-string">'hash'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1307"></a><tt class="py-lineno">1307</tt> <tt class="py-line"> </tt>
+<a name="Hashes.calculateHash"></a><div id="Hashes.calculateHash-def"><a name="L1308"></a><tt class="py-lineno">1308</tt> <a class="py-toggle" href="#" id="Hashes.calculateHash-toggle" onclick="return toggle('Hashes.calculateHash');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Hashes-class.html#calculateHash">calculateHash</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">algo</tt><tt class="py-op">,</tt> <tt class="py-param">file_string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Hashes.calculateHash-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Hashes.calculateHash-expanded"><a name="L1309"></a><tt class="py-lineno">1309</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1310"></a><tt class="py-lineno">1310</tt> <tt class="py-line"><tt class="py-docstring"> Calculate the hash and add it. It is preferable doing it here</tt> </tt>
+<a name="L1311"></a><tt class="py-lineno">1311</tt> <tt class="py-line"><tt class="py-docstring"> instead of doing it all over the place in Gajim.</tt> </tt>
+<a name="L1312"></a><tt class="py-lineno">1312</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1313"></a><tt class="py-lineno">1313</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1314"></a><tt class="py-lineno">1314</tt> <tt class="py-line"> <tt class="py-name">hash_</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1315"></a><tt class="py-lineno">1315</tt> <tt class="py-line"> <tt class="py-comment"># file_string can be a string or a file</tt> </tt>
+<a name="L1316"></a><tt class="py-lineno">1316</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">file_string</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">str</tt><tt class="py-op">:</tt> <tt class="py-comment"># if it is a string</tt> </tt>
+<a name="L1317"></a><tt class="py-lineno">1317</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'sha-1'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1318"></a><tt class="py-lineno">1318</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">sha1</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1319"></a><tt class="py-lineno">1319</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'md5'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1320"></a><tt class="py-lineno">1320</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">md5</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1321"></a><tt class="py-lineno">1321</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'sha-256'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1322"></a><tt class="py-lineno">1322</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">sha256</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1323"></a><tt class="py-lineno">1323</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'sha-512'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1324"></a><tt class="py-lineno">1324</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">sha512</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1325"></a><tt class="py-lineno">1325</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hl</tt><tt class="py-op">:</tt> </tt>
+<a name="L1326"></a><tt class="py-lineno">1326</tt> <tt class="py-line"> <tt class="py-name">hl</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">file_string</tt><tt class="py-op">)</tt> </tt>
+<a name="L1327"></a><tt class="py-lineno">1327</tt> <tt class="py-line"> <tt class="py-name">hash_</tt> <tt class="py-op">=</tt> <tt class="py-name">hl</tt><tt class="py-op">.</tt><tt class="py-name">hexdigest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1328"></a><tt class="py-lineno">1328</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> <tt class="py-comment"># if it is a file</tt> </tt>
+<a name="L1329"></a><tt class="py-lineno">1329</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'sha-1'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1330"></a><tt class="py-lineno">1330</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">sha1</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1331"></a><tt class="py-lineno">1331</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'md5'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1332"></a><tt class="py-lineno">1332</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">md5</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1333"></a><tt class="py-lineno">1333</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'sha-256'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1334"></a><tt class="py-lineno">1334</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">sha256</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1335"></a><tt class="py-lineno">1335</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">algo</tt> <tt class="py-op">==</tt> <tt class="py-string">'sha-512'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1336"></a><tt class="py-lineno">1336</tt> <tt class="py-line"> <tt class="py-name">hl</tt> <tt class="py-op">=</tt> <tt class="py-name">hashlib</tt><tt class="py-op">.</tt><tt class="py-name">sha512</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1337"></a><tt class="py-lineno">1337</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hl</tt><tt class="py-op">:</tt> </tt>
+<a name="L1338"></a><tt class="py-lineno">1338</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">file_string</tt><tt class="py-op">:</tt> </tt>
+<a name="L1339"></a><tt class="py-lineno">1339</tt> <tt class="py-line"> <tt class="py-name">hl</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
+<a name="L1340"></a><tt class="py-lineno">1340</tt> <tt class="py-line"> <tt class="py-name">hash_</tt> <tt class="py-op">=</tt> <tt class="py-name">hl</tt><tt class="py-op">.</tt><tt class="py-name">hexdigest</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1341"></a><tt class="py-lineno">1341</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">hash_</tt> </tt>
+</div><a name="L1342"></a><tt class="py-lineno">1342</tt> <tt class="py-line"> </tt>
+<a name="Hashes.addHash"></a><div id="Hashes.addHash-def"><a name="L1343"></a><tt class="py-lineno">1343</tt> <a class="py-toggle" href="#" id="Hashes.addHash-toggle" onclick="return toggle('Hashes.addHash');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Hashes-class.html#addHash">addHash</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">hash_</tt><tt class="py-op">,</tt> <tt class="py-param">algo</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Hashes.addHash-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Hashes.addHash-expanded"><a name="L1344"></a><tt class="py-lineno">1344</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-419" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-419', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'algo'</tt><tt class="py-op">,</tt> <tt class="py-name">algo</tt><tt class="py-op">)</tt> </tt>
+<a name="L1345"></a><tt class="py-lineno">1345</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-420" class="py-name" targets="Method nbxmpp.simplexml.Node.setData()=nbxmpp.simplexml.Node-class.html#setData"><a title="nbxmpp.simplexml.Node.setData" class="py-name" href="#" onclick="return doclink('link-420', 'setData', 'link-420');">setData</a></tt><tt class="py-op">(</tt><tt class="py-name">hash_</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1346"></a><tt class="py-lineno">1346</tt> <tt class="py-line"> </tt>
+<a name="Acks"></a><div id="Acks-def"><a name="L1347"></a><tt class="py-lineno">1347</tt> <a class="py-toggle" href="#" id="Acks-toggle" onclick="return toggle('Acks');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Acks-class.html">Acks</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Acks-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Acks-expanded"><a name="L1348"></a><tt class="py-lineno">1348</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1349"></a><tt class="py-lineno">1349</tt> <tt class="py-line"><tt class="py-docstring"> Acknowledgement elements for Stream Management</tt> </tt>
+<a name="L1350"></a><tt class="py-lineno">1350</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="Acks.__init__"></a><div id="Acks.__init__-def"><a name="L1351"></a><tt class="py-lineno">1351</tt> <a class="py-toggle" href="#" id="Acks.__init__-toggle" onclick="return toggle('Acks.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Acks-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nsp</tt><tt class="py-op">=</tt><tt id="link-421" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-421', 'NS_STREAM_MGMT', 'link-152');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Acks.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Acks.__init__-expanded"><a name="L1352"></a><tt class="py-lineno">1352</tt> <tt class="py-line"> <tt id="link-422" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-422', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-423" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -1505,60 +1732,55 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-382', '__init__', 'link-206');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-383" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-383', 'setNamespace', 'link-207');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">nsp</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"> </tt>
-<a name="Acks.buildAnswer"></a><div id="Acks.buildAnswer-def"><a name="L1120"></a><tt class="py-lineno">1120</tt> <a class="py-toggle" href="#" id="Acks.buildAnswer-toggle" onclick="return toggle('Acks.buildAnswer');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Acks-class.html#buildAnswer">buildAnswer</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">handled</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Acks.buildAnswer-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Acks.buildAnswer-expanded"><a name="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"><tt class="py-docstring"> handled is the number of stanzas handled</tt> </tt>
-<a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-384', 'setName', 'link-356');">setName</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-385" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-385', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'h'</tt><tt class="py-op">,</tt> <tt class="py-name">handled</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1126"></a><tt class="py-lineno">1126</tt> <tt class="py-line"> </tt>
-<a name="Acks.buildRequest"></a><div id="Acks.buildRequest-def"><a name="L1127"></a><tt class="py-lineno">1127</tt> <a class="py-toggle" href="#" id="Acks.buildRequest-toggle" onclick="return toggle('Acks.buildRequest');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Acks-class.html#buildRequest">buildRequest</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Acks.buildRequest-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Acks.buildRequest-expanded"><a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-386" class="py-name"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-386', 'setName', 'link-356');">setName</a></tt><tt class="py-op">(</tt><tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"> </tt>
-<a name="Acks.buildEnable"></a><div id="Acks.buildEnable-def"><a name="L1130"></a><tt class="py-lineno">1130</tt> <a class="py-toggle" href="#" id="Acks.buildEnable-toggle" onclick="return toggle('Acks.buildEnable');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Acks-class.html#buildEnable">buildEnable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resume</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Acks.buildEnable-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Acks.buildEnable-expanded"><a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-387" class="py-name"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-387', 'setName', 'link-356');">setName</a></tt><tt class="py-op">(</tt><tt class="py-string">'enable'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">resume</tt><tt class="py-op">:</tt> </tt>
-<a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-388" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-388', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'resume'</tt><tt class="py-op">,</tt> <tt class="py-string">'true'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"> </tt>
-<a name="Acks.buildResume"></a><div id="Acks.buildResume-def"><a name="L1135"></a><tt class="py-lineno">1135</tt> <a class="py-toggle" href="#" id="Acks.buildResume-toggle" onclick="return toggle('Acks.buildResume');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Acks-class.html#buildResume">buildResume</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">handled</tt><tt class="py-op">,</tt> <tt class="py-param">previd</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Acks.buildResume-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Acks.buildResume-expanded"><a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-389" class="py-name"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-389', 'setName', 'link-356');">setName</a></tt><tt class="py-op">(</tt><tt class="py-string">'resume'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-390" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-390', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'h'</tt><tt class="py-op">,</tt> <tt class="py-name">handled</tt><tt class="py-op">)</tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-391" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-391', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'previd'</tt><tt class="py-op">,</tt> <tt class="py-name">previd</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"> </tt>
-<a name="ErrorNode"></a><div id="ErrorNode-def"><a name="L1140"></a><tt class="py-lineno">1140</tt> <a class="py-toggle" href="#" id="ErrorNode-toggle" onclick="return toggle('ErrorNode');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.ErrorNode-class.html">ErrorNode</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ErrorNode-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ErrorNode-expanded"><a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"><tt class="py-docstring"> XMPP-style error element</tt> </tt>
-<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"><tt class="py-docstring"> In the case of stanza error should be attached to XMPP stanza.</tt> </tt>
-<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"><tt class="py-docstring"> In the case of stream-level errors should be used separately.</tt> </tt>
-<a name="L1146"></a><tt class="py-lineno">1146</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1147"></a><tt class="py-lineno">1147</tt> <tt class="py-line"> </tt>
-<a name="ErrorNode.__init__"></a><div id="ErrorNode.__init__-def"><a name="L1148"></a><tt class="py-lineno">1148</tt> <a class="py-toggle" href="#" id="ErrorNode.__init__-toggle" onclick="return toggle('ErrorNode.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.ErrorNode-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">code</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ErrorNode.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ErrorNode.__init__-expanded"><a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"><tt class="py-docstring"> Mandatory parameter: name - name of error condition.</tt> </tt>
-<a name="L1151"></a><tt class="py-lineno">1151</tt> <tt class="py-line"><tt class="py-docstring"> Optional parameters: code, typ, text.</tt> </tt>
-<a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"><tt class="py-docstring"> Used for backwards compartibility with older jabber protocol.</tt> </tt>
-<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-392" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-392', 'name', 'link-165');">name</a></tt> <tt class="py-keyword">in</tt> <tt id="link-393" class="py-name"><a title="nbxmpp.ERRORS
-nbxmpp.protocol.ERRORS" class="py-name" href="#" onclick="return doclink('link-393', 'ERRORS', 'link-157');">ERRORS</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"> <tt class="py-name">cod</tt><tt class="py-op">,</tt> <tt class="py-name">type_</tt><tt class="py-op">,</tt> <tt class="py-name">txt</tt> <tt class="py-op">=</tt> <tt id="link-394" class="py-name"><a title="nbxmpp.ERRORS
-nbxmpp.protocol.ERRORS" class="py-name" href="#" onclick="return doclink('link-394', 'ERRORS', 'link-157');">ERRORS</a></tt><tt class="py-op">[</tt><tt id="link-395" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-395', 'name', 'link-165');">name</a></tt><tt class="py-op">]</tt> </tt>
-<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> <tt class="py-name">ns</tt> <tt class="py-op">=</tt> <tt id="link-396" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-396', 'name', 'link-165');">name</a></tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"> <tt class="py-name">cod</tt><tt class="py-op">,</tt> <tt class="py-name">ns</tt><tt class="py-op">,</tt> <tt class="py-name">type_</tt><tt class="py-op">,</tt> <tt class="py-name">txt</tt> <tt class="py-op">=</tt> <tt class="py-string">'500'</tt><tt class="py-op">,</tt> <tt id="link-397" class="py-name"><a title="nbxmpp.protocol.NS_STANZAS" class="py-name" href="#" onclick="return doclink('link-397', 'NS_STANZAS', 'link-123');">NS_STANZAS</a></tt><tt class="py-op">,</tt> <tt class="py-string">'cancel'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</tt> <tt class="py-line"> <tt class="py-name">type_</tt> <tt class="py-op">=</tt> <tt class="py-name">typ</tt> </tt>
-<a name="L1161"></a><tt class="py-lineno">1161</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">code</tt><tt class="py-op">:</tt> </tt>
-<a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"> <tt class="py-name">cod</tt> <tt class="py-op">=</tt> <tt class="py-name">code</tt> </tt>
-<a name="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">text</tt><tt class="py-op">:</tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt> <tt class="py-line"> <tt class="py-name">txt</tt> <tt class="py-op">=</tt> <tt class="py-name">text</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt> <tt class="py-line"> <tt id="link-398" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-398', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-399" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-423', '__init__', 'link-249');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L1353"></a><tt class="py-lineno">1353</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-424" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-424', 'setNamespace', 'link-250');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">nsp</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1354"></a><tt class="py-lineno">1354</tt> <tt class="py-line"> </tt>
+<a name="Acks.buildAnswer"></a><div id="Acks.buildAnswer-def"><a name="L1355"></a><tt class="py-lineno">1355</tt> <a class="py-toggle" href="#" id="Acks.buildAnswer-toggle" onclick="return toggle('Acks.buildAnswer');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Acks-class.html#buildAnswer">buildAnswer</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">handled</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Acks.buildAnswer-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Acks.buildAnswer-expanded"><a name="L1356"></a><tt class="py-lineno">1356</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1357"></a><tt class="py-lineno">1357</tt> <tt class="py-line"><tt class="py-docstring"> handled is the number of stanzas handled</tt> </tt>
+<a name="L1358"></a><tt class="py-lineno">1358</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1359"></a><tt class="py-lineno">1359</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-425" class="py-name"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-425', 'setName', 'link-397');">setName</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1360"></a><tt class="py-lineno">1360</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-426" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-426', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'h'</tt><tt class="py-op">,</tt> <tt class="py-name">handled</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1361"></a><tt class="py-lineno">1361</tt> <tt class="py-line"> </tt>
+<a name="Acks.buildRequest"></a><div id="Acks.buildRequest-def"><a name="L1362"></a><tt class="py-lineno">1362</tt> <a class="py-toggle" href="#" id="Acks.buildRequest-toggle" onclick="return toggle('Acks.buildRequest');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Acks-class.html#buildRequest">buildRequest</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Acks.buildRequest-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Acks.buildRequest-expanded"><a name="L1363"></a><tt class="py-lineno">1363</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-427" class="py-name"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-427', 'setName', 'link-397');">setName</a></tt><tt class="py-op">(</tt><tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1364"></a><tt class="py-lineno">1364</tt> <tt class="py-line"> </tt>
+<a name="Acks.buildEnable"></a><div id="Acks.buildEnable-def"><a name="L1365"></a><tt class="py-lineno">1365</tt> <a class="py-toggle" href="#" id="Acks.buildEnable-toggle" onclick="return toggle('Acks.buildEnable');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Acks-class.html#buildEnable">buildEnable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resume</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Acks.buildEnable-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Acks.buildEnable-expanded"><a name="L1366"></a><tt class="py-lineno">1366</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-428', 'setName', 'link-397');">setName</a></tt><tt class="py-op">(</tt><tt class="py-string">'enable'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1367"></a><tt class="py-lineno">1367</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">resume</tt><tt class="py-op">:</tt> </tt>
+<a name="L1368"></a><tt class="py-lineno">1368</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-429" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-429', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'resume'</tt><tt class="py-op">,</tt> <tt class="py-string">'true'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1369"></a><tt class="py-lineno">1369</tt> <tt class="py-line"> </tt>
+<a name="Acks.buildResume"></a><div id="Acks.buildResume-def"><a name="L1370"></a><tt class="py-lineno">1370</tt> <a class="py-toggle" href="#" id="Acks.buildResume-toggle" onclick="return toggle('Acks.buildResume');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Acks-class.html#buildResume">buildResume</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">handled</tt><tt class="py-op">,</tt> <tt class="py-param">previd</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Acks.buildResume-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Acks.buildResume-expanded"><a name="L1371"></a><tt class="py-lineno">1371</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-430" class="py-name"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-430', 'setName', 'link-397');">setName</a></tt><tt class="py-op">(</tt><tt class="py-string">'resume'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1372"></a><tt class="py-lineno">1372</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-431" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-431', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'h'</tt><tt class="py-op">,</tt> <tt class="py-name">handled</tt><tt class="py-op">)</tt> </tt>
+<a name="L1373"></a><tt class="py-lineno">1373</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-432" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-432', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'previd'</tt><tt class="py-op">,</tt> <tt class="py-name">previd</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1374"></a><tt class="py-lineno">1374</tt> <tt class="py-line"> </tt>
+<a name="ErrorNode"></a><div id="ErrorNode-def"><a name="L1375"></a><tt class="py-lineno">1375</tt> <a class="py-toggle" href="#" id="ErrorNode-toggle" onclick="return toggle('ErrorNode');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.ErrorNode-class.html">ErrorNode</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ErrorNode-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ErrorNode-expanded"><a name="L1376"></a><tt class="py-lineno">1376</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1377"></a><tt class="py-lineno">1377</tt> <tt class="py-line"><tt class="py-docstring"> XMPP-style error element</tt> </tt>
+<a name="L1378"></a><tt class="py-lineno">1378</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1379"></a><tt class="py-lineno">1379</tt> <tt class="py-line"><tt class="py-docstring"> In the case of stanza error should be attached to XMPP stanza.</tt> </tt>
+<a name="L1380"></a><tt class="py-lineno">1380</tt> <tt class="py-line"><tt class="py-docstring"> In the case of stream-level errors should be used separately.</tt> </tt>
+<a name="L1381"></a><tt class="py-lineno">1381</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1382"></a><tt class="py-lineno">1382</tt> <tt class="py-line"> </tt>
+<a name="ErrorNode.__init__"></a><div id="ErrorNode.__init__-def"><a name="L1383"></a><tt class="py-lineno">1383</tt> <a class="py-toggle" href="#" id="ErrorNode.__init__-toggle" onclick="return toggle('ErrorNode.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.ErrorNode-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">code</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ErrorNode.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ErrorNode.__init__-expanded"><a name="L1384"></a><tt class="py-lineno">1384</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1385"></a><tt class="py-lineno">1385</tt> <tt class="py-line"><tt class="py-docstring"> Mandatory parameter: name - name of error condition.</tt> </tt>
+<a name="L1386"></a><tt class="py-lineno">1386</tt> <tt class="py-line"><tt class="py-docstring"> Optional parameters: code, typ, text.</tt> </tt>
+<a name="L1387"></a><tt class="py-lineno">1387</tt> <tt class="py-line"><tt class="py-docstring"> Used for backwards compartibility with older jabber protocol.</tt> </tt>
+<a name="L1388"></a><tt class="py-lineno">1388</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1389"></a><tt class="py-lineno">1389</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt id="link-433" class="py-name"><a title="nbxmpp.protocol.ERRORS" class="py-name" href="#" onclick="return doclink('link-433', 'ERRORS', 'link-158');">ERRORS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt> <tt class="py-line"> <tt class="py-name">cod</tt><tt class="py-op">,</tt> <tt class="py-name">type_</tt><tt class="py-op">,</tt> <tt class="py-name">txt</tt> <tt class="py-op">=</tt> <tt id="link-434" class="py-name"><a title="nbxmpp.protocol.ERRORS" class="py-name" href="#" onclick="return doclink('link-434', 'ERRORS', 'link-158');">ERRORS</a></tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
+<a name="L1391"></a><tt class="py-lineno">1391</tt> <tt class="py-line"> <tt class="py-name">ns</tt> <tt class="py-op">=</tt> <tt class="py-name">name</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1392"></a><tt class="py-lineno">1392</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1393"></a><tt class="py-lineno">1393</tt> <tt class="py-line"> <tt class="py-name">cod</tt><tt class="py-op">,</tt> <tt class="py-name">ns</tt><tt class="py-op">,</tt> <tt class="py-name">type_</tt><tt class="py-op">,</tt> <tt class="py-name">txt</tt> <tt class="py-op">=</tt> <tt class="py-string">'500'</tt><tt class="py-op">,</tt> <tt id="link-435" class="py-name"><a title="nbxmpp.protocol.NS_STANZAS" class="py-name" href="#" onclick="return doclink('link-435', 'NS_STANZAS', 'link-126');">NS_STANZAS</a></tt><tt class="py-op">,</tt> <tt class="py-string">'cancel'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1394"></a><tt class="py-lineno">1394</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
+<a name="L1395"></a><tt class="py-lineno">1395</tt> <tt class="py-line"> <tt class="py-name">type_</tt> <tt class="py-op">=</tt> <tt class="py-name">typ</tt> </tt>
+<a name="L1396"></a><tt class="py-lineno">1396</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">code</tt><tt class="py-op">:</tt> </tt>
+<a name="L1397"></a><tt class="py-lineno">1397</tt> <tt class="py-line"> <tt class="py-name">cod</tt> <tt class="py-op">=</tt> <tt class="py-name">code</tt> </tt>
+<a name="L1398"></a><tt class="py-lineno">1398</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">text</tt><tt class="py-op">:</tt> </tt>
+<a name="L1399"></a><tt class="py-lineno">1399</tt> <tt class="py-line"> <tt class="py-name">txt</tt> <tt class="py-op">=</tt> <tt class="py-name">text</tt> </tt>
+<a name="L1400"></a><tt class="py-lineno">1400</tt> <tt class="py-line"> <tt id="link-436" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-436', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-437" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -1600,32 +1822,31 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-399', '__init__', 'link-206');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'error'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-400" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-400', 'Node', 'link-1');">Node</a></tt><tt class="py-op">(</tt><tt id="link-401" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-401', 'name', 'link-165');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1166"></a><tt class="py-lineno">1166</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type_</tt><tt class="py-op">:</tt> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-402" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-402', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-name">type_</tt><tt class="py-op">)</tt> </tt>
-<a name="L1168"></a><tt class="py-lineno">1168</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">cod</tt><tt class="py-op">:</tt> </tt>
-<a name="L1169"></a><tt class="py-lineno">1169</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-403" class="py-name"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-403', 'setName', 'link-356');">setName</a></tt><tt class="py-op">(</tt><tt class="py-string">'stream:error'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">txt</tt><tt class="py-op">:</tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-404" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-404', 'addChild', 'link-259');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt id="link-405" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-405', 'Node', 'link-1');">Node</a></tt><tt class="py-op">(</tt><tt class="py-name">ns</tt> <tt class="py-op">+</tt> <tt class="py-string">' text'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">txt</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">cod</tt><tt class="py-op">:</tt> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-406" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-406', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'code'</tt><tt class="py-op">,</tt> <tt class="py-name">cod</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1174"></a><tt class="py-lineno">1174</tt> <tt class="py-line"> </tt>
-<a name="Error"></a><div id="Error-def"><a name="L1175"></a><tt class="py-lineno">1175</tt> <a class="py-toggle" href="#" id="Error-toggle" onclick="return toggle('Error');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Error-class.html">Error</a><tt class="py-op">(</tt><tt class="py-base-class">Protocol</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Error-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Error-expanded"><a name="L1176"></a><tt class="py-lineno">1176</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"><tt class="py-docstring"> Used to quickly transform received stanza into error reply</tt> </tt>
-<a name="L1178"></a><tt class="py-lineno">1178</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1179"></a><tt class="py-lineno">1179</tt> <tt class="py-line"> </tt>
-<a name="Error.__init__"></a><div id="Error.__init__-def"><a name="L1180"></a><tt class="py-lineno">1180</tt> <a class="py-toggle" href="#" id="Error.__init__-toggle" onclick="return toggle('Error.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Error-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">,</tt> <tt class="py-param">error</tt><tt class="py-op">,</tt> <tt class="py-param">reply</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Error.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Error.__init__-expanded"><a name="L1181"></a><tt class="py-lineno">1181</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"><tt class="py-docstring"> Create error reply basing on the received 'node' stanza and the 'error'</tt> </tt>
-<a name="L1183"></a><tt class="py-lineno">1183</tt> <tt class="py-line"><tt class="py-docstring"> error condition</tt> </tt>
-<a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"><tt class="py-docstring"> If the 'node' is not the received stanza but locally created ('to' and</tt> </tt>
-<a name="L1186"></a><tt class="py-lineno">1186</tt> <tt class="py-line"><tt class="py-docstring"> 'from' fields needs not swapping) specify the 'reply' argument as false.</tt> </tt>
-<a name="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">reply</tt><tt class="py-op">:</tt> </tt>
-<a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"> <tt id="link-407" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-407', 'Protocol', 'link-267');">Protocol</a></tt><tt class="py-op">.</tt><tt id="link-408" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-437', '__init__', 'link-249');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'error'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-438" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-438', 'Node', 'link-1');">Node</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1401"></a><tt class="py-lineno">1401</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type_</tt><tt class="py-op">:</tt> </tt>
+<a name="L1402"></a><tt class="py-lineno">1402</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-439" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-439', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-name">type_</tt><tt class="py-op">)</tt> </tt>
+<a name="L1403"></a><tt class="py-lineno">1403</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">cod</tt><tt class="py-op">:</tt> </tt>
+<a name="L1404"></a><tt class="py-lineno">1404</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-440" class="py-name"><a title="nbxmpp.simplexml.Node.setName" class="py-name" href="#" onclick="return doclink('link-440', 'setName', 'link-397');">setName</a></tt><tt class="py-op">(</tt><tt class="py-string">'stream:error'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1405"></a><tt class="py-lineno">1405</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">txt</tt><tt class="py-op">:</tt> </tt>
+<a name="L1406"></a><tt class="py-lineno">1406</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-441" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-441', 'addChild', 'link-301');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt id="link-442" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-442', 'Node', 'link-1');">Node</a></tt><tt class="py-op">(</tt><tt class="py-name">ns</tt> <tt class="py-op">+</tt> <tt class="py-string">' text'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">txt</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1407"></a><tt class="py-lineno">1407</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">cod</tt><tt class="py-op">:</tt> </tt>
+<a name="L1408"></a><tt class="py-lineno">1408</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-443" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-443', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'code'</tt><tt class="py-op">,</tt> <tt class="py-name">cod</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1409"></a><tt class="py-lineno">1409</tt> <tt class="py-line"> </tt>
+<a name="Error"></a><div id="Error-def"><a name="L1410"></a><tt class="py-lineno">1410</tt> <a class="py-toggle" href="#" id="Error-toggle" onclick="return toggle('Error');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.Error-class.html">Error</a><tt class="py-op">(</tt><tt class="py-base-class">Protocol</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Error-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Error-expanded"><a name="L1411"></a><tt class="py-lineno">1411</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt> <tt class="py-line"><tt class="py-docstring"> Used to quickly transform received stanza into error reply</tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1414"></a><tt class="py-lineno">1414</tt> <tt class="py-line"> </tt>
+<a name="Error.__init__"></a><div id="Error.__init__-def"><a name="L1415"></a><tt class="py-lineno">1415</tt> <a class="py-toggle" href="#" id="Error.__init__-toggle" onclick="return toggle('Error.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Error-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">,</tt> <tt class="py-param">error</tt><tt class="py-op">,</tt> <tt class="py-param">reply</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Error.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Error.__init__-expanded"><a name="L1416"></a><tt class="py-lineno">1416</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1417"></a><tt class="py-lineno">1417</tt> <tt class="py-line"><tt class="py-docstring"> Create error reply basing on the received 'node' stanza and the 'error'</tt> </tt>
+<a name="L1418"></a><tt class="py-lineno">1418</tt> <tt class="py-line"><tt class="py-docstring"> error condition</tt> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1420"></a><tt class="py-lineno">1420</tt> <tt class="py-line"><tt class="py-docstring"> If the 'node' is not the received stanza but locally created ('to' and</tt> </tt>
+<a name="L1421"></a><tt class="py-lineno">1421</tt> <tt class="py-line"><tt class="py-docstring"> 'from' fields needs not swapping) specify the 'reply' argument as false.</tt> </tt>
+<a name="L1422"></a><tt class="py-lineno">1422</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1423"></a><tt class="py-lineno">1423</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">reply</tt><tt class="py-op">:</tt> </tt>
+<a name="L1424"></a><tt class="py-lineno">1424</tt> <tt class="py-line"> <tt id="link-444" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-444', 'Protocol', 'link-309');">Protocol</a></tt><tt class="py-op">.</tt><tt id="link-445" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -1667,9 +1888,9 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-408', '__init__', 'link-206');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-409" class="py-name"><a title="nbxmpp.protocol.Protocol.getFrom" class="py-name" href="#" onclick="return doclink('link-409', 'getFrom', 'link-294');">getFrom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">frm</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-410" class="py-name"><a title="nbxmpp.protocol.Protocol.getTo" class="py-name" href="#" onclick="return doclink('link-410', 'getTo', 'link-295');">getTo</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"> <tt id="link-411" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-411', 'Protocol', 'link-267');">Protocol</a></tt><tt class="py-op">.</tt><tt id="link-412" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-445', '__init__', 'link-249');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">to</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-446" class="py-name"><a title="nbxmpp.protocol.Protocol.getFrom" class="py-name" href="#" onclick="return doclink('link-446', 'getFrom', 'link-336');">getFrom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">frm</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-447" class="py-name"><a title="nbxmpp.protocol.Protocol.getTo" class="py-name" href="#" onclick="return doclink('link-447', 'getTo', 'link-337');">getTo</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
+<a name="L1425"></a><tt class="py-lineno">1425</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt> <tt class="py-line"> <tt id="link-448" class="py-name"><a title="nbxmpp.protocol.Protocol" class="py-name" href="#" onclick="return doclink('link-448', 'Protocol', 'link-309');">Protocol</a></tt><tt class="py-op">.</tt><tt id="link-449" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -1711,40 +1932,40 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-412', '__init__', 'link-206');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
-<a name="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-413" class="py-name" targets="Method nbxmpp.protocol.Protocol.setError()=nbxmpp.protocol.Protocol-class.html#setError"><a title="nbxmpp.protocol.Protocol.setError" class="py-name" href="#" onclick="return doclink('link-413', 'setError', 'link-413');">setError</a></tt><tt class="py-op">(</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
-<a name="L1193"></a><tt class="py-lineno">1193</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-414" class="py-name"><a title="nbxmpp.protocol.DataField.getType
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-449', '__init__', 'link-249');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
+<a name="L1427"></a><tt class="py-lineno">1427</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-450" class="py-name" targets="Method nbxmpp.protocol.Protocol.setError()=nbxmpp.protocol.Protocol-class.html#setError"><a title="nbxmpp.protocol.Protocol.setError" class="py-name" href="#" onclick="return doclink('link-450', 'setError', 'link-450');">setError</a></tt><tt class="py-op">(</tt><tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L1428"></a><tt class="py-lineno">1428</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-451" class="py-name"><a title="nbxmpp.protocol.DataField.getType
nbxmpp.protocol.DataForm.getType
-nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-414', 'getType', 'link-170');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'error'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-415" class="py-name"><a title="nbxmpp.protocol.JID.__str__
+nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-451', 'getType', 'link-213');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'error'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1429"></a><tt class="py-lineno">1429</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-452" class="py-name"><a title="nbxmpp.protocol.JID.__str__
nbxmpp.simplexml.Node.__str__
-nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-415', '__str__', 'link-197');">__str__</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-416" class="py-name" targets="Method nbxmpp.protocol.Error.__dupstr__()=nbxmpp.protocol.Error-class.html#__dupstr__"><a title="nbxmpp.protocol.Error.__dupstr__" class="py-name" href="#" onclick="return doclink('link-416', '__dupstr__', 'link-416');">__dupstr__</a></tt> </tt>
-</div><a name="L1195"></a><tt class="py-lineno">1195</tt> <tt class="py-line"> </tt>
-<a name="Error.__dupstr__"></a><div id="Error.__dupstr__-def"><a name="L1196"></a><tt class="py-lineno">1196</tt> <a class="py-toggle" href="#" id="Error.__dupstr__-toggle" onclick="return toggle('Error.__dupstr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Error-class.html#__dupstr__">__dupstr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">dup1</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">dup2</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Error.__dupstr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Error.__dupstr__-expanded"><a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"><tt class="py-docstring"> Dummy function used as preventor of creating error node in reply to error</tt> </tt>
-<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"><tt class="py-docstring"> node. I.e. you will not be able to serialise "double" error into string.</tt> </tt>
-<a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1201"></a><tt class="py-lineno">1201</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
-</div></div><a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"> </tt>
-<a name="DataField"></a><div id="DataField-def"><a name="L1203"></a><tt class="py-lineno">1203</tt> <a class="py-toggle" href="#" id="DataField-toggle" onclick="return toggle('DataField');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html">DataField</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="DataField-expanded"><a name="L1204"></a><tt class="py-lineno">1204</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"><tt class="py-docstring"> This class is used in the DataForm class to describe the single data item</tt> </tt>
-<a name="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"><tt class="py-docstring"> If you are working with jabber:x:data (XEP-0004, XEP-0068, XEP-0122) then</tt> </tt>
-<a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"><tt class="py-docstring"> you will need to work with instances of this class.</tt> </tt>
-<a name="L1209"></a><tt class="py-lineno">1209</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1210"></a><tt class="py-lineno">1210</tt> <tt class="py-line"> </tt>
-<a name="DataField.__init__"></a><div id="DataField.__init__-def"><a name="L1211"></a><tt class="py-lineno">1211</tt> <a class="py-toggle" href="#" id="DataField.__init__-toggle" onclick="return toggle('DataField.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">required</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">desc</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt> <tt class="py-line"> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.__init__-expanded"><a name="L1213"></a><tt class="py-lineno">1213</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1214"></a><tt class="py-lineno">1214</tt> <tt class="py-line"><tt class="py-docstring"> Create new data field of specified name,value and type</tt> </tt>
-<a name="L1215"></a><tt class="py-lineno">1215</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</tt> <tt class="py-line"><tt class="py-docstring"> Also 'required','desc' and 'options' fields can be set. Alternatively</tt> </tt>
-<a name="L1217"></a><tt class="py-lineno">1217</tt> <tt class="py-line"><tt class="py-docstring"> other XML object can be passed in as the 'node' parameted</tt> </tt>
-<a name="L1218"></a><tt class="py-lineno">1218</tt> <tt class="py-line"><tt class="py-docstring"> to replicate it as a new datafiled.</tt> </tt>
-<a name="L1219"></a><tt class="py-lineno">1219</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1220"></a><tt class="py-lineno">1220</tt> <tt class="py-line"> <tt id="link-417" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-417', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-418" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-452', '__str__', 'link-240');">__str__</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-453" class="py-name" targets="Method nbxmpp.protocol.Error.__dupstr__()=nbxmpp.protocol.Error-class.html#__dupstr__"><a title="nbxmpp.protocol.Error.__dupstr__" class="py-name" href="#" onclick="return doclink('link-453', '__dupstr__', 'link-453');">__dupstr__</a></tt> </tt>
+</div><a name="L1430"></a><tt class="py-lineno">1430</tt> <tt class="py-line"> </tt>
+<a name="Error.__dupstr__"></a><div id="Error.__dupstr__-def"><a name="L1431"></a><tt class="py-lineno">1431</tt> <a class="py-toggle" href="#" id="Error.__dupstr__-toggle" onclick="return toggle('Error.__dupstr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.Error-class.html#__dupstr__">__dupstr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">dup1</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">dup2</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Error.__dupstr__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Error.__dupstr__-expanded"><a name="L1432"></a><tt class="py-lineno">1432</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1433"></a><tt class="py-lineno">1433</tt> <tt class="py-line"><tt class="py-docstring"> Dummy function used as preventor of creating error node in reply to error</tt> </tt>
+<a name="L1434"></a><tt class="py-lineno">1434</tt> <tt class="py-line"><tt class="py-docstring"> node. I.e. you will not be able to serialise "double" error into string.</tt> </tt>
+<a name="L1435"></a><tt class="py-lineno">1435</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1436"></a><tt class="py-lineno">1436</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
+</div></div><a name="L1437"></a><tt class="py-lineno">1437</tt> <tt class="py-line"> </tt>
+<a name="DataField"></a><div id="DataField-def"><a name="L1438"></a><tt class="py-lineno">1438</tt> <a class="py-toggle" href="#" id="DataField-toggle" onclick="return toggle('DataField');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html">DataField</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="DataField-expanded"><a name="L1439"></a><tt class="py-lineno">1439</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1440"></a><tt class="py-lineno">1440</tt> <tt class="py-line"><tt class="py-docstring"> This class is used in the DataForm class to describe the single data item</tt> </tt>
+<a name="L1441"></a><tt class="py-lineno">1441</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1442"></a><tt class="py-lineno">1442</tt> <tt class="py-line"><tt class="py-docstring"> If you are working with jabber:x:data (XEP-0004, XEP-0068, XEP-0122) then</tt> </tt>
+<a name="L1443"></a><tt class="py-lineno">1443</tt> <tt class="py-line"><tt class="py-docstring"> you will need to work with instances of this class.</tt> </tt>
+<a name="L1444"></a><tt class="py-lineno">1444</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1445"></a><tt class="py-lineno">1445</tt> <tt class="py-line"> </tt>
+<a name="DataField.__init__"></a><div id="DataField.__init__-def"><a name="L1446"></a><tt class="py-lineno">1446</tt> <a class="py-toggle" href="#" id="DataField.__init__-toggle" onclick="return toggle('DataField.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">required</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">desc</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1447"></a><tt class="py-lineno">1447</tt> <tt class="py-line"> <tt class="py-param">options</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.__init__-expanded"><a name="L1448"></a><tt class="py-lineno">1448</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1449"></a><tt class="py-lineno">1449</tt> <tt class="py-line"><tt class="py-docstring"> Create new data field of specified name,value and type</tt> </tt>
+<a name="L1450"></a><tt class="py-lineno">1450</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1451"></a><tt class="py-lineno">1451</tt> <tt class="py-line"><tt class="py-docstring"> Also 'required','desc' and 'options' fields can be set. Alternatively</tt> </tt>
+<a name="L1452"></a><tt class="py-lineno">1452</tt> <tt class="py-line"><tt class="py-docstring"> other XML object can be passed in as the 'node' parameted</tt> </tt>
+<a name="L1453"></a><tt class="py-lineno">1453</tt> <tt class="py-line"><tt class="py-docstring"> to replicate it as a new datafiled.</tt> </tt>
+<a name="L1454"></a><tt class="py-lineno">1454</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1455"></a><tt class="py-lineno">1455</tt> <tt class="py-line"> <tt id="link-454" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-454', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-455" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -1786,168 +2007,166 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-418', '__init__', 'link-206');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'field'</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
-<a name="L1221"></a><tt class="py-lineno">1221</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-419" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-419', 'name', 'link-165');">name</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1222"></a><tt class="py-lineno">1222</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-420" class="py-name" targets="Method nbxmpp.protocol.DataField.setVar()=nbxmpp.protocol.DataField-class.html#setVar"><a title="nbxmpp.protocol.DataField.setVar" class="py-name" href="#" onclick="return doclink('link-420', 'setVar', 'link-420');">setVar</a></tt><tt class="py-op">(</tt><tt id="link-421" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-421', 'name', 'link-165');">name</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-422" class="py-name" targets="Method nbxmpp.protocol.DataField.setValues()=nbxmpp.protocol.DataField-class.html#setValues"><a title="nbxmpp.protocol.DataField.setValues" class="py-name" href="#" onclick="return doclink('link-422', 'setValues', 'link-422');">setValues</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">value</tt><tt class="py-op">:</tt> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-423" class="py-name" targets="Method nbxmpp.protocol.DataField.setValue()=nbxmpp.protocol.DataField-class.html#setValue"><a title="nbxmpp.protocol.DataField.setValue" class="py-name" href="#" onclick="return doclink('link-423', 'setValue', 'link-423');">setValue</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
-<a name="L1227"></a><tt class="py-lineno">1227</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
-<a name="L1228"></a><tt class="py-lineno">1228</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-424" class="py-name"><a title="nbxmpp.protocol.DataField.setType
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-455', '__init__', 'link-249');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'field'</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
+<a name="L1456"></a><tt class="py-lineno">1456</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt><tt class="py-op">:</tt> </tt>
+<a name="L1457"></a><tt class="py-lineno">1457</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-456" class="py-name" targets="Method nbxmpp.protocol.DataField.setVar()=nbxmpp.protocol.DataField-class.html#setVar"><a title="nbxmpp.protocol.DataField.setVar" class="py-name" href="#" onclick="return doclink('link-456', 'setVar', 'link-456');">setVar</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-457" class="py-name" targets="Method nbxmpp.protocol.DataField.setValues()=nbxmpp.protocol.DataField-class.html#setValues"><a title="nbxmpp.protocol.DataField.setValues" class="py-name" href="#" onclick="return doclink('link-457', 'setValues', 'link-457');">setValues</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L1460"></a><tt class="py-lineno">1460</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">value</tt><tt class="py-op">:</tt> </tt>
+<a name="L1461"></a><tt class="py-lineno">1461</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-458" class="py-name" targets="Method nbxmpp.protocol.DataField.setValue()=nbxmpp.protocol.DataField-class.html#setValue"><a title="nbxmpp.protocol.DataField.setValue" class="py-name" href="#" onclick="return doclink('link-458', 'setValue', 'link-458');">setValue</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L1462"></a><tt class="py-lineno">1462</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
+<a name="L1463"></a><tt class="py-lineno">1463</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-459" class="py-name"><a title="nbxmpp.protocol.DataField.setType
nbxmpp.protocol.DataForm.setType
-nbxmpp.protocol.Protocol.setType" class="py-name" href="#" onclick="return doclink('link-424', 'setType', 'link-258');">setType</a></tt><tt class="py-op">(</tt><tt class="py-name">typ</tt><tt class="py-op">)</tt> </tt>
-<a name="L1229"></a><tt class="py-lineno">1229</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">typ</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-425" class="py-name"><a title="nbxmpp.protocol.DataField.setType
+nbxmpp.protocol.Protocol.setType" class="py-name" href="#" onclick="return doclink('link-459', 'setType', 'link-300');">setType</a></tt><tt class="py-op">(</tt><tt class="py-name">typ</tt><tt class="py-op">)</tt> </tt>
+<a name="L1464"></a><tt class="py-lineno">1464</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">typ</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1465"></a><tt class="py-lineno">1465</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-460" class="py-name"><a title="nbxmpp.protocol.DataField.setType
nbxmpp.protocol.DataForm.setType
-nbxmpp.protocol.Protocol.setType" class="py-name" href="#" onclick="return doclink('link-425', 'setType', 'link-258');">setType</a></tt><tt class="py-op">(</tt><tt class="py-string">'text-single'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1231"></a><tt class="py-lineno">1231</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">required</tt><tt class="py-op">:</tt> </tt>
-<a name="L1232"></a><tt class="py-lineno">1232</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-426" class="py-name" targets="Method nbxmpp.protocol.DataField.setRequired()=nbxmpp.protocol.DataField-class.html#setRequired"><a title="nbxmpp.protocol.DataField.setRequired" class="py-name" href="#" onclick="return doclink('link-426', 'setRequired', 'link-426');">setRequired</a></tt><tt class="py-op">(</tt><tt class="py-name">required</tt><tt class="py-op">)</tt> </tt>
-<a name="L1233"></a><tt class="py-lineno">1233</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">:</tt> </tt>
-<a name="L1234"></a><tt class="py-lineno">1234</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-427" class="py-name" targets="Method nbxmpp.protocol.DataField.setDesc()=nbxmpp.protocol.DataField-class.html#setDesc"><a title="nbxmpp.protocol.DataField.setDesc" class="py-name" href="#" onclick="return doclink('link-427', 'setDesc', 'link-427');">setDesc</a></tt><tt class="py-op">(</tt><tt class="py-name">desc</tt><tt class="py-op">)</tt> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">options</tt><tt class="py-op">:</tt> </tt>
-<a name="L1236"></a><tt class="py-lineno">1236</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-428" class="py-name" targets="Method nbxmpp.protocol.DataField.setOptions()=nbxmpp.protocol.DataField-class.html#setOptions"><a title="nbxmpp.protocol.DataField.setOptions" class="py-name" href="#" onclick="return doclink('link-428', 'setOptions', 'link-428');">setOptions</a></tt><tt class="py-op">(</tt><tt class="py-name">options</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1237"></a><tt class="py-lineno">1237</tt> <tt class="py-line"> </tt>
-<a name="DataField.setRequired"></a><div id="DataField.setRequired-def"><a name="L1238"></a><tt class="py-lineno">1238</tt> <a class="py-toggle" href="#" id="DataField.setRequired-toggle" onclick="return toggle('DataField.setRequired');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setRequired">setRequired</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">req</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.setRequired-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setRequired-expanded"><a name="L1239"></a><tt class="py-lineno">1239</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1240"></a><tt class="py-lineno">1240</tt> <tt class="py-line"><tt class="py-docstring"> Change the state of the 'required' flag</tt> </tt>
-<a name="L1241"></a><tt class="py-lineno">1241</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1242"></a><tt class="py-lineno">1242</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">req</tt><tt class="py-op">:</tt> </tt>
-<a name="L1243"></a><tt class="py-lineno">1243</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-429" class="py-name"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-429', 'setTag', 'link-260');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'required'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1246"></a><tt class="py-lineno">1246</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-430" class="py-name" targets="Method nbxmpp.simplexml.Node.delChild()=nbxmpp.simplexml.Node-class.html#delChild"><a title="nbxmpp.simplexml.Node.delChild" class="py-name" href="#" onclick="return doclink('link-430', 'delChild', 'link-430');">delChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'required'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1247"></a><tt class="py-lineno">1247</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1248"></a><tt class="py-lineno">1248</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-</div><a name="L1249"></a><tt class="py-lineno">1249</tt> <tt class="py-line"> </tt>
-<a name="DataField.isRequired"></a><div id="DataField.isRequired-def"><a name="L1250"></a><tt class="py-lineno">1250</tt> <a class="py-toggle" href="#" id="DataField.isRequired-toggle" onclick="return toggle('DataField.isRequired');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#isRequired">isRequired</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.isRequired-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.isRequired-expanded"><a name="L1251"></a><tt class="py-lineno">1251</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1252"></a><tt class="py-lineno">1252</tt> <tt class="py-line"><tt class="py-docstring"> Return in this field a required one</tt> </tt>
-<a name="L1253"></a><tt class="py-lineno">1253</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1254"></a><tt class="py-lineno">1254</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-431" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-431', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'required'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1255"></a><tt class="py-lineno">1255</tt> <tt class="py-line"> </tt>
-<a name="DataField.setDesc"></a><div id="DataField.setDesc-def"><a name="L1256"></a><tt class="py-lineno">1256</tt> <a class="py-toggle" href="#" id="DataField.setDesc-toggle" onclick="return toggle('DataField.setDesc');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setDesc">setDesc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">desc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.setDesc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setDesc-expanded"><a name="L1257"></a><tt class="py-lineno">1257</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1258"></a><tt class="py-lineno">1258</tt> <tt class="py-line"><tt class="py-docstring"> Set the description of this field</tt> </tt>
-<a name="L1259"></a><tt class="py-lineno">1259</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1260"></a><tt class="py-lineno">1260</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-432" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-432', 'setTagData', 'link-278');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'desc'</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1261"></a><tt class="py-lineno">1261</tt> <tt class="py-line"> </tt>
-<a name="DataField.getDesc"></a><div id="DataField.getDesc-def"><a name="L1262"></a><tt class="py-lineno">1262</tt> <a class="py-toggle" href="#" id="DataField.getDesc-toggle" onclick="return toggle('DataField.getDesc');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#getDesc">getDesc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.getDesc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.getDesc-expanded"><a name="L1263"></a><tt class="py-lineno">1263</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1264"></a><tt class="py-lineno">1264</tt> <tt class="py-line"><tt class="py-docstring"> Return the description of this field</tt> </tt>
-<a name="L1265"></a><tt class="py-lineno">1265</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1266"></a><tt class="py-lineno">1266</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-433" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-433', 'getTagData', 'link-272');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'desc'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1267"></a><tt class="py-lineno">1267</tt> <tt class="py-line"> </tt>
-<a name="DataField.setValue"></a><div id="DataField.setValue-def"><a name="L1268"></a><tt class="py-lineno">1268</tt> <a class="py-toggle" href="#" id="DataField.setValue-toggle" onclick="return toggle('DataField.setValue');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setValue">setValue</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.setValue-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setValue-expanded"><a name="L1269"></a><tt class="py-lineno">1269</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1270"></a><tt class="py-lineno">1270</tt> <tt class="py-line"><tt class="py-docstring"> Set the value of this field</tt> </tt>
-<a name="L1271"></a><tt class="py-lineno">1271</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1272"></a><tt class="py-lineno">1272</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-434" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-434', 'setTagData', 'link-278');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1273"></a><tt class="py-lineno">1273</tt> <tt class="py-line"> </tt>
-<a name="DataField.getValue"></a><div id="DataField.getValue-def"><a name="L1274"></a><tt class="py-lineno">1274</tt> <a class="py-toggle" href="#" id="DataField.getValue-toggle" onclick="return toggle('DataField.getValue');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#getValue">getValue</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.getValue-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.getValue-expanded"><a name="L1275"></a><tt class="py-lineno">1275</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-435" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-435', 'getTagData', 'link-272');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1276"></a><tt class="py-lineno">1276</tt> <tt class="py-line"> </tt>
-<a name="DataField.setValues"></a><div id="DataField.setValues-def"><a name="L1277"></a><tt class="py-lineno">1277</tt> <a class="py-toggle" href="#" id="DataField.setValues-toggle" onclick="return toggle('DataField.setValues');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setValues">setValues</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">lst</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.setValues-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setValues-expanded"><a name="L1278"></a><tt class="py-lineno">1278</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1279"></a><tt class="py-lineno">1279</tt> <tt class="py-line"><tt class="py-docstring"> Set the values of this field as values-list. Replaces all previous filed</tt> </tt>
-<a name="L1280"></a><tt class="py-lineno">1280</tt> <tt class="py-line"><tt class="py-docstring"> values! If you need to just add a value - use addValue method</tt> </tt>
-<a name="L1281"></a><tt class="py-lineno">1281</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1282"></a><tt class="py-lineno">1282</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-436" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-436', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1283"></a><tt class="py-lineno">1283</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-437" class="py-name"><a title="nbxmpp.simplexml.Node.delChild" class="py-name" href="#" onclick="return doclink('link-437', 'delChild', 'link-430');">delChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1284"></a><tt class="py-lineno">1284</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lst</tt><tt class="py-op">:</tt> </tt>
-<a name="L1285"></a><tt class="py-lineno">1285</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-438" class="py-name" targets="Method nbxmpp.protocol.DataField.addValue()=nbxmpp.protocol.DataField-class.html#addValue"><a title="nbxmpp.protocol.DataField.addValue" class="py-name" href="#" onclick="return doclink('link-438', 'addValue', 'link-438');">addValue</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1286"></a><tt class="py-lineno">1286</tt> <tt class="py-line"> </tt>
-<a name="DataField.addValue"></a><div id="DataField.addValue-def"><a name="L1287"></a><tt class="py-lineno">1287</tt> <a class="py-toggle" href="#" id="DataField.addValue-toggle" onclick="return toggle('DataField.addValue');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#addValue">addValue</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.addValue-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.addValue-expanded"><a name="L1288"></a><tt class="py-lineno">1288</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1289"></a><tt class="py-lineno">1289</tt> <tt class="py-line"><tt class="py-docstring"> Add one more value to this field. Used in 'get' iq's or such</tt> </tt>
-<a name="L1290"></a><tt class="py-lineno">1290</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1291"></a><tt class="py-lineno">1291</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-439" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-439', 'addChild', 'link-259');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">val</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1292"></a><tt class="py-lineno">1292</tt> <tt class="py-line"> </tt>
-<a name="DataField.getValues"></a><div id="DataField.getValues-def"><a name="L1293"></a><tt class="py-lineno">1293</tt> <a class="py-toggle" href="#" id="DataField.getValues-toggle" onclick="return toggle('DataField.getValues');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#getValues">getValues</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.getValues-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.getValues-expanded"><a name="L1294"></a><tt class="py-lineno">1294</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1295"></a><tt class="py-lineno">1295</tt> <tt class="py-line"><tt class="py-docstring"> Return the list of values associated with this field</tt> </tt>
-<a name="L1296"></a><tt class="py-lineno">1296</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1297"></a><tt class="py-lineno">1297</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1298"></a><tt class="py-lineno">1298</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-440" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-440', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1299"></a><tt class="py-lineno">1299</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-441" class="py-name"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-441', 'getData', 'link-240');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1300"></a><tt class="py-lineno">1300</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
-</div><a name="L1301"></a><tt class="py-lineno">1301</tt> <tt class="py-line"> </tt>
-<a name="DataField.getOptions"></a><div id="DataField.getOptions-def"><a name="L1302"></a><tt class="py-lineno">1302</tt> <a class="py-toggle" href="#" id="DataField.getOptions-toggle" onclick="return toggle('DataField.getOptions');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#getOptions">getOptions</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.getOptions-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.getOptions-expanded"><a name="L1303"></a><tt class="py-lineno">1303</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1304"></a><tt class="py-lineno">1304</tt> <tt class="py-line"><tt class="py-docstring"> Return label-option pairs list associated with this field</tt> </tt>
-<a name="L1305"></a><tt class="py-lineno">1305</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1306"></a><tt class="py-lineno">1306</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1307"></a><tt class="py-lineno">1307</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-442" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-442', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'option'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1308"></a><tt class="py-lineno">1308</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-443" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-443', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'label'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-444" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-444', 'getTagData', 'link-272');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1309"></a><tt class="py-lineno">1309</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
-</div><a name="L1310"></a><tt class="py-lineno">1310</tt> <tt class="py-line"> </tt>
-<a name="DataField.setOptions"></a><div id="DataField.setOptions-def"><a name="L1311"></a><tt class="py-lineno">1311</tt> <a class="py-toggle" href="#" id="DataField.setOptions-toggle" onclick="return toggle('DataField.setOptions');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setOptions">setOptions</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">lst</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.setOptions-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setOptions-expanded"><a name="L1312"></a><tt class="py-lineno">1312</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1313"></a><tt class="py-lineno">1313</tt> <tt class="py-line"><tt class="py-docstring"> Set label-option pairs list associated with this field</tt> </tt>
-<a name="L1314"></a><tt class="py-lineno">1314</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-445" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-445', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'option'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1316"></a><tt class="py-lineno">1316</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-446" class="py-name"><a title="nbxmpp.simplexml.Node.delChild" class="py-name" href="#" onclick="return doclink('link-446', 'delChild', 'link-430');">delChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'option'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1317"></a><tt class="py-lineno">1317</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">opt</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lst</tt><tt class="py-op">:</tt> </tt>
-<a name="L1318"></a><tt class="py-lineno">1318</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-447" class="py-name" targets="Method nbxmpp.protocol.DataField.addOption()=nbxmpp.protocol.DataField-class.html#addOption"><a title="nbxmpp.protocol.DataField.addOption" class="py-name" href="#" onclick="return doclink('link-447', 'addOption', 'link-447');">addOption</a></tt><tt class="py-op">(</tt><tt class="py-name">opt</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1319"></a><tt class="py-lineno">1319</tt> <tt class="py-line"> </tt>
-<a name="DataField.addOption"></a><div id="DataField.addOption-def"><a name="L1320"></a><tt class="py-lineno">1320</tt> <a class="py-toggle" href="#" id="DataField.addOption-toggle" onclick="return toggle('DataField.addOption');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#addOption">addOption</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">opt</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.addOption-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.addOption-expanded"><a name="L1321"></a><tt class="py-lineno">1321</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1322"></a><tt class="py-lineno">1322</tt> <tt class="py-line"><tt class="py-docstring"> Add one more label-option pair to this field</tt> </tt>
-<a name="L1323"></a><tt class="py-lineno">1323</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1324"></a><tt class="py-lineno">1324</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">opt</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1325"></a><tt class="py-lineno">1325</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-448" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-448', 'addChild', 'link-259');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'option'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-449" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-449', 'setTagData', 'link-278');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">,</tt> <tt class="py-name">opt</tt><tt class="py-op">)</tt> </tt>
-<a name="L1326"></a><tt class="py-lineno">1326</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1327"></a><tt class="py-lineno">1327</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-450" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-450', 'addChild', 'link-259');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'option'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'label'</tt><tt class="py-op">:</tt> <tt class="py-name">opt</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-451" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-451', 'setTagData', 'link-278');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1328"></a><tt class="py-lineno">1328</tt> <tt class="py-line"> <tt class="py-name">opt</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1329"></a><tt class="py-lineno">1329</tt> <tt class="py-line"> </tt>
-<a name="DataField.getType"></a><div id="DataField.getType-def"><a name="L1330"></a><tt class="py-lineno">1330</tt> <a class="py-toggle" href="#" id="DataField.getType-toggle" onclick="return toggle('DataField.getType');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#getType">getType</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.getType-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.getType-expanded"><a name="L1331"></a><tt class="py-lineno">1331</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1332"></a><tt class="py-lineno">1332</tt> <tt class="py-line"><tt class="py-docstring"> Get type of this field</tt> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1334"></a><tt class="py-lineno">1334</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-452" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-452', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1335"></a><tt class="py-lineno">1335</tt> <tt class="py-line"> </tt>
-<a name="DataField.setType"></a><div id="DataField.setType-def"><a name="L1336"></a><tt class="py-lineno">1336</tt> <a class="py-toggle" href="#" id="DataField.setType-toggle" onclick="return toggle('DataField.setType');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setType">setType</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.setType-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setType-expanded"><a name="L1337"></a><tt class="py-lineno">1337</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1338"></a><tt class="py-lineno">1338</tt> <tt class="py-line"><tt class="py-docstring"> Set type of this field</tt> </tt>
-<a name="L1339"></a><tt class="py-lineno">1339</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1340"></a><tt class="py-lineno">1340</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-453" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-453', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1341"></a><tt class="py-lineno">1341</tt> <tt class="py-line"> </tt>
-<a name="DataField.getVar"></a><div id="DataField.getVar-def"><a name="L1342"></a><tt class="py-lineno">1342</tt> <a class="py-toggle" href="#" id="DataField.getVar-toggle" onclick="return toggle('DataField.getVar');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#getVar">getVar</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.getVar-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.getVar-expanded"><a name="L1343"></a><tt class="py-lineno">1343</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1344"></a><tt class="py-lineno">1344</tt> <tt class="py-line"><tt class="py-docstring"> Get 'var' attribute value of this field</tt> </tt>
-<a name="L1345"></a><tt class="py-lineno">1345</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1346"></a><tt class="py-lineno">1346</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-454" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-454', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'var'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1347"></a><tt class="py-lineno">1347</tt> <tt class="py-line"> </tt>
-<a name="DataField.setVar"></a><div id="DataField.setVar-def"><a name="L1348"></a><tt class="py-lineno">1348</tt> <a class="py-toggle" href="#" id="DataField.setVar-toggle" onclick="return toggle('DataField.setVar');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setVar">setVar</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataField.setVar-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setVar-expanded"><a name="L1349"></a><tt class="py-lineno">1349</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1350"></a><tt class="py-lineno">1350</tt> <tt class="py-line"><tt class="py-docstring"> Set 'var' attribute value of this field</tt> </tt>
-<a name="L1351"></a><tt class="py-lineno">1351</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1352"></a><tt class="py-lineno">1352</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-455" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-455', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'var'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1353"></a><tt class="py-lineno">1353</tt> <tt class="py-line"> </tt>
-<a name="DataForm"></a><div id="DataForm-def"><a name="L1354"></a><tt class="py-lineno">1354</tt> <a class="py-toggle" href="#" id="DataForm-toggle" onclick="return toggle('DataForm');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html">DataForm</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="DataForm-expanded"><a name="L1355"></a><tt class="py-lineno">1355</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1356"></a><tt class="py-lineno">1356</tt> <tt class="py-line"><tt class="py-docstring"> Used for manipulating dataforms in XMPP</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1358"></a><tt class="py-lineno">1358</tt> <tt class="py-line"><tt class="py-docstring"> Relevant XEPs: 0004, 0068, 0122. Can be used in disco, pub-sub and many</tt> </tt>
-<a name="L1359"></a><tt class="py-lineno">1359</tt> <tt class="py-line"><tt class="py-docstring"> other applications.</tt> </tt>
-<a name="L1360"></a><tt class="py-lineno">1360</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="DataForm.__init__"></a><div id="DataForm.__init__-def"><a name="L1361"></a><tt class="py-lineno">1361</tt> <a class="py-toggle" href="#" id="DataForm.__init__-toggle" onclick="return toggle('DataForm.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">title</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.__init__-expanded"><a name="L1362"></a><tt class="py-lineno">1362</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1363"></a><tt class="py-lineno">1363</tt> <tt class="py-line"><tt class="py-docstring"> Create new dataform of type 'typ'. 'data' is the list of DataField</tt> </tt>
-<a name="L1364"></a><tt class="py-lineno">1364</tt> <tt class="py-line"><tt class="py-docstring"> instances that this dataform contains, 'title' - the title string. You</tt> </tt>
-<a name="L1365"></a><tt class="py-lineno">1365</tt> <tt class="py-line"><tt class="py-docstring"> can specify the 'node' argument as the other node to be used as base for</tt> </tt>
-<a name="L1366"></a><tt class="py-lineno">1366</tt> <tt class="py-line"><tt class="py-docstring"> constructing this dataform</tt> </tt>
-<a name="L1367"></a><tt class="py-lineno">1367</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1368"></a><tt class="py-lineno">1368</tt> <tt class="py-line"><tt class="py-docstring"> title and instructions is optional and SHOULD NOT contain newlines.</tt> </tt>
-<a name="L1369"></a><tt class="py-lineno">1369</tt> <tt class="py-line"><tt class="py-docstring"> Several instructions MAY be present.</tt> </tt>
-<a name="L1370"></a><tt class="py-lineno">1370</tt> <tt class="py-line"><tt class="py-docstring"> 'typ' can be one of ('form' | 'submit' | 'cancel' | 'result' )</tt> </tt>
-<a name="L1371"></a><tt class="py-lineno">1371</tt> <tt class="py-line"><tt class="py-docstring"> 'typ' of reply iq can be ( 'result' | 'set' | 'set' | 'result' ) respectively.</tt> </tt>
-<a name="L1372"></a><tt class="py-lineno">1372</tt> <tt class="py-line"><tt class="py-docstring"> 'cancel' form can not contain any fields. All other forms contains AT LEAST one field.</tt> </tt>
-<a name="L1373"></a><tt class="py-lineno">1373</tt> <tt class="py-line"><tt class="py-docstring"> 'title' MAY be included in forms of type "form" and "result"</tt> </tt>
-<a name="L1374"></a><tt class="py-lineno">1374</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1375"></a><tt class="py-lineno">1375</tt> <tt class="py-line"> <tt id="link-456" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-456', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-457" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+nbxmpp.protocol.Protocol.setType" class="py-name" href="#" onclick="return doclink('link-460', 'setType', 'link-300');">setType</a></tt><tt class="py-op">(</tt><tt class="py-string">'text-single'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1466"></a><tt class="py-lineno">1466</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">required</tt><tt class="py-op">:</tt> </tt>
+<a name="L1467"></a><tt class="py-lineno">1467</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-461" class="py-name" targets="Method nbxmpp.protocol.DataField.setRequired()=nbxmpp.protocol.DataField-class.html#setRequired"><a title="nbxmpp.protocol.DataField.setRequired" class="py-name" href="#" onclick="return doclink('link-461', 'setRequired', 'link-461');">setRequired</a></tt><tt class="py-op">(</tt><tt class="py-name">required</tt><tt class="py-op">)</tt> </tt>
+<a name="L1468"></a><tt class="py-lineno">1468</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">:</tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-462" class="py-name" targets="Method nbxmpp.protocol.DataField.setDesc()=nbxmpp.protocol.DataField-class.html#setDesc"><a title="nbxmpp.protocol.DataField.setDesc" class="py-name" href="#" onclick="return doclink('link-462', 'setDesc', 'link-462');">setDesc</a></tt><tt class="py-op">(</tt><tt class="py-name">desc</tt><tt class="py-op">)</tt> </tt>
+<a name="L1470"></a><tt class="py-lineno">1470</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">options</tt><tt class="py-op">:</tt> </tt>
+<a name="L1471"></a><tt class="py-lineno">1471</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-463" class="py-name" targets="Method nbxmpp.protocol.DataField.setOptions()=nbxmpp.protocol.DataField-class.html#setOptions"><a title="nbxmpp.protocol.DataField.setOptions" class="py-name" href="#" onclick="return doclink('link-463', 'setOptions', 'link-463');">setOptions</a></tt><tt class="py-op">(</tt><tt class="py-name">options</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1472"></a><tt class="py-lineno">1472</tt> <tt class="py-line"> </tt>
+<a name="DataField.setRequired"></a><div id="DataField.setRequired-def"><a name="L1473"></a><tt class="py-lineno">1473</tt> <a class="py-toggle" href="#" id="DataField.setRequired-toggle" onclick="return toggle('DataField.setRequired');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setRequired">setRequired</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">req</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.setRequired-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setRequired-expanded"><a name="L1474"></a><tt class="py-lineno">1474</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1475"></a><tt class="py-lineno">1475</tt> <tt class="py-line"><tt class="py-docstring"> Change the state of the 'required' flag</tt> </tt>
+<a name="L1476"></a><tt class="py-lineno">1476</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1477"></a><tt class="py-lineno">1477</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">req</tt><tt class="py-op">:</tt> </tt>
+<a name="L1478"></a><tt class="py-lineno">1478</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-464', 'setTag', 'link-302');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'required'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1479"></a><tt class="py-lineno">1479</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1480"></a><tt class="py-lineno">1480</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1481"></a><tt class="py-lineno">1481</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-465" class="py-name" targets="Method nbxmpp.simplexml.Node.delChild()=nbxmpp.simplexml.Node-class.html#delChild"><a title="nbxmpp.simplexml.Node.delChild" class="py-name" href="#" onclick="return doclink('link-465', 'delChild', 'link-465');">delChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'required'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1482"></a><tt class="py-lineno">1482</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1483"></a><tt class="py-lineno">1483</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+</div><a name="L1484"></a><tt class="py-lineno">1484</tt> <tt class="py-line"> </tt>
+<a name="DataField.isRequired"></a><div id="DataField.isRequired-def"><a name="L1485"></a><tt class="py-lineno">1485</tt> <a class="py-toggle" href="#" id="DataField.isRequired-toggle" onclick="return toggle('DataField.isRequired');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#isRequired">isRequired</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.isRequired-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.isRequired-expanded"><a name="L1486"></a><tt class="py-lineno">1486</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1487"></a><tt class="py-lineno">1487</tt> <tt class="py-line"><tt class="py-docstring"> Return in this field a required one</tt> </tt>
+<a name="L1488"></a><tt class="py-lineno">1488</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1489"></a><tt class="py-lineno">1489</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-466', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'required'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1490"></a><tt class="py-lineno">1490</tt> <tt class="py-line"> </tt>
+<a name="DataField.setDesc"></a><div id="DataField.setDesc-def"><a name="L1491"></a><tt class="py-lineno">1491</tt> <a class="py-toggle" href="#" id="DataField.setDesc-toggle" onclick="return toggle('DataField.setDesc');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setDesc">setDesc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">desc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.setDesc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setDesc-expanded"><a name="L1492"></a><tt class="py-lineno">1492</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1493"></a><tt class="py-lineno">1493</tt> <tt class="py-line"><tt class="py-docstring"> Set the description of this field</tt> </tt>
+<a name="L1494"></a><tt class="py-lineno">1494</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1495"></a><tt class="py-lineno">1495</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-467" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-467', 'setTagData', 'link-320');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'desc'</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1496"></a><tt class="py-lineno">1496</tt> <tt class="py-line"> </tt>
+<a name="DataField.getDesc"></a><div id="DataField.getDesc-def"><a name="L1497"></a><tt class="py-lineno">1497</tt> <a class="py-toggle" href="#" id="DataField.getDesc-toggle" onclick="return toggle('DataField.getDesc');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#getDesc">getDesc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.getDesc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.getDesc-expanded"><a name="L1498"></a><tt class="py-lineno">1498</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</tt> <tt class="py-line"><tt class="py-docstring"> Return the description of this field</tt> </tt>
+<a name="L1500"></a><tt class="py-lineno">1500</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-468" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-468', 'getTagData', 'link-314');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'desc'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1502"></a><tt class="py-lineno">1502</tt> <tt class="py-line"> </tt>
+<a name="DataField.setValue"></a><div id="DataField.setValue-def"><a name="L1503"></a><tt class="py-lineno">1503</tt> <a class="py-toggle" href="#" id="DataField.setValue-toggle" onclick="return toggle('DataField.setValue');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setValue">setValue</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.setValue-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setValue-expanded"><a name="L1504"></a><tt class="py-lineno">1504</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1505"></a><tt class="py-lineno">1505</tt> <tt class="py-line"><tt class="py-docstring"> Set the value of this field</tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1507"></a><tt class="py-lineno">1507</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-469" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-469', 'setTagData', 'link-320');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1508"></a><tt class="py-lineno">1508</tt> <tt class="py-line"> </tt>
+<a name="DataField.getValue"></a><div id="DataField.getValue-def"><a name="L1509"></a><tt class="py-lineno">1509</tt> <a class="py-toggle" href="#" id="DataField.getValue-toggle" onclick="return toggle('DataField.getValue');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#getValue">getValue</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.getValue-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.getValue-expanded"><a name="L1510"></a><tt class="py-lineno">1510</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-470" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-470', 'getTagData', 'link-314');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1511"></a><tt class="py-lineno">1511</tt> <tt class="py-line"> </tt>
+<a name="DataField.setValues"></a><div id="DataField.setValues-def"><a name="L1512"></a><tt class="py-lineno">1512</tt> <a class="py-toggle" href="#" id="DataField.setValues-toggle" onclick="return toggle('DataField.setValues');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setValues">setValues</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">lst</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.setValues-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setValues-expanded"><a name="L1513"></a><tt class="py-lineno">1513</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1514"></a><tt class="py-lineno">1514</tt> <tt class="py-line"><tt class="py-docstring"> Set the values of this field as values-list. Replaces all previous filed</tt> </tt>
+<a name="L1515"></a><tt class="py-lineno">1515</tt> <tt class="py-line"><tt class="py-docstring"> values! If you need to just add a value - use addValue method</tt> </tt>
+<a name="L1516"></a><tt class="py-lineno">1516</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1517"></a><tt class="py-lineno">1517</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-471" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-471', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1518"></a><tt class="py-lineno">1518</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-472" class="py-name"><a title="nbxmpp.simplexml.Node.delChild" class="py-name" href="#" onclick="return doclink('link-472', 'delChild', 'link-465');">delChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1519"></a><tt class="py-lineno">1519</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lst</tt><tt class="py-op">:</tt> </tt>
+<a name="L1520"></a><tt class="py-lineno">1520</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-473" class="py-name" targets="Method nbxmpp.protocol.DataField.addValue()=nbxmpp.protocol.DataField-class.html#addValue"><a title="nbxmpp.protocol.DataField.addValue" class="py-name" href="#" onclick="return doclink('link-473', 'addValue', 'link-473');">addValue</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1521"></a><tt class="py-lineno">1521</tt> <tt class="py-line"> </tt>
+<a name="DataField.addValue"></a><div id="DataField.addValue-def"><a name="L1522"></a><tt class="py-lineno">1522</tt> <a class="py-toggle" href="#" id="DataField.addValue-toggle" onclick="return toggle('DataField.addValue');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#addValue">addValue</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.addValue-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.addValue-expanded"><a name="L1523"></a><tt class="py-lineno">1523</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1524"></a><tt class="py-lineno">1524</tt> <tt class="py-line"><tt class="py-docstring"> Add one more value to this field. Used in 'get' iq's or such</tt> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1526"></a><tt class="py-lineno">1526</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-474" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-474', 'addChild', 'link-301');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">val</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1527"></a><tt class="py-lineno">1527</tt> <tt class="py-line"> </tt>
+<a name="DataField.getValues"></a><div id="DataField.getValues-def"><a name="L1528"></a><tt class="py-lineno">1528</tt> <a class="py-toggle" href="#" id="DataField.getValues-toggle" onclick="return toggle('DataField.getValues');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#getValues">getValues</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.getValues-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.getValues-expanded"><a name="L1529"></a><tt class="py-lineno">1529</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</tt> <tt class="py-line"><tt class="py-docstring"> Return the list of values associated with this field</tt> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-475" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-475', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-476" class="py-name"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-476', 'getData', 'link-282');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
+</div><a name="L1536"></a><tt class="py-lineno">1536</tt> <tt class="py-line"> </tt>
+<a name="DataField.getOptions"></a><div id="DataField.getOptions-def"><a name="L1537"></a><tt class="py-lineno">1537</tt> <a class="py-toggle" href="#" id="DataField.getOptions-toggle" onclick="return toggle('DataField.getOptions');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#getOptions">getOptions</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.getOptions-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.getOptions-expanded"><a name="L1538"></a><tt class="py-lineno">1538</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt> <tt class="py-line"><tt class="py-docstring"> Return label-option pairs list associated with this field</tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">tag</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-477" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-477', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'option'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-478" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-478', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'label'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt id="link-479" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-479', 'getTagData', 'link-314');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1544"></a><tt class="py-lineno">1544</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
+</div><a name="L1545"></a><tt class="py-lineno">1545</tt> <tt class="py-line"> </tt>
+<a name="DataField.setOptions"></a><div id="DataField.setOptions-def"><a name="L1546"></a><tt class="py-lineno">1546</tt> <a class="py-toggle" href="#" id="DataField.setOptions-toggle" onclick="return toggle('DataField.setOptions');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setOptions">setOptions</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">lst</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.setOptions-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setOptions-expanded"><a name="L1547"></a><tt class="py-lineno">1547</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1548"></a><tt class="py-lineno">1548</tt> <tt class="py-line"><tt class="py-docstring"> Set label-option pairs list associated with this field</tt> </tt>
+<a name="L1549"></a><tt class="py-lineno">1549</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1550"></a><tt class="py-lineno">1550</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-480" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-480', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'option'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1551"></a><tt class="py-lineno">1551</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-481" class="py-name"><a title="nbxmpp.simplexml.Node.delChild" class="py-name" href="#" onclick="return doclink('link-481', 'delChild', 'link-465');">delChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'option'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1552"></a><tt class="py-lineno">1552</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">opt</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lst</tt><tt class="py-op">:</tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-482" class="py-name" targets="Method nbxmpp.protocol.DataField.addOption()=nbxmpp.protocol.DataField-class.html#addOption"><a title="nbxmpp.protocol.DataField.addOption" class="py-name" href="#" onclick="return doclink('link-482', 'addOption', 'link-482');">addOption</a></tt><tt class="py-op">(</tt><tt class="py-name">opt</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1554"></a><tt class="py-lineno">1554</tt> <tt class="py-line"> </tt>
+<a name="DataField.addOption"></a><div id="DataField.addOption-def"><a name="L1555"></a><tt class="py-lineno">1555</tt> <a class="py-toggle" href="#" id="DataField.addOption-toggle" onclick="return toggle('DataField.addOption');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#addOption">addOption</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">opt</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.addOption-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.addOption-expanded"><a name="L1556"></a><tt class="py-lineno">1556</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt> <tt class="py-line"><tt class="py-docstring"> Add one more label-option pair to this field</tt> </tt>
+<a name="L1558"></a><tt class="py-lineno">1558</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1559"></a><tt class="py-lineno">1559</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">opt</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1560"></a><tt class="py-lineno">1560</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-483" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-483', 'addChild', 'link-301');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'option'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-484" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-484', 'setTagData', 'link-320');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">,</tt> <tt class="py-name">opt</tt><tt class="py-op">)</tt> </tt>
+<a name="L1561"></a><tt class="py-lineno">1561</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1562"></a><tt class="py-lineno">1562</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-485" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-485', 'addChild', 'link-301');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'option'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'label'</tt><tt class="py-op">:</tt> <tt class="py-name">opt</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-486" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-486', 'setTagData', 'link-320');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1563"></a><tt class="py-lineno">1563</tt> <tt class="py-line"> <tt class="py-name">opt</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1564"></a><tt class="py-lineno">1564</tt> <tt class="py-line"> </tt>
+<a name="DataField.getType"></a><div id="DataField.getType-def"><a name="L1565"></a><tt class="py-lineno">1565</tt> <a class="py-toggle" href="#" id="DataField.getType-toggle" onclick="return toggle('DataField.getType');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#getType">getType</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.getType-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.getType-expanded"><a name="L1566"></a><tt class="py-lineno">1566</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1567"></a><tt class="py-lineno">1567</tt> <tt class="py-line"><tt class="py-docstring"> Get type of this field</tt> </tt>
+<a name="L1568"></a><tt class="py-lineno">1568</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-487" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-487', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1570"></a><tt class="py-lineno">1570</tt> <tt class="py-line"> </tt>
+<a name="DataField.setType"></a><div id="DataField.setType-def"><a name="L1571"></a><tt class="py-lineno">1571</tt> <a class="py-toggle" href="#" id="DataField.setType-toggle" onclick="return toggle('DataField.setType');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setType">setType</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.setType-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setType-expanded"><a name="L1572"></a><tt class="py-lineno">1572</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1573"></a><tt class="py-lineno">1573</tt> <tt class="py-line"><tt class="py-docstring"> Set type of this field</tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-488" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-488', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1576"></a><tt class="py-lineno">1576</tt> <tt class="py-line"> </tt>
+<a name="DataField.getVar"></a><div id="DataField.getVar-def"><a name="L1577"></a><tt class="py-lineno">1577</tt> <a class="py-toggle" href="#" id="DataField.getVar-toggle" onclick="return toggle('DataField.getVar');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#getVar">getVar</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.getVar-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.getVar-expanded"><a name="L1578"></a><tt class="py-lineno">1578</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt> <tt class="py-line"><tt class="py-docstring"> Get 'var' attribute value of this field</tt> </tt>
+<a name="L1580"></a><tt class="py-lineno">1580</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1581"></a><tt class="py-lineno">1581</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-489" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-489', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'var'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1582"></a><tt class="py-lineno">1582</tt> <tt class="py-line"> </tt>
+<a name="DataField.setVar"></a><div id="DataField.setVar-def"><a name="L1583"></a><tt class="py-lineno">1583</tt> <a class="py-toggle" href="#" id="DataField.setVar-toggle" onclick="return toggle('DataField.setVar');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataField-class.html#setVar">setVar</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataField.setVar-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataField.setVar-expanded"><a name="L1584"></a><tt class="py-lineno">1584</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt> <tt class="py-line"><tt class="py-docstring"> Set 'var' attribute value of this field</tt> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-490" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-490', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'var'</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1588"></a><tt class="py-lineno">1588</tt> <tt class="py-line"> </tt>
+<a name="DataForm"></a><div id="DataForm-def"><a name="L1589"></a><tt class="py-lineno">1589</tt> <a class="py-toggle" href="#" id="DataForm-toggle" onclick="return toggle('DataForm');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html">DataForm</a><tt class="py-op">(</tt><tt class="py-base-class">Node</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="DataForm-expanded"><a name="L1590"></a><tt class="py-lineno">1590</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt> <tt class="py-line"><tt class="py-docstring"> Used for manipulating dataforms in XMPP</tt> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt> <tt class="py-line"><tt class="py-docstring"> Relevant XEPs: 0004, 0068, 0122. Can be used in disco, pub-sub and many</tt> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt> <tt class="py-line"><tt class="py-docstring"> other applications.</tt> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="DataForm.__init__"></a><div id="DataForm.__init__-def"><a name="L1596"></a><tt class="py-lineno">1596</tt> <a class="py-toggle" href="#" id="DataForm.__init__-toggle" onclick="return toggle('DataForm.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">title</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">node</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.__init__-expanded"><a name="L1597"></a><tt class="py-lineno">1597</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1598"></a><tt class="py-lineno">1598</tt> <tt class="py-line"><tt class="py-docstring"> Create new dataform of type 'typ'. 'data' is the list of DataField</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt> <tt class="py-line"><tt class="py-docstring"> instances that this dataform contains, 'title' - the title string. You</tt> </tt>
+<a name="L1600"></a><tt class="py-lineno">1600</tt> <tt class="py-line"><tt class="py-docstring"> can specify the 'node' argument as the other node to be used as base for</tt> </tt>
+<a name="L1601"></a><tt class="py-lineno">1601</tt> <tt class="py-line"><tt class="py-docstring"> constructing this dataform</tt> </tt>
+<a name="L1602"></a><tt class="py-lineno">1602</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1603"></a><tt class="py-lineno">1603</tt> <tt class="py-line"><tt class="py-docstring"> title and instructions is optional and SHOULD NOT contain newlines.</tt> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt> <tt class="py-line"><tt class="py-docstring"> Several instructions MAY be present.</tt> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt> <tt class="py-line"><tt class="py-docstring"> 'typ' can be one of ('form' | 'submit' | 'cancel' | 'result' )</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt> <tt class="py-line"><tt class="py-docstring"> 'typ' of reply iq can be ( 'result' | 'set' | 'set' | 'result' ) respectively.</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt> <tt class="py-line"><tt class="py-docstring"> 'cancel' form can not contain any fields. All other forms contains AT LEAST one field.</tt> </tt>
+<a name="L1608"></a><tt class="py-lineno">1608</tt> <tt class="py-line"><tt class="py-docstring"> 'title' MAY be included in forms of type "form" and "result"</tt> </tt>
+<a name="L1609"></a><tt class="py-lineno">1609</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt> <tt class="py-line"> <tt id="link-491" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-491', 'Node', 'link-1');">Node</a></tt><tt class="py-op">.</tt><tt id="link-492" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -1989,141 +2208,131 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-457', '__init__', 'link-206');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
-<a name="L1376"></a><tt class="py-lineno">1376</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1377"></a><tt class="py-lineno">1377</tt> <tt class="py-line"> <tt class="py-name">newkids</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-458" class="py-name" targets="Variable nbxmpp.stringprepare.NamePrep.n=nbxmpp.stringprepare.NamePrep-class.html#n"><a title="nbxmpp.stringprepare.NamePrep.n" class="py-name" href="#" onclick="return doclink('link-458', 'n', 'link-458');">n</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-459" class="py-name"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-459', 'getChildren', 'link-237');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-460" class="py-name"><a title="nbxmpp.stringprepare.NamePrep.n" class="py-name" href="#" onclick="return doclink('link-460', 'n', 'link-458');">n</a></tt><tt class="py-op">.</tt><tt id="link-461" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-461', 'getName', 'link-238');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'field'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1380"></a><tt class="py-lineno">1380</tt> <tt class="py-line"> <tt class="py-name">newkids</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-462" class="py-name" targets="Class nbxmpp.protocol.DataField=nbxmpp.protocol.DataField-class.html"><a title="nbxmpp.protocol.DataField" class="py-name" href="#" onclick="return doclink('link-462', 'DataField', 'link-462');">DataField</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt id="link-463" class="py-name"><a title="nbxmpp.stringprepare.NamePrep.n" class="py-name" href="#" onclick="return doclink('link-463', 'n', 'link-458');">n</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1382"></a><tt class="py-lineno">1382</tt> <tt class="py-line"> <tt class="py-name">newkids</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-464" class="py-name"><a title="nbxmpp.stringprepare.NamePrep.n" class="py-name" href="#" onclick="return doclink('link-464', 'n', 'link-458');">n</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1383"></a><tt class="py-lineno">1383</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt> <tt class="py-op">=</tt> <tt class="py-name">newkids</tt> </tt>
-<a name="L1384"></a><tt class="py-lineno">1384</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-465" class="py-name"><a title="nbxmpp.protocol.DataField.setType
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-492', '__init__', 'link-249');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt> <tt class="py-line"> <tt class="py-name">newkids</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1613"></a><tt class="py-lineno">1613</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-493" class="py-name" targets="Variable nbxmpp.stringprepare.NamePrep.n=nbxmpp.stringprepare.NamePrep-class.html#n"><a title="nbxmpp.stringprepare.NamePrep.n" class="py-name" href="#" onclick="return doclink('link-493', 'n', 'link-493');">n</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-494" class="py-name"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-494', 'getChildren', 'link-279');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-495" class="py-name"><a title="nbxmpp.stringprepare.NamePrep.n" class="py-name" href="#" onclick="return doclink('link-495', 'n', 'link-493');">n</a></tt><tt class="py-op">.</tt><tt id="link-496" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-496', 'getName', 'link-280');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'field'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt> <tt class="py-line"> <tt class="py-name">newkids</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-497" class="py-name" targets="Class nbxmpp.protocol.DataField=nbxmpp.protocol.DataField-class.html"><a title="nbxmpp.protocol.DataField" class="py-name" href="#" onclick="return doclink('link-497', 'DataField', 'link-497');">DataField</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt id="link-498" class="py-name"><a title="nbxmpp.stringprepare.NamePrep.n" class="py-name" href="#" onclick="return doclink('link-498', 'n', 'link-493');">n</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt> <tt class="py-line"> <tt class="py-name">newkids</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-499" class="py-name"><a title="nbxmpp.stringprepare.NamePrep.n" class="py-name" href="#" onclick="return doclink('link-499', 'n', 'link-493');">n</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt> <tt class="py-op">=</tt> <tt class="py-name">newkids</tt> </tt>
+<a name="L1619"></a><tt class="py-lineno">1619</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">typ</tt><tt class="py-op">:</tt> </tt>
+<a name="L1620"></a><tt class="py-lineno">1620</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-500" class="py-name"><a title="nbxmpp.protocol.DataField.setType
nbxmpp.protocol.DataForm.setType
-nbxmpp.protocol.Protocol.setType" class="py-name" href="#" onclick="return doclink('link-465', 'setType', 'link-258');">setType</a></tt><tt class="py-op">(</tt><tt class="py-name">typ</tt><tt class="py-op">)</tt> </tt>
-<a name="L1386"></a><tt class="py-lineno">1386</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-466', 'setNamespace', 'link-207');">setNamespace</a></tt><tt class="py-op">(</tt><tt id="link-467" class="py-name"><a title="nbxmpp.protocol.NS_DATA" class="py-name" href="#" onclick="return doclink('link-467', 'NS_DATA', 'link-40');">NS_DATA</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1387"></a><tt class="py-lineno">1387</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">title</tt><tt class="py-op">:</tt> </tt>
-<a name="L1388"></a><tt class="py-lineno">1388</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-468" class="py-name" targets="Method nbxmpp.protocol.DataForm.setTitle()=nbxmpp.protocol.DataForm-class.html#setTitle"><a title="nbxmpp.protocol.DataForm.setTitle" class="py-name" href="#" onclick="return doclink('link-468', 'setTitle', 'link-468');">setTitle</a></tt><tt class="py-op">(</tt><tt class="py-name">title</tt><tt class="py-op">)</tt> </tt>
-<a name="L1389"></a><tt class="py-lineno">1389</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">dict</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1390"></a><tt class="py-lineno">1390</tt> <tt class="py-line"> <tt class="py-name">newdata</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1391"></a><tt class="py-lineno">1391</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-469" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-469', 'name', 'link-165');">name</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-470" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-470', 'keys', 'link-252');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1392"></a><tt class="py-lineno">1392</tt> <tt class="py-line"> <tt class="py-name">newdata</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-471" class="py-name"><a title="nbxmpp.protocol.DataField" class="py-name" href="#" onclick="return doclink('link-471', 'DataField', 'link-462');">DataField</a></tt><tt class="py-op">(</tt><tt id="link-472" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-472', 'name', 'link-165');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt id="link-473" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-473', 'name', 'link-165');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">newdata</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
-<a name="L1395"></a><tt class="py-lineno">1395</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-474" class="py-name" targets="Method nbxmpp.protocol.DataForm.addInstructions()=nbxmpp.protocol.DataForm-class.html#addInstructions"><a title="nbxmpp.protocol.DataForm.addInstructions" class="py-name" href="#" onclick="return doclink('link-474', 'addInstructions', 'link-474');">addInstructions</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
-<a name="L1397"></a><tt class="py-lineno">1397</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'DataField'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
-<a name="L1399"></a><tt class="py-lineno">1399</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1400"></a><tt class="py-lineno">1400</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-475" class="py-name"><a title="nbxmpp.protocol.DataField" class="py-name" href="#" onclick="return doclink('link-475', 'DataField', 'link-462');">DataField</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1401"></a><tt class="py-lineno">1401</tt> <tt class="py-line"> </tt>
-<a name="DataForm.getType"></a><div id="DataForm.getType-def"><a name="L1402"></a><tt class="py-lineno">1402</tt> <a class="py-toggle" href="#" id="DataForm.getType-toggle" onclick="return toggle('DataForm.getType');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#getType">getType</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.getType-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.getType-expanded"><a name="L1403"></a><tt class="py-lineno">1403</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt> <tt class="py-line"><tt class="py-docstring"> Return the type of dataform</tt> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1406"></a><tt class="py-lineno">1406</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-476" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-476', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1407"></a><tt class="py-lineno">1407</tt> <tt class="py-line"> </tt>
-<a name="DataForm.setType"></a><div id="DataForm.setType-def"><a name="L1408"></a><tt class="py-lineno">1408</tt> <a class="py-toggle" href="#" id="DataForm.setType-toggle" onclick="return toggle('DataForm.setType');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#setType">setType</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.setType-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.setType-expanded"><a name="L1409"></a><tt class="py-lineno">1409</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1410"></a><tt class="py-lineno">1410</tt> <tt class="py-line"><tt class="py-docstring"> Set the type of dataform</tt> </tt>
-<a name="L1411"></a><tt class="py-lineno">1411</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1412"></a><tt class="py-lineno">1412</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-477" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-477', 'setAttr', 'link-229');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1413"></a><tt class="py-lineno">1413</tt> <tt class="py-line"> </tt>
-<a name="DataForm.getTitle"></a><div id="DataForm.getTitle-def"><a name="L1414"></a><tt class="py-lineno">1414</tt> <a class="py-toggle" href="#" id="DataForm.getTitle-toggle" onclick="return toggle('DataForm.getTitle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#getTitle">getTitle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.getTitle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.getTitle-expanded"><a name="L1415"></a><tt class="py-lineno">1415</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1416"></a><tt class="py-lineno">1416</tt> <tt class="py-line"><tt class="py-docstring"> Return the title of dataform</tt> </tt>
-<a name="L1417"></a><tt class="py-lineno">1417</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1418"></a><tt class="py-lineno">1418</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-478" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-478', 'getTagData', 'link-272');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'title'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1419"></a><tt class="py-lineno">1419</tt> <tt class="py-line"> </tt>
-<a name="DataForm.setTitle"></a><div id="DataForm.setTitle-def"><a name="L1420"></a><tt class="py-lineno">1420</tt> <a class="py-toggle" href="#" id="DataForm.setTitle-toggle" onclick="return toggle('DataForm.setTitle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#setTitle">setTitle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.setTitle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.setTitle-expanded"><a name="L1421"></a><tt class="py-lineno">1421</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt> <tt class="py-line"><tt class="py-docstring"> Set the title of dataform</tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-479" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-479', 'setTagData', 'link-278');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'title'</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1425"></a><tt class="py-lineno">1425</tt> <tt class="py-line"> </tt>
-<a name="DataForm.getInstructions"></a><div id="DataForm.getInstructions-def"><a name="L1426"></a><tt class="py-lineno">1426</tt> <a class="py-toggle" href="#" id="DataForm.getInstructions-toggle" onclick="return toggle('DataForm.getInstructions');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#getInstructions">getInstructions</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.getInstructions-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.getInstructions-expanded"><a name="L1427"></a><tt class="py-lineno">1427</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1428"></a><tt class="py-lineno">1428</tt> <tt class="py-line"><tt class="py-docstring"> Return the instructions of dataform</tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-480" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-480', 'getTagData', 'link-272');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'instructions'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1431"></a><tt class="py-lineno">1431</tt> <tt class="py-line"> </tt>
-<a name="DataForm.setInstructions"></a><div id="DataForm.setInstructions-def"><a name="L1432"></a><tt class="py-lineno">1432</tt> <a class="py-toggle" href="#" id="DataForm.setInstructions-toggle" onclick="return toggle('DataForm.setInstructions');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#setInstructions">setInstructions</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.setInstructions-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.setInstructions-expanded"><a name="L1433"></a><tt class="py-lineno">1433</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1434"></a><tt class="py-lineno">1434</tt> <tt class="py-line"><tt class="py-docstring"> Set the instructions of dataform</tt> </tt>
-<a name="L1435"></a><tt class="py-lineno">1435</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1436"></a><tt class="py-lineno">1436</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-481" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-481', 'setTagData', 'link-278');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'instructions'</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1437"></a><tt class="py-lineno">1437</tt> <tt class="py-line"> </tt>
-<a name="DataForm.addInstructions"></a><div id="DataForm.addInstructions-def"><a name="L1438"></a><tt class="py-lineno">1438</tt> <a class="py-toggle" href="#" id="DataForm.addInstructions-toggle" onclick="return toggle('DataForm.addInstructions');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#addInstructions">addInstructions</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.addInstructions-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.addInstructions-expanded"><a name="L1439"></a><tt class="py-lineno">1439</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt> <tt class="py-line"><tt class="py-docstring"> Add one more instruction to the dataform</tt> </tt>
-<a name="L1441"></a><tt class="py-lineno">1441</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1442"></a><tt class="py-lineno">1442</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-482" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-482', 'addChild', 'link-259');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'instructions'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">text</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1443"></a><tt class="py-lineno">1443</tt> <tt class="py-line"> </tt>
-<a name="DataForm.getField"></a><div id="DataForm.getField-def"><a name="L1444"></a><tt class="py-lineno">1444</tt> <a class="py-toggle" href="#" id="DataForm.getField-toggle" onclick="return toggle('DataForm.getField');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#getField">getField</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.getField-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.getField-expanded"><a name="L1445"></a><tt class="py-lineno">1445</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1446"></a><tt class="py-lineno">1446</tt> <tt class="py-line"><tt class="py-docstring"> Return the datafield object with name 'name' (if exists)</tt> </tt>
-<a name="L1447"></a><tt class="py-lineno">1447</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1448"></a><tt class="py-lineno">1448</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-483" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-483', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'field'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'var'</tt><tt class="py-op">:</tt> <tt id="link-484" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-484', 'name', 'link-165');">name</a></tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1449"></a><tt class="py-lineno">1449</tt> <tt class="py-line"> </tt>
-<a name="DataForm.setField"></a><div id="DataForm.setField-def"><a name="L1450"></a><tt class="py-lineno">1450</tt> <a class="py-toggle" href="#" id="DataForm.setField-toggle" onclick="return toggle('DataForm.setField');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#setField">setField</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.setField-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.setField-expanded"><a name="L1451"></a><tt class="py-lineno">1451</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1452"></a><tt class="py-lineno">1452</tt> <tt class="py-line"><tt class="py-docstring"> Create if nessessary or get the existing datafield object with name</tt> </tt>
-<a name="L1453"></a><tt class="py-lineno">1453</tt> <tt class="py-line"><tt class="py-docstring"> 'name' and return it</tt> </tt>
-<a name="L1454"></a><tt class="py-lineno">1454</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1455"></a><tt class="py-lineno">1455</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-485" class="py-name" targets="Method nbxmpp.protocol.DataForm.getField()=nbxmpp.protocol.DataForm-class.html#getField"><a title="nbxmpp.protocol.DataForm.getField" class="py-name" href="#" onclick="return doclink('link-485', 'getField', 'link-485');">getField</a></tt><tt class="py-op">(</tt><tt id="link-486" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-486', 'name', 'link-165');">name</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
-<a name="L1457"></a><tt class="py-lineno">1457</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">f</tt> </tt>
-<a name="L1458"></a><tt class="py-lineno">1458</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-487" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-487', 'addChild', 'link-259');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt id="link-488" class="py-name"><a title="nbxmpp.protocol.DataField" class="py-name" href="#" onclick="return doclink('link-488', 'DataField', 'link-462');">DataField</a></tt><tt class="py-op">(</tt><tt id="link-489" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-489', 'name', 'link-165');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1459"></a><tt class="py-lineno">1459</tt> <tt class="py-line"> </tt>
-<a name="DataForm.asDict"></a><div id="DataForm.asDict-def"><a name="L1460"></a><tt class="py-lineno">1460</tt> <a class="py-toggle" href="#" id="DataForm.asDict-toggle" onclick="return toggle('DataForm.asDict');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#asDict">asDict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.asDict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.asDict-expanded"><a name="L1461"></a><tt class="py-lineno">1461</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1462"></a><tt class="py-lineno">1462</tt> <tt class="py-line"><tt class="py-docstring"> Represent dataform as simple dictionary mapping of datafield names to</tt> </tt>
-<a name="L1463"></a><tt class="py-lineno">1463</tt> <tt class="py-line"><tt class="py-docstring"> their values</tt> </tt>
-<a name="L1464"></a><tt class="py-lineno">1464</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1465"></a><tt class="py-lineno">1465</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">field</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-490" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-490', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'field'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt> <tt class="py-line"> <tt id="link-491" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-491', 'name', 'link-165');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">field</tt><tt class="py-op">.</tt><tt id="link-492" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-492', 'getAttr', 'link-217');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'var'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1468"></a><tt class="py-lineno">1468</tt> <tt class="py-line"> <tt class="py-name">typ</tt> <tt class="py-op">=</tt> <tt class="py-name">field</tt><tt class="py-op">.</tt><tt id="link-493" class="py-name"><a title="nbxmpp.protocol.DataField.getType
+nbxmpp.protocol.Protocol.setType" class="py-name" href="#" onclick="return doclink('link-500', 'setType', 'link-300');">setType</a></tt><tt class="py-op">(</tt><tt class="py-name">typ</tt><tt class="py-op">)</tt> </tt>
+<a name="L1621"></a><tt class="py-lineno">1621</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-501" class="py-name"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-501', 'setNamespace', 'link-250');">setNamespace</a></tt><tt class="py-op">(</tt><tt id="link-502" class="py-name"><a title="nbxmpp.protocol.NS_DATA" class="py-name" href="#" onclick="return doclink('link-502', 'NS_DATA', 'link-42');">NS_DATA</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1622"></a><tt class="py-lineno">1622</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">title</tt><tt class="py-op">:</tt> </tt>
+<a name="L1623"></a><tt class="py-lineno">1623</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-503" class="py-name" targets="Method nbxmpp.protocol.DataForm.setTitle()=nbxmpp.protocol.DataForm-class.html#setTitle"><a title="nbxmpp.protocol.DataForm.setTitle" class="py-name" href="#" onclick="return doclink('link-503', 'setTitle', 'link-503');">setTitle</a></tt><tt class="py-op">(</tt><tt class="py-name">title</tt><tt class="py-op">)</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">dict</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt> <tt class="py-line"> <tt class="py-name">newdata</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1626"></a><tt class="py-lineno">1626</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-504" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-504', 'keys', 'link-294');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt> <tt class="py-line"> <tt class="py-name">newdata</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-505" class="py-name"><a title="nbxmpp.protocol.DataField" class="py-name" href="#" onclick="return doclink('link-505', 'DataField', 'link-497');">DataField</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1628"></a><tt class="py-lineno">1628</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">newdata</tt> </tt>
+<a name="L1629"></a><tt class="py-lineno">1629</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
+<a name="L1630"></a><tt class="py-lineno">1630</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1631"></a><tt class="py-lineno">1631</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-506" class="py-name" targets="Method nbxmpp.protocol.DataForm.addInstructions()=nbxmpp.protocol.DataForm-class.html#addInstructions"><a title="nbxmpp.protocol.DataForm.addInstructions" class="py-name" href="#" onclick="return doclink('link-506', 'addInstructions', 'link-506');">addInstructions</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
+<a name="L1632"></a><tt class="py-lineno">1632</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'DataField'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1633"></a><tt class="py-lineno">1633</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
+<a name="L1634"></a><tt class="py-lineno">1634</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1635"></a><tt class="py-lineno">1635</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-507" class="py-name"><a title="nbxmpp.protocol.DataField" class="py-name" href="#" onclick="return doclink('link-507', 'DataField', 'link-497');">DataField</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1636"></a><tt class="py-lineno">1636</tt> <tt class="py-line"> </tt>
+<a name="DataForm.getType"></a><div id="DataForm.getType-def"><a name="L1637"></a><tt class="py-lineno">1637</tt> <a class="py-toggle" href="#" id="DataForm.getType-toggle" onclick="return toggle('DataForm.getType');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#getType">getType</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.getType-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.getType-expanded"><a name="L1638"></a><tt class="py-lineno">1638</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt> <tt class="py-line"><tt class="py-docstring"> Return the type of dataform</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-508" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-508', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1642"></a><tt class="py-lineno">1642</tt> <tt class="py-line"> </tt>
+<a name="DataForm.setType"></a><div id="DataForm.setType-def"><a name="L1643"></a><tt class="py-lineno">1643</tt> <a class="py-toggle" href="#" id="DataForm.setType-toggle" onclick="return toggle('DataForm.setType');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#setType">setType</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">typ</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.setType-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.setType-expanded"><a name="L1644"></a><tt class="py-lineno">1644</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt> <tt class="py-line"><tt class="py-docstring"> Set the type of dataform</tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-509" class="py-name"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-509', 'setAttr', 'link-271');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-name">typ</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1648"></a><tt class="py-lineno">1648</tt> <tt class="py-line"> </tt>
+<a name="DataForm.getTitle"></a><div id="DataForm.getTitle-def"><a name="L1649"></a><tt class="py-lineno">1649</tt> <a class="py-toggle" href="#" id="DataForm.getTitle-toggle" onclick="return toggle('DataForm.getTitle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#getTitle">getTitle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.getTitle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.getTitle-expanded"><a name="L1650"></a><tt class="py-lineno">1650</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1651"></a><tt class="py-lineno">1651</tt> <tt class="py-line"><tt class="py-docstring"> Return the title of dataform</tt> </tt>
+<a name="L1652"></a><tt class="py-lineno">1652</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-510" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-510', 'getTagData', 'link-314');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'title'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1654"></a><tt class="py-lineno">1654</tt> <tt class="py-line"> </tt>
+<a name="DataForm.setTitle"></a><div id="DataForm.setTitle-def"><a name="L1655"></a><tt class="py-lineno">1655</tt> <a class="py-toggle" href="#" id="DataForm.setTitle-toggle" onclick="return toggle('DataForm.setTitle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#setTitle">setTitle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.setTitle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.setTitle-expanded"><a name="L1656"></a><tt class="py-lineno">1656</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1657"></a><tt class="py-lineno">1657</tt> <tt class="py-line"><tt class="py-docstring"> Set the title of dataform</tt> </tt>
+<a name="L1658"></a><tt class="py-lineno">1658</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-511" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-511', 'setTagData', 'link-320');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'title'</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1660"></a><tt class="py-lineno">1660</tt> <tt class="py-line"> </tt>
+<a name="DataForm.getInstructions"></a><div id="DataForm.getInstructions-def"><a name="L1661"></a><tt class="py-lineno">1661</tt> <a class="py-toggle" href="#" id="DataForm.getInstructions-toggle" onclick="return toggle('DataForm.getInstructions');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#getInstructions">getInstructions</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.getInstructions-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.getInstructions-expanded"><a name="L1662"></a><tt class="py-lineno">1662</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1663"></a><tt class="py-lineno">1663</tt> <tt class="py-line"><tt class="py-docstring"> Return the instructions of dataform</tt> </tt>
+<a name="L1664"></a><tt class="py-lineno">1664</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1665"></a><tt class="py-lineno">1665</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-512" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-512', 'getTagData', 'link-314');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'instructions'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1666"></a><tt class="py-lineno">1666</tt> <tt class="py-line"> </tt>
+<a name="DataForm.setInstructions"></a><div id="DataForm.setInstructions-def"><a name="L1667"></a><tt class="py-lineno">1667</tt> <a class="py-toggle" href="#" id="DataForm.setInstructions-toggle" onclick="return toggle('DataForm.setInstructions');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#setInstructions">setInstructions</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.setInstructions-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.setInstructions-expanded"><a name="L1668"></a><tt class="py-lineno">1668</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1669"></a><tt class="py-lineno">1669</tt> <tt class="py-line"><tt class="py-docstring"> Set the instructions of dataform</tt> </tt>
+<a name="L1670"></a><tt class="py-lineno">1670</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1671"></a><tt class="py-lineno">1671</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-513" class="py-name"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-513', 'setTagData', 'link-320');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'instructions'</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1672"></a><tt class="py-lineno">1672</tt> <tt class="py-line"> </tt>
+<a name="DataForm.addInstructions"></a><div id="DataForm.addInstructions-def"><a name="L1673"></a><tt class="py-lineno">1673</tt> <a class="py-toggle" href="#" id="DataForm.addInstructions-toggle" onclick="return toggle('DataForm.addInstructions');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#addInstructions">addInstructions</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.addInstructions-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.addInstructions-expanded"><a name="L1674"></a><tt class="py-lineno">1674</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1675"></a><tt class="py-lineno">1675</tt> <tt class="py-line"><tt class="py-docstring"> Add one more instruction to the dataform</tt> </tt>
+<a name="L1676"></a><tt class="py-lineno">1676</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1677"></a><tt class="py-lineno">1677</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-514" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-514', 'addChild', 'link-301');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-string">'instructions'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">text</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1678"></a><tt class="py-lineno">1678</tt> <tt class="py-line"> </tt>
+<a name="DataForm.getField"></a><div id="DataForm.getField-def"><a name="L1679"></a><tt class="py-lineno">1679</tt> <a class="py-toggle" href="#" id="DataForm.getField-toggle" onclick="return toggle('DataForm.getField');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#getField">getField</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.getField-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.getField-expanded"><a name="L1680"></a><tt class="py-lineno">1680</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1681"></a><tt class="py-lineno">1681</tt> <tt class="py-line"><tt class="py-docstring"> Return the datafield object with name 'name' (if exists)</tt> </tt>
+<a name="L1682"></a><tt class="py-lineno">1682</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1683"></a><tt class="py-lineno">1683</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-515" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-515', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'field'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'var'</tt><tt class="py-op">:</tt> <tt class="py-name">name</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1684"></a><tt class="py-lineno">1684</tt> <tt class="py-line"> </tt>
+<a name="DataForm.setField"></a><div id="DataForm.setField-def"><a name="L1685"></a><tt class="py-lineno">1685</tt> <a class="py-toggle" href="#" id="DataForm.setField-toggle" onclick="return toggle('DataForm.setField');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#setField">setField</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.setField-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.setField-expanded"><a name="L1686"></a><tt class="py-lineno">1686</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1687"></a><tt class="py-lineno">1687</tt> <tt class="py-line"><tt class="py-docstring"> Create if nessessary or get the existing datafield object with name</tt> </tt>
+<a name="L1688"></a><tt class="py-lineno">1688</tt> <tt class="py-line"><tt class="py-docstring"> 'name' and return it</tt> </tt>
+<a name="L1689"></a><tt class="py-lineno">1689</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1690"></a><tt class="py-lineno">1690</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-516" class="py-name" targets="Method nbxmpp.protocol.DataForm.getField()=nbxmpp.protocol.DataForm-class.html#getField"><a title="nbxmpp.protocol.DataForm.getField" class="py-name" href="#" onclick="return doclink('link-516', 'getField', 'link-516');">getField</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L1691"></a><tt class="py-lineno">1691</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">f</tt><tt class="py-op">:</tt> </tt>
+<a name="L1692"></a><tt class="py-lineno">1692</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">f</tt> </tt>
+<a name="L1693"></a><tt class="py-lineno">1693</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-517" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-517', 'addChild', 'link-301');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt id="link-518" class="py-name"><a title="nbxmpp.protocol.DataField" class="py-name" href="#" onclick="return doclink('link-518', 'DataField', 'link-497');">DataField</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1694"></a><tt class="py-lineno">1694</tt> <tt class="py-line"> </tt>
+<a name="DataForm.asDict"></a><div id="DataForm.asDict-def"><a name="L1695"></a><tt class="py-lineno">1695</tt> <a class="py-toggle" href="#" id="DataForm.asDict-toggle" onclick="return toggle('DataForm.asDict');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#asDict">asDict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.asDict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.asDict-expanded"><a name="L1696"></a><tt class="py-lineno">1696</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1697"></a><tt class="py-lineno">1697</tt> <tt class="py-line"><tt class="py-docstring"> Represent dataform as simple dictionary mapping of datafield names to</tt> </tt>
+<a name="L1698"></a><tt class="py-lineno">1698</tt> <tt class="py-line"><tt class="py-docstring"> their values</tt> </tt>
+<a name="L1699"></a><tt class="py-lineno">1699</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1700"></a><tt class="py-lineno">1700</tt> <tt class="py-line"> <tt class="py-name">ret</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1701"></a><tt class="py-lineno">1701</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">field</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-519" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-519', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'field'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1702"></a><tt class="py-lineno">1702</tt> <tt class="py-line"> <tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-name">field</tt><tt class="py-op">.</tt><tt id="link-520" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-520', 'getAttr', 'link-259');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'var'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1703"></a><tt class="py-lineno">1703</tt> <tt class="py-line"> <tt class="py-name">typ</tt> <tt class="py-op">=</tt> <tt class="py-name">field</tt><tt class="py-op">.</tt><tt id="link-521" class="py-name"><a title="nbxmpp.protocol.DataField.getType
nbxmpp.protocol.DataForm.getType
-nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-493', 'getType', 'link-170');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1469"></a><tt class="py-lineno">1469</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">typ</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'-multi'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1470"></a><tt class="py-lineno">1470</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1471"></a><tt class="py-lineno">1471</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">field</tt><tt class="py-op">.</tt><tt id="link-494" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-494', 'getTags', 'link-215');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt> <tt class="py-line"> <tt class="py-name">val</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">.</tt><tt id="link-495" class="py-name"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-495', 'getData', 'link-240');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1473"></a><tt class="py-lineno">1473</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">field</tt><tt class="py-op">.</tt><tt id="link-496" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-496', 'getTagData', 'link-272');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">[</tt><tt id="link-497" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-497', 'name', 'link-165');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt>
-<a name="L1476"></a><tt class="py-lineno">1476</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-498" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-498', 'getTag', 'link-236');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'instructions'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1477"></a><tt class="py-lineno">1477</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">[</tt><tt class="py-string">'instructions'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-499" class="py-name" targets="Method nbxmpp.protocol.DataForm.getInstructions()=nbxmpp.protocol.DataForm-class.html#getInstructions"><a title="nbxmpp.protocol.DataForm.getInstructions" class="py-name" href="#" onclick="return doclink('link-499', 'getInstructions', 'link-499');">getInstructions</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1478"></a><tt class="py-lineno">1478</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
-</div><a name="L1479"></a><tt class="py-lineno">1479</tt> <tt class="py-line"> </tt>
-<a name="DataForm.__getitem__"></a><div id="DataForm.__getitem__-def"><a name="L1480"></a><tt class="py-lineno">1480</tt> <a class="py-toggle" href="#" id="DataForm.__getitem__-toggle" onclick="return toggle('DataForm.__getitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.__getitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.__getitem__-expanded"><a name="L1481"></a><tt class="py-lineno">1481</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1482"></a><tt class="py-lineno">1482</tt> <tt class="py-line"><tt class="py-docstring"> Simple dictionary interface for getting datafields values by their names</tt> </tt>
-<a name="L1483"></a><tt class="py-lineno">1483</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1484"></a><tt class="py-lineno">1484</tt> <tt class="py-line"> <tt class="py-name">item</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-500" class="py-name"><a title="nbxmpp.protocol.DataForm.getField" class="py-name" href="#" onclick="return doclink('link-500', 'getField', 'link-485');">getField</a></tt><tt class="py-op">(</tt><tt id="link-501" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-501', 'name', 'link-165');">name</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1485"></a><tt class="py-lineno">1485</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">item</tt><tt class="py-op">:</tt> </tt>
-<a name="L1486"></a><tt class="py-lineno">1486</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">item</tt><tt class="py-op">.</tt><tt id="link-502" class="py-name" targets="Method nbxmpp.protocol.DataField.getValue()=nbxmpp.protocol.DataField-class.html#getValue"><a title="nbxmpp.protocol.DataField.getValue" class="py-name" href="#" onclick="return doclink('link-502', 'getValue', 'link-502');">getValue</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1487"></a><tt class="py-lineno">1487</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IndexError</tt><tt class="py-op">(</tt><tt class="py-string">'No such field'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1488"></a><tt class="py-lineno">1488</tt> <tt class="py-line"> </tt>
-<a name="DataForm.__setitem__"></a><div id="DataForm.__setitem__-def"><a name="L1489"></a><tt class="py-lineno">1489</tt> <a class="py-toggle" href="#" id="DataForm.__setitem__-toggle" onclick="return toggle('DataForm.__setitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#__setitem__">__setitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="DataForm.__setitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.__setitem__-expanded"><a name="L1490"></a><tt class="py-lineno">1490</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1491"></a><tt class="py-lineno">1491</tt> <tt class="py-line"><tt class="py-docstring"> Simple dictionary interface for setting datafields values by their names</tt> </tt>
-<a name="L1492"></a><tt class="py-lineno">1492</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1493"></a><tt class="py-lineno">1493</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-503" class="py-name" targets="Method nbxmpp.protocol.DataForm.setField()=nbxmpp.protocol.DataForm-class.html#setField"><a title="nbxmpp.protocol.DataForm.setField" class="py-name" href="#" onclick="return doclink('link-503', 'setField', 'link-503');">setField</a></tt><tt class="py-op">(</tt><tt id="link-504" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-504', 'name', 'link-165');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-505" class="py-name"><a title="nbxmpp.protocol.DataField.setValue" class="py-name" href="#" onclick="return doclink('link-505', 'setValue', 'link-423');">setValue</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1494"></a><tt class="py-lineno">1494</tt> <tt class="py-line"> </tt><script type="text/javascript">
+nbxmpp.protocol.Protocol.getType" class="py-name" href="#" onclick="return doclink('link-521', 'getType', 'link-213');">getType</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1704"></a><tt class="py-lineno">1704</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">typ</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">typ</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'-multi'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1705"></a><tt class="py-lineno">1705</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1706"></a><tt class="py-lineno">1706</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">field</tt><tt class="py-op">.</tt><tt id="link-522" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-522', 'getTags', 'link-257');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1707"></a><tt class="py-lineno">1707</tt> <tt class="py-line"> <tt class="py-name">val</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">.</tt><tt id="link-523" class="py-name"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-523', 'getData', 'link-282');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1708"></a><tt class="py-lineno">1708</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1709"></a><tt class="py-lineno">1709</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">field</tt><tt class="py-op">.</tt><tt id="link-524" class="py-name"><a title="nbxmpp.simplexml.Node.getTagData" class="py-name" href="#" onclick="return doclink('link-524', 'getTagData', 'link-314');">getTagData</a></tt><tt class="py-op">(</tt><tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1710"></a><tt class="py-lineno">1710</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt>
+<a name="L1711"></a><tt class="py-lineno">1711</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-525" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-525', 'getTag', 'link-278');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'instructions'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1712"></a><tt class="py-lineno">1712</tt> <tt class="py-line"> <tt class="py-name">ret</tt><tt class="py-op">[</tt><tt class="py-string">'instructions'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-526" class="py-name" targets="Method nbxmpp.protocol.DataForm.getInstructions()=nbxmpp.protocol.DataForm-class.html#getInstructions"><a title="nbxmpp.protocol.DataForm.getInstructions" class="py-name" href="#" onclick="return doclink('link-526', 'getInstructions', 'link-526');">getInstructions</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1713"></a><tt class="py-lineno">1713</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret</tt> </tt>
+</div><a name="L1714"></a><tt class="py-lineno">1714</tt> <tt class="py-line"> </tt>
+<a name="DataForm.__getitem__"></a><div id="DataForm.__getitem__-def"><a name="L1715"></a><tt class="py-lineno">1715</tt> <a class="py-toggle" href="#" id="DataForm.__getitem__-toggle" onclick="return toggle('DataForm.__getitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.__getitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.__getitem__-expanded"><a name="L1716"></a><tt class="py-lineno">1716</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1717"></a><tt class="py-lineno">1717</tt> <tt class="py-line"><tt class="py-docstring"> Simple dictionary interface for getting datafields values by their names</tt> </tt>
+<a name="L1718"></a><tt class="py-lineno">1718</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1719"></a><tt class="py-lineno">1719</tt> <tt class="py-line"> <tt class="py-name">item</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-527" class="py-name"><a title="nbxmpp.protocol.DataForm.getField" class="py-name" href="#" onclick="return doclink('link-527', 'getField', 'link-516');">getField</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L1720"></a><tt class="py-lineno">1720</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">item</tt><tt class="py-op">:</tt> </tt>
+<a name="L1721"></a><tt class="py-lineno">1721</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">item</tt><tt class="py-op">.</tt><tt id="link-528" class="py-name" targets="Method nbxmpp.protocol.DataField.getValue()=nbxmpp.protocol.DataField-class.html#getValue"><a title="nbxmpp.protocol.DataField.getValue" class="py-name" href="#" onclick="return doclink('link-528', 'getValue', 'link-528');">getValue</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1722"></a><tt class="py-lineno">1722</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IndexError</tt><tt class="py-op">(</tt><tt class="py-string">'No such field'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1723"></a><tt class="py-lineno">1723</tt> <tt class="py-line"> </tt>
+<a name="DataForm.__setitem__"></a><div id="DataForm.__setitem__-def"><a name="L1724"></a><tt class="py-lineno">1724</tt> <a class="py-toggle" href="#" id="DataForm.__setitem__-toggle" onclick="return toggle('DataForm.__setitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.protocol.DataForm-class.html#__setitem__">__setitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DataForm.__setitem__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="DataForm.__setitem__-expanded"><a name="L1725"></a><tt class="py-lineno">1725</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1726"></a><tt class="py-lineno">1726</tt> <tt class="py-line"><tt class="py-docstring"> Simple dictionary interface for setting datafields values by their names</tt> </tt>
+<a name="L1727"></a><tt class="py-lineno">1727</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1728"></a><tt class="py-lineno">1728</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-529" class="py-name" targets="Method nbxmpp.protocol.DataForm.setField()=nbxmpp.protocol.DataForm-class.html#setField"><a title="nbxmpp.protocol.DataForm.setField" class="py-name" href="#" onclick="return doclink('link-529', 'setField', 'link-529');">setField</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-530" class="py-name"><a title="nbxmpp.protocol.DataField.setValue" class="py-name" href="#" onclick="return doclink('link-530', 'setValue', 'link-458');">setValue</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1729"></a><tt class="py-lineno">1729</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -2161,7 +2370,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:09 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.Acks-class.html b/doc/apidocs/nbxmpp.protocol.Acks-class.html
index 558fb8c..98fbcd9 100644
--- a/doc/apidocs/nbxmpp.protocol.Acks-class.html
+++ b/doc/apidocs/nbxmpp.protocol.Acks-class.html
@@ -64,12 +64,12 @@
<h1 class="epydoc">Class Acks</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#Acks">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_2" name="uml_class_diagram_for_nbxmpp_p_2">
-<area shape="rect" id="node42" href="nbxmpp.protocol.Acks-class.html#__init__" title="Takes &quot;tag&quot; argument as the name of node (prepended by namespace, if needed and separated from it by a space), attrs dictionary as the set of arguments, payload list as the set of textual strings and child nodes that this node carries within itself and &quot;parent&quot; argument that is another node that this one will be the child of. Also the __init__ can be provided with &quot;node&quot; argument that is either a text string containing exactly one node or another Node instance to begin with. If both &quot;node&quot; and other arguments is provided then the node initially created as replica of &quot;node&quot; provided and then modified to be compliant with other arguments." alt="" coords="172,391,404,409"/>
-<area shape="rect" id="node42" href="nbxmpp.protocol.Acks-class.html#buildAnswer" title="handled is the number of stanzas handled" alt="" coords="172,409,404,428"/>
-<area shape="rect" id="node42" href="nbxmpp.protocol.Acks-class.html#buildRequest" title="nbxmpp.protocol.Acks.buildRequest" alt="" coords="172,428,404,447"/>
-<area shape="rect" id="node42" href="nbxmpp.protocol.Acks-class.html#buildEnable" title="nbxmpp.protocol.Acks.buildEnable" alt="" coords="172,447,404,465"/>
-<area shape="rect" id="node42" href="nbxmpp.protocol.Acks-class.html#buildResume" title="nbxmpp.protocol.Acks.buildResume" alt="" coords="172,465,404,484"/>
-<area shape="rect" id="node1" href="nbxmpp.protocol.Acks-class.html" title="Acknowledgement elements for Stream Management" alt="" coords="160,358,416,490"/>
+<area shape="rect" id="node42" href="nbxmpp.protocol.Acks-class.html#__init__" title="Takes &quot;tag&quot; argument as the name of node (prepended by namespace, if needed and separated from it by a space), attrs dictionary as the set of arguments, payload list as the set of textual strings and child nodes that this node carries within itself and &quot;parent&quot; argument that is another node that this one will be the child of. Also the __init__ can be provided with &quot;node&quot; argument that is either a text string containing exactly one node or another Node instance to begin with. If both &quot;node&quot; and other arguments is provided then the node initially created as replica of &quot;node&quot; provided and then modified to be compliant with other arguments." alt="" coords="172,391,403,409"/>
+<area shape="rect" id="node42" href="nbxmpp.protocol.Acks-class.html#buildAnswer" title="handled is the number of stanzas handled" alt="" coords="172,409,403,428"/>
+<area shape="rect" id="node42" href="nbxmpp.protocol.Acks-class.html#buildRequest" title="nbxmpp.protocol.Acks.buildRequest" alt="" coords="172,428,403,447"/>
+<area shape="rect" id="node42" href="nbxmpp.protocol.Acks-class.html#buildEnable" title="nbxmpp.protocol.Acks.buildEnable" alt="" coords="172,447,403,465"/>
+<area shape="rect" id="node42" href="nbxmpp.protocol.Acks-class.html#buildResume" title="nbxmpp.protocol.Acks.buildResume" alt="" coords="172,465,403,484"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.Acks-class.html" title="Acknowledgement elements for Stream Management" alt="" coords="160,358,413,490"/>
<area shape="rect" id="node43" href="nbxmpp.simplexml.Node-class.html#FORCE_NODE_RECREATION" title="nbxmpp.simplexml.Node.FORCE_NODE_RECREATION" alt="" coords="17,31,559,49"/>
<area shape="rect" id="node43" href="nbxmpp.simplexml.Node-class.html#lookup_nsp" title="nbxmpp.simplexml.Node.lookup_nsp" alt="" coords="17,52,559,71"/>
<area shape="rect" id="node43" href="nbxmpp.simplexml.Node-class.html#__str__" title="Method used to dump node into textual representation. If &quot;fancy&quot; argument is set to True produces indented output for readability" alt="" coords="17,71,559,89"/>
@@ -475,7 +475,7 @@ arguments.
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.BOSHBody-class.html b/doc/apidocs/nbxmpp.protocol.BOSHBody-class.html
index d83dea1..6d7e4bd 100644
--- a/doc/apidocs/nbxmpp.protocol.BOSHBody-class.html
+++ b/doc/apidocs/nbxmpp.protocol.BOSHBody-class.html
@@ -326,7 +326,7 @@ arguments.
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.BadFormat-class.html b/doc/apidocs/nbxmpp.protocol.BadFormat-class.html
index e241710..7d2c677 100644
--- a/doc/apidocs/nbxmpp.protocol.BadFormat-class.html
+++ b/doc/apidocs/nbxmpp.protocol.BadFormat-class.html
@@ -66,22 +66,22 @@
<center> <map id="uml_class_diagram_for_nbxmpp_p_4" name="uml_class_diagram_for_nbxmpp_p_4">
<area shape="rect" id="node1" href="nbxmpp.protocol.BadFormat-class.html" title="nbxmpp.protocol.BadFormat" alt="" coords="53,443,149,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node49" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node49" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node49" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node49" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node49" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node49" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node49" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node49" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node49" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node49" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node49" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node49" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node48" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node48" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node48" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node48" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node49" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node49" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node49" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node49" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node49" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node49" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node49" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node49" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node49" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node49" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node49" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node49" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_4.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_4" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.BadNamespacePrefix-class.html b/doc/apidocs/nbxmpp.protocol.BadNamespacePrefix-class.html
index daeb00f..989417b 100644
--- a/doc/apidocs/nbxmpp.protocol.BadNamespacePrefix-class.html
+++ b/doc/apidocs/nbxmpp.protocol.BadNamespacePrefix-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class BadNamespacePrefix</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#BadNamespacePrefix">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_5" name="uml_class_diagram_for_nbxmpp_p_5">
-<area shape="rect" id="node1" href="nbxmpp.protocol.BadNamespacePrefix-class.html" title="nbxmpp.protocol.BadNamespacePrefix" alt="" coords="21,443,184,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.BadNamespacePrefix-class.html" title="nbxmpp.protocol.BadNamespacePrefix" alt="" coords="20,443,183,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node53" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node53" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node53" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node53" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node53" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node53" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node53" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node53" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node53" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node53" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node53" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node53" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node52" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node52" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node52" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node52" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node53" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node53" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node53" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node53" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node53" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node53" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node53" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node53" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node53" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node53" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node53" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node53" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_5.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_5" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.Conflict-class.html b/doc/apidocs/nbxmpp.protocol.Conflict-class.html
index 8737cf8..387e9d9 100644
--- a/doc/apidocs/nbxmpp.protocol.Conflict-class.html
+++ b/doc/apidocs/nbxmpp.protocol.Conflict-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class Conflict</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#Conflict">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_6" name="uml_class_diagram_for_nbxmpp_p_6">
-<area shape="rect" id="node1" href="nbxmpp.protocol.Conflict-class.html" title="nbxmpp.protocol.Conflict" alt="" coords="65,443,137,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.Conflict-class.html" title="nbxmpp.protocol.Conflict" alt="" coords="64,443,136,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node57" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node57" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node57" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node57" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node57" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node57" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node57" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node57" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node57" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node57" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node57" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node57" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node56" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node56" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node56" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node56" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node57" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node57" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node57" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node57" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node57" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node57" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node57" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node57" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node57" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node57" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node57" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node57" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_6.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_6" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.ConnectionTimeout-class.html b/doc/apidocs/nbxmpp.protocol.ConnectionTimeout-class.html
index 0b10f04..45093d6 100644
--- a/doc/apidocs/nbxmpp.protocol.ConnectionTimeout-class.html
+++ b/doc/apidocs/nbxmpp.protocol.ConnectionTimeout-class.html
@@ -66,22 +66,22 @@
<center> <map id="uml_class_diagram_for_nbxmpp_p_7" name="uml_class_diagram_for_nbxmpp_p_7">
<area shape="rect" id="node1" href="nbxmpp.protocol.ConnectionTimeout-class.html" title="nbxmpp.protocol.ConnectionTimeout" alt="" coords="27,443,176,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node61" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node61" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node61" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node61" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node61" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node61" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node61" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node61" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node61" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node61" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node61" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node61" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node60" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node60" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node60" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node60" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node61" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node61" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node61" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node61" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node61" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node61" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node61" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node61" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node61" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node61" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node61" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node61" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_7.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_7" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.DataField-class.html b/doc/apidocs/nbxmpp.protocol.DataField-class.html
index ee1aac1..a11045f 100644
--- a/doc/apidocs/nbxmpp.protocol.DataField-class.html
+++ b/doc/apidocs/nbxmpp.protocol.DataField-class.html
@@ -928,7 +928,7 @@ values! If you need to just add a value - use addValue method
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.DataForm-class.html b/doc/apidocs/nbxmpp.protocol.DataForm-class.html
index eda1034..7b23366 100644
--- a/doc/apidocs/nbxmpp.protocol.DataForm-class.html
+++ b/doc/apidocs/nbxmpp.protocol.DataForm-class.html
@@ -795,7 +795,7 @@ their values
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.Error-class.html b/doc/apidocs/nbxmpp.protocol.Error-class.html
index 1d67408..6887859 100644
--- a/doc/apidocs/nbxmpp.protocol.Error-class.html
+++ b/doc/apidocs/nbxmpp.protocol.Error-class.html
@@ -388,7 +388,7 @@ node. I.e. you will not be able to serialise &quot;double&quot; error into strin
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.ErrorNode-class.html b/doc/apidocs/nbxmpp.protocol.ErrorNode-class.html
index e890758..ec26c88 100644
--- a/doc/apidocs/nbxmpp.protocol.ErrorNode-class.html
+++ b/doc/apidocs/nbxmpp.protocol.ErrorNode-class.html
@@ -315,7 +315,7 @@ Used for backwards compartibility with older jabber protocol.
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.Hashes-class.html b/doc/apidocs/nbxmpp.protocol.Hashes-class.html
index 297d5d6..55f41fe 100644
--- a/doc/apidocs/nbxmpp.protocol.Hashes-class.html
+++ b/doc/apidocs/nbxmpp.protocol.Hashes-class.html
@@ -67,7 +67,7 @@
<area shape="rect" id="node71" href="nbxmpp.protocol.Hashes-class.html#supported" title="nbxmpp.protocol.Hashes.supported" alt="" coords="159,383,416,401"/>
<area shape="rect" id="node71" href="nbxmpp.protocol.Hashes-class.html#__init__" title="Takes &quot;tag&quot; argument as the name of node (prepended by namespace, if needed and separated from it by a space), attrs dictionary as the set of arguments, payload list as the set of textual strings and child nodes that this node carries within itself and &quot;parent&quot; argument that is another node that this one will be the child of. Also the __init__ can be provided with &quot;node&quot; argument that is either a text string containing exactly one node or another Node instance to begin with. If both &quot;node&quot; and other arguments is provided then the node initially created as replica of &quot;node&quot; provided and then modified to be compliant with other arguments." alt="" coords="159,404,416,423"/>
<area shape="rect" id="node71" href="nbxmpp.protocol.Hashes-class.html#calculateHash" title="Calculate the hash and add it. It is preferable doing it here instead of doing it all over the place in Gajim." alt="" coords="159,423,416,441"/>
-<area shape="rect" id="node71" href="nbxmpp.protocol.Hashes-class.html#addHash" title="More than one hash can be added. Although it is permitted, it should not be done for big files because it could slow down Gajim." alt="" coords="159,441,416,460"/>
+<area shape="rect" id="node71" href="nbxmpp.protocol.Hashes-class.html#addHash" title="nbxmpp.protocol.Hashes.addHash" alt="" coords="159,441,416,460"/>
<area shape="rect" id="node1" href="nbxmpp.protocol.Hashes-class.html" title="Hash elements for various XEPs as defined in XEP&#45;300" alt="" coords="147,358,427,466"/>
<area shape="rect" id="node72" href="nbxmpp.simplexml.Node-class.html#FORCE_NODE_RECREATION" title="nbxmpp.simplexml.Node.FORCE_NODE_RECREATION" alt="" coords="17,31,559,49"/>
<area shape="rect" id="node72" href="nbxmpp.simplexml.Node-class.html#lookup_nsp" title="nbxmpp.simplexml.Node.lookup_nsp" alt="" coords="17,52,559,71"/>
@@ -116,7 +116,7 @@ Hash elements for various XEPs as defined in XEP-300
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="nbxmpp.protocol.Hashes-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
- <span class="summary-sig-arg">nsp</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">urn:xmpp:hashes:0</code><code class="variable-quote">'</code></span>)</span><br />
+ <span class="summary-sig-arg">nsp</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">urn:xmpp:hashes:1</code><code class="variable-quote">'</code></span>)</span><br />
Takes &quot;tag&quot; argument as the name of node (prepended by namespace, if
needed and separated from it by a space), attrs dictionary as the set of
arguments, payload list as the set of textual strings and child nodes
@@ -164,9 +164,7 @@ instead of doing it all over the place in Gajim.</td>
<tr>
<td><span class="summary-sig"><a href="nbxmpp.protocol.Hashes-class.html#addHash" class="summary-sig-name">addHash</a>(<span class="summary-sig-arg">self</span>,
<span class="summary-sig-arg">hash_</span>,
- <span class="summary-sig-arg">algo</span>)</span><br />
- More than one hash can be added. Although it is permitted, it should
-not be done for big files because it could slow down Gajim.</td>
+ <span class="summary-sig-arg">algo</span>)</span></td>
<td align="right" valign="top">
<span class="codelink"><a href="nbxmpp.protocol-pysrc.html#Hashes.addHash">source&nbsp;code</a></span>
@@ -314,7 +312,7 @@ not be done for big files because it could slow down Gajim.</td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
- <span class="sig-arg">nsp</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">urn:xmpp:hashes:0</code><code class="variable-quote">'</code></span>)</span>
+ <span class="sig-arg">nsp</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">urn:xmpp:hashes:1</code><code class="variable-quote">'</code></span>)</span>
<br /><em class="fname">(Constructor)</em>
</h3>
</td><td align="right" valign="top"
@@ -378,8 +376,7 @@ instead of doing it all over the place in Gajim.
</td>
</tr></table>
- More than one hash can be added. Although it is permitted, it should
-not be done for big files because it could slow down Gajim.
+
<dl class="fields">
</dl>
</td></tr></table>
@@ -453,7 +450,7 @@ not be done for big files because it could slow down Gajim.
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:05 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.HostGone-class.html b/doc/apidocs/nbxmpp.protocol.HostGone-class.html
index 6df630b..b422bfe 100644
--- a/doc/apidocs/nbxmpp.protocol.HostGone-class.html
+++ b/doc/apidocs/nbxmpp.protocol.HostGone-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class HostGone</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#HostGone">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_13" name="uml_class_diagram_for_nbxmpp_p_13">
-<area shape="rect" id="node1" href="nbxmpp.protocol.HostGone-class.html" title="nbxmpp.protocol.HostGone" alt="" coords="57,443,148,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.HostGone-class.html" title="nbxmpp.protocol.HostGone" alt="" coords="56,443,147,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node76" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node76" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node76" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node76" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node76" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node76" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node76" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node76" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node76" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node76" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node76" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node76" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node75" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node75" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node75" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node75" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node76" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node76" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node76" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node76" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node76" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node76" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node76" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node76" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node76" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node76" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node76" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node76" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_13.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_13" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.HostUnknown-class.html b/doc/apidocs/nbxmpp.protocol.HostUnknown-class.html
index 761c6b0..1184f1c 100644
--- a/doc/apidocs/nbxmpp.protocol.HostUnknown-class.html
+++ b/doc/apidocs/nbxmpp.protocol.HostUnknown-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class HostUnknown</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#HostUnknown">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_14" name="uml_class_diagram_for_nbxmpp_p_14">
-<area shape="rect" id="node1" href="nbxmpp.protocol.HostUnknown-class.html" title="nbxmpp.protocol.HostUnknown" alt="" coords="45,443,160,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.HostUnknown-class.html" title="nbxmpp.protocol.HostUnknown" alt="" coords="44,443,159,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node80" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node80" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node80" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node80" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node80" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node80" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node80" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node80" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node80" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node80" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node80" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node80" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node79" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node79" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node79" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node79" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node80" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node80" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node80" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node80" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node80" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node80" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node80" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node80" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node80" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node80" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node80" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node80" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_14.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_14" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.ImproperAddressing-class.html b/doc/apidocs/nbxmpp.protocol.ImproperAddressing-class.html
index 158a1ed..e72388c 100644
--- a/doc/apidocs/nbxmpp.protocol.ImproperAddressing-class.html
+++ b/doc/apidocs/nbxmpp.protocol.ImproperAddressing-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class ImproperAddressing</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#ImproperAddressing">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_15" name="uml_class_diagram_for_nbxmpp_p_15">
-<area shape="rect" id="node1" href="nbxmpp.protocol.ImproperAddressing-class.html" title="nbxmpp.protocol.ImproperAddressing" alt="" coords="25,443,180,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.ImproperAddressing-class.html" title="nbxmpp.protocol.ImproperAddressing" alt="" coords="24,443,179,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node84" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node84" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node84" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node84" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node84" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node84" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node84" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node84" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node84" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node84" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node84" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node84" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node83" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node83" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node83" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node83" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node84" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node84" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node84" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node84" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node84" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node84" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node84" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node84" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node84" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node84" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node84" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node84" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_15.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_15" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.InternalServerError-class.html b/doc/apidocs/nbxmpp.protocol.InternalServerError-class.html
index d833183..9786f9e 100644
--- a/doc/apidocs/nbxmpp.protocol.InternalServerError-class.html
+++ b/doc/apidocs/nbxmpp.protocol.InternalServerError-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class InternalServerError</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#InternalServerError">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_16" name="uml_class_diagram_for_nbxmpp_p_16">
-<area shape="rect" id="node1" href="nbxmpp.protocol.InternalServerError-class.html" title="nbxmpp.protocol.InternalServerError" alt="" coords="29,443,176,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.InternalServerError-class.html" title="nbxmpp.protocol.InternalServerError" alt="" coords="28,443,175,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node88" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node88" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node88" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node88" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node88" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node88" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node88" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node88" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node88" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node88" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node88" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node88" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node87" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node87" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node87" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node87" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node88" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node88" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node88" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node88" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node88" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node88" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node88" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node88" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node88" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node88" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node88" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node88" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_16.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_16" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.InvalidFrom-class.html b/doc/apidocs/nbxmpp.protocol.InvalidFrom-class.html
index 2dfe00f..b8cc9b5 100644
--- a/doc/apidocs/nbxmpp.protocol.InvalidFrom-class.html
+++ b/doc/apidocs/nbxmpp.protocol.InvalidFrom-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class InvalidFrom</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#InvalidFrom">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_17" name="uml_class_diagram_for_nbxmpp_p_17">
-<area shape="rect" id="node1" href="nbxmpp.protocol.InvalidFrom-class.html" title="nbxmpp.protocol.InvalidFrom" alt="" coords="53,443,152,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.InvalidFrom-class.html" title="nbxmpp.protocol.InvalidFrom" alt="" coords="52,443,148,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node92" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node92" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node92" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node92" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node92" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node92" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node92" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node92" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node92" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node92" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node92" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node92" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node91" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node91" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node91" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node91" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node92" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node92" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node92" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node92" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node92" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node92" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node92" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node92" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node92" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node92" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node92" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node92" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_17.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_17" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.InvalidID-class.html b/doc/apidocs/nbxmpp.protocol.InvalidID-class.html
index 0d2047a..2e5a041 100644
--- a/doc/apidocs/nbxmpp.protocol.InvalidID-class.html
+++ b/doc/apidocs/nbxmpp.protocol.InvalidID-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class InvalidID</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#InvalidID">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_18" name="uml_class_diagram_for_nbxmpp_p_18">
-<area shape="rect" id="node1" href="nbxmpp.protocol.InvalidID-class.html" title="nbxmpp.protocol.InvalidID" alt="" coords="63,443,140,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.InvalidID-class.html" title="nbxmpp.protocol.InvalidID" alt="" coords="61,443,139,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node96" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node96" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node96" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node96" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node96" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node96" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node96" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node96" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node96" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node96" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node96" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node96" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node95" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node95" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node95" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node95" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node96" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node96" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node96" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node96" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node96" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node96" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node96" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node96" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node96" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node96" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node96" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node96" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_18.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_18" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.InvalidNamespace-class.html b/doc/apidocs/nbxmpp.protocol.InvalidNamespace-class.html
index 969f616..a448b70 100644
--- a/doc/apidocs/nbxmpp.protocol.InvalidNamespace-class.html
+++ b/doc/apidocs/nbxmpp.protocol.InvalidNamespace-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class InvalidNamespace</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#InvalidNamespace">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_19" name="uml_class_diagram_for_nbxmpp_p_19">
-<area shape="rect" id="node1" href="nbxmpp.protocol.InvalidNamespace-class.html" title="nbxmpp.protocol.InvalidNamespace" alt="" coords="31,443,172,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.InvalidNamespace-class.html" title="nbxmpp.protocol.InvalidNamespace" alt="" coords="29,443,171,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node100" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node100" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node100" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node100" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node100" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node100" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node100" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node100" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node100" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node100" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node100" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node100" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node99" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node99" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node99" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node99" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node100" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node100" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node100" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node100" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node100" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node100" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node100" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node100" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node100" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node100" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node100" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node100" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_19.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_19" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.InvalidXML-class.html b/doc/apidocs/nbxmpp.protocol.InvalidXML-class.html
index 5a3e55c..a1c11bd 100644
--- a/doc/apidocs/nbxmpp.protocol.InvalidXML-class.html
+++ b/doc/apidocs/nbxmpp.protocol.InvalidXML-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class InvalidXML</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#InvalidXML">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_20" name="uml_class_diagram_for_nbxmpp_p_20">
-<area shape="rect" id="node1" href="nbxmpp.protocol.InvalidXML-class.html" title="nbxmpp.protocol.InvalidXML" alt="" coords="56,443,147,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.InvalidXML-class.html" title="nbxmpp.protocol.InvalidXML" alt="" coords="55,443,145,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node104" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node104" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node104" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node104" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node104" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node104" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node104" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node104" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node104" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node104" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node104" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node104" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node103" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node103" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node103" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node103" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node104" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node104" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node104" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node104" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node104" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node104" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node104" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node104" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node104" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node104" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node104" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node104" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_20.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_20" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.Iq-class.html b/doc/apidocs/nbxmpp.protocol.Iq-class.html
index 2bc652f..6a013c6 100644
--- a/doc/apidocs/nbxmpp.protocol.Iq-class.html
+++ b/doc/apidocs/nbxmpp.protocol.Iq-class.html
@@ -64,18 +64,18 @@
<h1 class="epydoc">Class Iq</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#Iq">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_21" name="uml_class_diagram_for_nbxmpp_p_21">
-<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#__init__" title="You can specify type, query namespace any additional attributes, recipient of the iq, sender of the iq, any additional payload (f.e. jabber:x:data node) and namespace in one go." alt="" coords="17,729,796,748"/>
-<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#getQuery" title="Return the IQ&#39;s child element if it exists, None otherwise." alt="" coords="17,748,796,767"/>
-<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#getQueryNS" title="Return the namespace of the &#39;query&#39; child element" alt="" coords="17,767,796,785"/>
-<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#getQuerynode" title="Return the &#39;node&#39; attribute value of the &#39;query&#39; child element" alt="" coords="17,785,796,804"/>
-<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#getQueryPayload" title="Return the &#39;query&#39; child element payload" alt="" coords="17,804,796,823"/>
-<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#getQueryChildren" title="Return the &#39;query&#39; child element child nodes" alt="" coords="17,823,796,841"/>
-<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#setQuery" title="Change the name of the query node, creating it if needed. Keep the existing name if none is given (use &#39;query&#39; if it&#39;s a creation). Return the query node." alt="" coords="17,841,796,860"/>
-<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#setQueryNS" title="Set the namespace of the &#39;query&#39; child element" alt="" coords="17,860,796,879"/>
-<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#setQueryPayload" title="Set the &#39;query&#39; child element payload" alt="" coords="17,879,796,897"/>
-<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#setQuerynode" title="Set the &#39;node&#39; attribute value of the &#39;query&#39; child element" alt="" coords="17,897,796,916"/>
-<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#buildReply" title="Build and return another Iq object of specified type. The to, from and query child node of new Iq are pre&#45;set as reply to this Iq." alt="" coords="17,916,796,935"/>
-<area shape="rect" id="node1" href="nbxmpp.protocol.Iq-class.html" title="XMPP Iq object &#45; get/set dialog mechanism" alt="" coords="5,697,808,941"/>
+<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#__init__" title="You can specify type, query namespace any additional attributes, recipient of the iq, sender of the iq, any additional payload (f.e. jabber:x:data node) and namespace in one go." alt="" coords="17,729,795,748"/>
+<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#getQuery" title="Return the IQ&#39;s child element if it exists, None otherwise." alt="" coords="17,748,795,767"/>
+<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#getQueryNS" title="Return the namespace of the &#39;query&#39; child element" alt="" coords="17,767,795,785"/>
+<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#getQuerynode" title="Return the &#39;node&#39; attribute value of the &#39;query&#39; child element" alt="" coords="17,785,795,804"/>
+<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#getQueryPayload" title="Return the &#39;query&#39; child element payload" alt="" coords="17,804,795,823"/>
+<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#getQueryChildren" title="Return the &#39;query&#39; child element child nodes" alt="" coords="17,823,795,841"/>
+<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#setQuery" title="Change the name of the query node, creating it if needed. Keep the existing name if none is given (use &#39;query&#39; if it&#39;s a creation). Return the query node." alt="" coords="17,841,795,860"/>
+<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#setQueryNS" title="Set the namespace of the &#39;query&#39; child element" alt="" coords="17,860,795,879"/>
+<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#setQueryPayload" title="Set the &#39;query&#39; child element payload" alt="" coords="17,879,795,897"/>
+<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#setQuerynode" title="Set the &#39;node&#39; attribute value of the &#39;query&#39; child element" alt="" coords="17,897,795,916"/>
+<area shape="rect" id="node105" href="nbxmpp.protocol.Iq-class.html#buildReply" title="Build and return another Iq object of specified type. The to, from and query child node of new Iq are pre&#45;set as reply to this Iq." alt="" coords="17,916,795,935"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.Iq-class.html" title="XMPP Iq object &#45; get/set dialog mechanism" alt="" coords="5,697,805,941"/>
<area shape="rect" id="node106" href="nbxmpp.protocol.Protocol-class.html#getTo" title="Return value of the &#39;to&#39; attribute" alt="" coords="316,391,496,409"/>
<area shape="rect" id="node106" href="nbxmpp.protocol.Protocol-class.html#getFrom" title="Return value of the &#39;from&#39; attribute" alt="" coords="316,409,496,428"/>
<area shape="rect" id="node106" href="nbxmpp.protocol.Protocol-class.html#getTimestamp" title="Return the timestamp in the &#39;yyyymmddThhmmss&#39; format" alt="" coords="316,428,496,447"/>
@@ -743,7 +743,7 @@ query child node of new Iq are pre-set as reply to this Iq.
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.JID-class.html b/doc/apidocs/nbxmpp.protocol.JID-class.html
index accfd79..3b0dde9 100644
--- a/doc/apidocs/nbxmpp.protocol.JID-class.html
+++ b/doc/apidocs/nbxmpp.protocol.JID-class.html
@@ -635,7 +635,7 @@ dictionary
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.Message-class.html b/doc/apidocs/nbxmpp.protocol.Message-class.html
index 3464774..8f9d0ff 100644
--- a/doc/apidocs/nbxmpp.protocol.Message-class.html
+++ b/doc/apidocs/nbxmpp.protocol.Message-class.html
@@ -754,7 +754,7 @@ this message
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.NodeProcessed-class.html b/doc/apidocs/nbxmpp.protocol.NodeProcessed-class.html
index 08bd2f5..5a8b0e0 100644
--- a/doc/apidocs/nbxmpp.protocol.NodeProcessed-class.html
+++ b/doc/apidocs/nbxmpp.protocol.NodeProcessed-class.html
@@ -65,21 +65,21 @@
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_23" name="uml_class_diagram_for_nbxmpp_p_23">
<area shape="rect" id="node1" href="nbxmpp.protocol.NodeProcessed-class.html" title="Exception that should be raised by handler when the handling should be stopped" alt="" coords="39,379,164,423"/>
-<area shape="rect" id="node112" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node112" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
+<area shape="rect" id="node112" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node112" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
<area shape="rect" id="node2" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
-<area shape="rect" id="node113" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node113" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node113" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node113" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node113" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node113" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node113" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node113" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node113" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node113" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node113" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node113" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
+<area shape="rect" id="node113" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node113" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node113" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node113" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node113" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node113" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node113" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node113" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node113" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node113" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node113" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node113" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_23.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_23" ismap="ismap" class="graph-without-title" />
@@ -194,7 +194,7 @@ stopped
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:13 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.NotAuthorized-class.html b/doc/apidocs/nbxmpp.protocol.NotAuthorized-class.html
index 6a13a00..bc2dfbf 100644
--- a/doc/apidocs/nbxmpp.protocol.NotAuthorized-class.html
+++ b/doc/apidocs/nbxmpp.protocol.NotAuthorized-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class NotAuthorized</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#NotAuthorized">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_24" name="uml_class_diagram_for_nbxmpp_p_24">
-<area shape="rect" id="node1" href="nbxmpp.protocol.NotAuthorized-class.html" title="nbxmpp.protocol.NotAuthorized" alt="" coords="43,443,160,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.NotAuthorized-class.html" title="nbxmpp.protocol.NotAuthorized" alt="" coords="41,443,159,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node117" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node117" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node117" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node117" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node117" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node117" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node117" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node117" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node117" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node117" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node117" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node117" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node116" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node116" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node116" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node116" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node117" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node117" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node117" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node117" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node117" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node117" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node117" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node117" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node117" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node117" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node117" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node117" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_24.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_24" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.PolicyViolation-class.html b/doc/apidocs/nbxmpp.protocol.PolicyViolation-class.html
index ec4199d..3050438 100644
--- a/doc/apidocs/nbxmpp.protocol.PolicyViolation-class.html
+++ b/doc/apidocs/nbxmpp.protocol.PolicyViolation-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class PolicyViolation</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#PolicyViolation">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_25" name="uml_class_diagram_for_nbxmpp_p_25">
-<area shape="rect" id="node1" href="nbxmpp.protocol.PolicyViolation-class.html" title="nbxmpp.protocol.PolicyViolation" alt="" coords="44,443,161,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.PolicyViolation-class.html" title="nbxmpp.protocol.PolicyViolation" alt="" coords="43,443,157,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node121" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node121" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node121" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node121" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node121" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node121" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node121" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node121" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node121" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node121" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node121" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node121" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node120" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node120" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node120" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node120" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node121" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node121" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node121" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node121" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node121" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node121" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node121" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node121" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node121" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node121" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node121" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node121" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_25.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_25" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.Presence-class.html b/doc/apidocs/nbxmpp.protocol.Presence-class.html
index 49047e8..6d84825 100644
--- a/doc/apidocs/nbxmpp.protocol.Presence-class.html
+++ b/doc/apidocs/nbxmpp.protocol.Presence-class.html
@@ -928,7 +928,7 @@ parameted to replicate it as presence
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.Protocol-class.html b/doc/apidocs/nbxmpp.protocol.Protocol-class.html
index 1c1998b..2dbbab6 100644
--- a/doc/apidocs/nbxmpp.protocol.Protocol-class.html
+++ b/doc/apidocs/nbxmpp.protocol.Protocol-class.html
@@ -79,10 +79,10 @@
<area shape="rect" id="node125" href="nbxmpp.protocol.Protocol-class.html#getErrorMsg" title="Return the textual description of the error (if present) or the error condition" alt="" coords="17,615,851,633"/>
<area shape="rect" id="node125" href="nbxmpp.protocol.Protocol-class.html#__setitem__" title="Set the item &#39;item&#39; to the value &#39;val&#39;" alt="" coords="17,652,851,671"/>
<area shape="rect" id="node1" href="nbxmpp.protocol.Protocol-class.html" title="A &quot;stanza&quot; object class. Contains methods that are common for presences, iqs and messages" alt="" coords="5,358,861,677"/>
-<area shape="rect" id="node2" href="nbxmpp.protocol.Presence-class.html" title="nbxmpp.protocol.Presence" alt="" coords="236,697,332,735"/>
-<area shape="rect" id="node3" href="nbxmpp.protocol.Iq-class.html" title="XMPP Iq object &#45; get/set dialog mechanism" alt="" coords="361,697,409,735"/>
-<area shape="rect" id="node4" href="nbxmpp.protocol.Message-class.html" title="XMPP Message stanza &#45; &quot;push&quot; mechanism" alt="" coords="439,697,532,735"/>
-<area shape="rect" id="node6" href="nbxmpp.protocol.Error-class.html" title="Used to quickly transform received stanza into error reply" alt="" coords="561,697,628,735"/>
+<area shape="rect" id="node2" href="nbxmpp.protocol.Message-class.html" title="XMPP Message stanza &#45; &quot;push&quot; mechanism" alt="" coords="216,697,309,735"/>
+<area shape="rect" id="node3" href="nbxmpp.protocol.Presence-class.html" title="nbxmpp.protocol.Presence" alt="" coords="339,697,432,735"/>
+<area shape="rect" id="node5" href="nbxmpp.protocol.Iq-class.html" title="XMPP Iq object &#45; get/set dialog mechanism" alt="" coords="461,697,509,735"/>
+<area shape="rect" id="node6" href="nbxmpp.protocol.Error-class.html" title="Used to quickly transform received stanza into error reply" alt="" coords="539,697,605,735"/>
<area shape="rect" id="node126" href="nbxmpp.simplexml.Node-class.html#FORCE_NODE_RECREATION" title="nbxmpp.simplexml.Node.FORCE_NODE_RECREATION" alt="" coords="164,31,705,49"/>
<area shape="rect" id="node126" href="nbxmpp.simplexml.Node-class.html#lookup_nsp" title="nbxmpp.simplexml.Node.lookup_nsp" alt="" coords="164,52,705,71"/>
<area shape="rect" id="node126" href="nbxmpp.simplexml.Node-class.html#__str__" title="Method used to dump node into textual representation. If &quot;fancy&quot; argument is set to True produces indented output for readability" alt="" coords="164,71,705,89"/>
@@ -98,7 +98,7 @@
<area shape="rect" id="node126" href="nbxmpp.simplexml.Node-class.html#getName" title="Return the name of node" alt="" coords="164,257,705,276"/>
<area shape="rect" id="node126" href="nbxmpp.simplexml.Node-class.html#getNamespace" title="Return the namespace of node" alt="" coords="164,276,705,295"/>
<area shape="rect" id="node126" href="nbxmpp.simplexml.Node-class.html#__getattr__" title="Reduce memory usage caused by T/NT classes &#45; use memory only when needed" alt="" coords="164,313,705,332"/>
-<area shape="rect" id="node5" href="nbxmpp.simplexml.Node-class.html" title="Node class describes syntax of separate XML Node. It have a constructor that permits node creation from set of &quot;namespace name&quot;, attributes and payload of text strings and other nodes. It does not natively support building node from text string and uses NodeBuilder class for that purpose. After creation node can be mangled in many ways so it can be completely changed. Also node can be serialised into string in one of two modes: default (where the textual representation of node describes it exactly) and &quot;fancy&quot; &#45; with whitespace added to make indentation and thus make result more readable by human." alt="" coords="152,6,717,338"/>
+<area shape="rect" id="node4" href="nbxmpp.simplexml.Node-class.html" title="Node class describes syntax of separate XML Node. It have a constructor that permits node creation from set of &quot;namespace name&quot;, attributes and payload of text strings and other nodes. It does not natively support building node from text string and uses NodeBuilder class for that purpose. After creation node can be mangled in many ways so it can be completely changed. Also node can be serialised into string in one of two modes: default (where the textual representation of node describes it exactly) and &quot;fancy&quot; &#45; with whitespace added to make indentation and thus make result more readable by human." alt="" coords="152,6,717,338"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_27.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_27" ismap="ismap" class="graph-without-title" />
</center>
@@ -1018,7 +1018,7 @@ or the error condition
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.RemoteConnectionFailed-class.html b/doc/apidocs/nbxmpp.protocol.RemoteConnectionFailed-class.html
index 8a71ee6..4244aa8 100644
--- a/doc/apidocs/nbxmpp.protocol.RemoteConnectionFailed-class.html
+++ b/doc/apidocs/nbxmpp.protocol.RemoteConnectionFailed-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class RemoteConnectionFailed</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#RemoteConnectionFailed">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_28" name="uml_class_diagram_for_nbxmpp_p_28">
-<area shape="rect" id="node1" href="nbxmpp.protocol.RemoteConnectionFailed-class.html" title="nbxmpp.protocol.RemoteConnectionFailed" alt="" coords="11,443,192,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.RemoteConnectionFailed-class.html" title="nbxmpp.protocol.RemoteConnectionFailed" alt="" coords="9,443,191,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node134" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node134" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node134" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node134" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node134" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node134" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node134" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node134" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node134" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node134" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node134" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node134" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node133" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node133" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node133" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node133" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node134" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node134" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node134" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node134" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node134" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node134" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node134" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node134" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node134" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node134" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node134" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node134" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_28.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_28" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:06 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.ResourceConstraint-class.html b/doc/apidocs/nbxmpp.protocol.ResourceConstraint-class.html
index 27e575a..0ac66d2 100644
--- a/doc/apidocs/nbxmpp.protocol.ResourceConstraint-class.html
+++ b/doc/apidocs/nbxmpp.protocol.ResourceConstraint-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class ResourceConstraint</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#ResourceConstraint">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_29" name="uml_class_diagram_for_nbxmpp_p_29">
-<area shape="rect" id="node1" href="nbxmpp.protocol.ResourceConstraint-class.html" title="nbxmpp.protocol.ResourceConstraint" alt="" coords="27,443,176,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.ResourceConstraint-class.html" title="nbxmpp.protocol.ResourceConstraint" alt="" coords="25,443,175,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node138" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node138" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node138" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node138" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node138" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node138" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node138" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node138" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node138" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node138" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node138" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node138" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node137" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node137" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node137" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node137" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node138" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node138" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node138" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node138" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node138" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node138" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node138" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node138" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node138" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node138" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node138" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node138" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_29.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_29" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.RestrictedXML-class.html b/doc/apidocs/nbxmpp.protocol.RestrictedXML-class.html
index a88e18d..833a7a7 100644
--- a/doc/apidocs/nbxmpp.protocol.RestrictedXML-class.html
+++ b/doc/apidocs/nbxmpp.protocol.RestrictedXML-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class RestrictedXML</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#RestrictedXML">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_30" name="uml_class_diagram_for_nbxmpp_p_30">
-<area shape="rect" id="node1" href="nbxmpp.protocol.RestrictedXML-class.html" title="nbxmpp.protocol.RestrictedXML" alt="" coords="45,443,160,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.RestrictedXML-class.html" title="nbxmpp.protocol.RestrictedXML" alt="" coords="43,443,157,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node142" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node142" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node142" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node142" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node142" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node142" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node142" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node142" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node142" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node142" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node142" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node142" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node141" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node141" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node141" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node141" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node142" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node142" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node142" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node142" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node142" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node142" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node142" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node142" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node142" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node142" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node142" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node142" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_30.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_30" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.SeeOtherHost-class.html b/doc/apidocs/nbxmpp.protocol.SeeOtherHost-class.html
index 282de79..e1099e8 100644
--- a/doc/apidocs/nbxmpp.protocol.SeeOtherHost-class.html
+++ b/doc/apidocs/nbxmpp.protocol.SeeOtherHost-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class SeeOtherHost</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#SeeOtherHost">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_31" name="uml_class_diagram_for_nbxmpp_p_31">
-<area shape="rect" id="node1" href="nbxmpp.protocol.SeeOtherHost-class.html" title="nbxmpp.protocol.SeeOtherHost" alt="" coords="44,443,161,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.SeeOtherHost-class.html" title="nbxmpp.protocol.SeeOtherHost" alt="" coords="43,443,160,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node146" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node146" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node146" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node146" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node146" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node146" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node146" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node146" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node146" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node146" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node146" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node146" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node145" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node145" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node145" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node145" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node146" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node146" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node146" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node146" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node146" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node146" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node146" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node146" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node146" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node146" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node146" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node146" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_31.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_31" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.StreamError-class.html b/doc/apidocs/nbxmpp.protocol.StreamError-class.html
index 888cfda..442801b 100644
--- a/doc/apidocs/nbxmpp.protocol.StreamError-class.html
+++ b/doc/apidocs/nbxmpp.protocol.StreamError-class.html
@@ -64,47 +64,47 @@
<h1 class="epydoc">Class StreamError</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#StreamError">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_32" name="uml_class_diagram_for_nbxmpp_p_32">
-<area shape="rect" id="node1" href="nbxmpp.protocol.HostGone-class.html" title="nbxmpp.protocol.HostGone" alt="" coords="5,443,107,482"/>
-<area shape="rect" id="node2" href="nbxmpp.protocol.BadNamespacePrefix-class.html" title="nbxmpp.protocol.BadNamespacePrefix" alt="" coords="136,443,309,482"/>
-<area shape="rect" id="node149" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="2039,31,2208,49"/>
-<area shape="rect" id="node149" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="2039,49,2208,68"/>
-<area shape="rect" id="node149" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="2039,71,2208,89"/>
-<area shape="rect" id="node149" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="2039,89,2208,108"/>
-<area shape="rect" id="node149" href="javascript:void(0);" title="x[y]" alt="" coords="2039,108,2208,127"/>
-<area shape="rect" id="node149" href="javascript:void(0);" title="x[i:j]" alt="" coords="2039,127,2208,145"/>
-<area shape="rect" id="node149" href="javascript:void(0);" title="helper for pickle" alt="" coords="2039,145,2208,164"/>
-<area shape="rect" id="node149" href="javascript:void(0);" title="repr(x)" alt="" coords="2039,164,2208,183"/>
-<area shape="rect" id="node149" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="2039,183,2208,201"/>
-<area shape="rect" id="node149" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="2039,201,2208,220"/>
-<area shape="rect" id="node149" href="javascript:void(0);" title="str(x)" alt="" coords="2039,220,2208,239"/>
-<area shape="rect" id="node149" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="2039,239,2208,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="2027,6,2219,263"/>
-<area shape="rect" id="node148" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="2055,316,2192,335"/>
-<area shape="rect" id="node148" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="2055,335,2192,353"/>
-<area shape="rect" id="node8" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="2043,283,2203,359"/>
-<area shape="rect" id="node4" href="nbxmpp.protocol.UnsupportedEncoding-class.html" title="nbxmpp.protocol.UnsupportedEncoding" alt="" coords="339,443,515,482"/>
-<area shape="rect" id="node5" href="nbxmpp.protocol.RemoteConnectionFailed-class.html" title="nbxmpp.protocol.RemoteConnectionFailed" alt="" coords="544,443,736,482"/>
-<area shape="rect" id="node6" href="nbxmpp.protocol.InvalidNamespace-class.html" title="nbxmpp.protocol.InvalidNamespace" alt="" coords="765,443,917,482"/>
-<area shape="rect" id="node7" href="nbxmpp.protocol.PolicyViolation-class.html" title="nbxmpp.protocol.PolicyViolation" alt="" coords="947,443,1075,482"/>
-<area shape="rect" id="node13" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="2071,379,2175,423"/>
-<area shape="rect" id="node9" href="nbxmpp.protocol.UnsupportedStanzaType-class.html" title="nbxmpp.protocol.UnsupportedStanzaType" alt="" coords="1104,443,1296,482"/>
-<area shape="rect" id="node10" href="nbxmpp.protocol.SystemShutdown-class.html" title="nbxmpp.protocol.SystemShutdown" alt="" coords="1325,443,1475,482"/>
-<area shape="rect" id="node11" href="nbxmpp.protocol.BadFormat-class.html" title="nbxmpp.protocol.BadFormat" alt="" coords="1504,443,1611,482"/>
-<area shape="rect" id="node12" href="nbxmpp.protocol.ImproperAddressing-class.html" title="nbxmpp.protocol.ImproperAddressing" alt="" coords="1640,443,1805,482"/>
-<area shape="rect" id="node14" href="nbxmpp.protocol.InvalidID-class.html" title="nbxmpp.protocol.InvalidID" alt="" coords="1835,443,1923,482"/>
-<area shape="rect" id="node15" href="nbxmpp.protocol.XMLNotWellFormed-class.html" title="nbxmpp.protocol.XMLNotWellFormed" alt="" coords="1952,443,2109,482"/>
-<area shape="rect" id="node16" href="nbxmpp.protocol.ConnectionTimeout-class.html" title="nbxmpp.protocol.ConnectionTimeout" alt="" coords="2139,443,2299,482"/>
-<area shape="rect" id="node17" href="nbxmpp.protocol.RestrictedXML-class.html" title="nbxmpp.protocol.RestrictedXML" alt="" coords="2328,443,2453,482"/>
-<area shape="rect" id="node18" href="nbxmpp.protocol.Conflict-class.html" title="nbxmpp.protocol.Conflict" alt="" coords="2483,443,2565,482"/>
-<area shape="rect" id="node19" href="nbxmpp.protocol.InvalidFrom-class.html" title="nbxmpp.protocol.InvalidFrom" alt="" coords="2595,443,2704,482"/>
-<area shape="rect" id="node20" href="nbxmpp.protocol.HostUnknown-class.html" title="nbxmpp.protocol.HostUnknown" alt="" coords="2733,443,2859,482"/>
-<area shape="rect" id="node21" href="nbxmpp.protocol.InvalidXML-class.html" title="nbxmpp.protocol.InvalidXML" alt="" coords="2888,443,2989,482"/>
-<area shape="rect" id="node22" href="nbxmpp.protocol.InternalServerError-class.html" title="nbxmpp.protocol.InternalServerError" alt="" coords="3019,443,3176,482"/>
-<area shape="rect" id="node23" href="nbxmpp.protocol.ResourceConstraint-class.html" title="nbxmpp.protocol.ResourceConstraint" alt="" coords="3205,443,3365,482"/>
-<area shape="rect" id="node24" href="nbxmpp.protocol.SeeOtherHost-class.html" title="nbxmpp.protocol.SeeOtherHost" alt="" coords="3395,443,3523,482"/>
-<area shape="rect" id="node25" href="nbxmpp.protocol.UnsupportedVersion-class.html" title="nbxmpp.protocol.UnsupportedVersion" alt="" coords="3552,443,3717,482"/>
-<area shape="rect" id="node26" href="nbxmpp.protocol.NotAuthorized-class.html" title="nbxmpp.protocol.NotAuthorized" alt="" coords="3747,443,3875,482"/>
-<area shape="rect" id="node27" href="nbxmpp.protocol.UndefinedCondition-class.html" title="nbxmpp.protocol.UndefinedCondition" alt="" coords="3904,443,4064,482"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="2057,379,2161,423"/>
+<area shape="rect" id="node3" href="nbxmpp.protocol.PolicyViolation-class.html" title="nbxmpp.protocol.PolicyViolation" alt="" coords="5,443,131,482"/>
+<area shape="rect" id="node5" href="nbxmpp.protocol.HostGone-class.html" title="nbxmpp.protocol.HostGone" alt="" coords="160,443,261,482"/>
+<area shape="rect" id="node6" href="nbxmpp.protocol.Conflict-class.html" title="nbxmpp.protocol.Conflict" alt="" coords="291,443,373,482"/>
+<area shape="rect" id="node7" href="nbxmpp.protocol.BadNamespacePrefix-class.html" title="nbxmpp.protocol.BadNamespacePrefix" alt="" coords="403,443,576,482"/>
+<area shape="rect" id="node8" href="nbxmpp.protocol.InternalServerError-class.html" title="nbxmpp.protocol.InternalServerError" alt="" coords="605,443,763,482"/>
+<area shape="rect" id="node9" href="nbxmpp.protocol.NotAuthorized-class.html" title="nbxmpp.protocol.NotAuthorized" alt="" coords="792,443,920,482"/>
+<area shape="rect" id="node10" href="nbxmpp.protocol.ResourceConstraint-class.html" title="nbxmpp.protocol.ResourceConstraint" alt="" coords="949,443,1109,482"/>
+<area shape="rect" id="node11" href="nbxmpp.protocol.SystemShutdown-class.html" title="nbxmpp.protocol.SystemShutdown" alt="" coords="1139,443,1288,482"/>
+<area shape="rect" id="node12" href="nbxmpp.protocol.ConnectionTimeout-class.html" title="nbxmpp.protocol.ConnectionTimeout" alt="" coords="1317,443,1477,482"/>
+<area shape="rect" id="node13" href="nbxmpp.protocol.RemoteConnectionFailed-class.html" title="nbxmpp.protocol.RemoteConnectionFailed" alt="" coords="1507,443,1699,482"/>
+<area shape="rect" id="node14" href="nbxmpp.protocol.XMLNotWellFormed-class.html" title="nbxmpp.protocol.XMLNotWellFormed" alt="" coords="1728,443,1885,482"/>
+<area shape="rect" id="node15" href="nbxmpp.protocol.UnsupportedEncoding-class.html" title="nbxmpp.protocol.UnsupportedEncoding" alt="" coords="1915,443,2091,482"/>
+<area shape="rect" id="node16" href="nbxmpp.protocol.UnsupportedStanzaType-class.html" title="nbxmpp.protocol.UnsupportedStanzaType" alt="" coords="2120,443,2312,482"/>
+<area shape="rect" id="node17" href="nbxmpp.protocol.InvalidNamespace-class.html" title="nbxmpp.protocol.InvalidNamespace" alt="" coords="2341,443,2493,482"/>
+<area shape="rect" id="node18" href="nbxmpp.protocol.InvalidFrom-class.html" title="nbxmpp.protocol.InvalidFrom" alt="" coords="2523,443,2629,482"/>
+<area shape="rect" id="node19" href="nbxmpp.protocol.SeeOtherHost-class.html" title="nbxmpp.protocol.SeeOtherHost" alt="" coords="2659,443,2787,482"/>
+<area shape="rect" id="node20" href="nbxmpp.protocol.BadFormat-class.html" title="nbxmpp.protocol.BadFormat" alt="" coords="2816,443,2923,482"/>
+<area shape="rect" id="node21" href="nbxmpp.protocol.RestrictedXML-class.html" title="nbxmpp.protocol.RestrictedXML" alt="" coords="2952,443,3077,482"/>
+<area shape="rect" id="node22" href="nbxmpp.protocol.UnsupportedVersion-class.html" title="nbxmpp.protocol.UnsupportedVersion" alt="" coords="3107,443,3272,482"/>
+<area shape="rect" id="node23" href="nbxmpp.protocol.UndefinedCondition-class.html" title="nbxmpp.protocol.UndefinedCondition" alt="" coords="3301,443,3461,482"/>
+<area shape="rect" id="node24" href="nbxmpp.protocol.ImproperAddressing-class.html" title="nbxmpp.protocol.ImproperAddressing" alt="" coords="3491,443,3656,482"/>
+<area shape="rect" id="node25" href="nbxmpp.protocol.InvalidID-class.html" title="nbxmpp.protocol.InvalidID" alt="" coords="3685,443,3773,482"/>
+<area shape="rect" id="node26" href="nbxmpp.protocol.HostUnknown-class.html" title="nbxmpp.protocol.HostUnknown" alt="" coords="3803,443,3928,482"/>
+<area shape="rect" id="node27" href="nbxmpp.protocol.InvalidXML-class.html" title="nbxmpp.protocol.InvalidXML" alt="" coords="3957,443,4059,482"/>
+<area shape="rect" id="node149" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="2025,31,2193,49"/>
+<area shape="rect" id="node149" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="2025,49,2193,68"/>
+<area shape="rect" id="node149" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="2025,71,2193,89"/>
+<area shape="rect" id="node149" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="2025,89,2193,108"/>
+<area shape="rect" id="node149" href="javascript:void(0);" title="x[y]" alt="" coords="2025,108,2193,127"/>
+<area shape="rect" id="node149" href="javascript:void(0);" title="x[i:j]" alt="" coords="2025,127,2193,145"/>
+<area shape="rect" id="node149" href="javascript:void(0);" title="helper for pickle" alt="" coords="2025,145,2193,164"/>
+<area shape="rect" id="node149" href="javascript:void(0);" title="repr(x)" alt="" coords="2025,164,2193,183"/>
+<area shape="rect" id="node149" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="2025,183,2193,201"/>
+<area shape="rect" id="node149" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="2025,201,2193,220"/>
+<area shape="rect" id="node149" href="javascript:void(0);" title="str(x)" alt="" coords="2025,220,2193,239"/>
+<area shape="rect" id="node149" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="2025,239,2193,257"/>
+<area shape="rect" id="node2" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="2013,6,2205,263"/>
+<area shape="rect" id="node148" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="2041,316,2177,335"/>
+<area shape="rect" id="node148" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="2041,335,2177,353"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="2029,283,2189,359"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_32.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_32" ismap="ismap" class="graph-without-title" />
</center>
@@ -217,7 +217,7 @@ Base exception class for stream errors
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.SystemShutdown-class.html b/doc/apidocs/nbxmpp.protocol.SystemShutdown-class.html
index 363bb29..915d151 100644
--- a/doc/apidocs/nbxmpp.protocol.SystemShutdown-class.html
+++ b/doc/apidocs/nbxmpp.protocol.SystemShutdown-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class SystemShutdown</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#SystemShutdown">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_33" name="uml_class_diagram_for_nbxmpp_p_33">
-<area shape="rect" id="node1" href="nbxmpp.protocol.SystemShutdown-class.html" title="nbxmpp.protocol.SystemShutdown" alt="" coords="33,443,172,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.SystemShutdown-class.html" title="nbxmpp.protocol.SystemShutdown" alt="" coords="32,443,171,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node177" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node177" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node177" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node177" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node177" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node177" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node177" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node177" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node177" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node177" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node177" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node177" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node176" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node176" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node176" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node176" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node177" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node177" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node177" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node177" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node177" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node177" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node177" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node177" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node177" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node177" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node177" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node177" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_33.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_33" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.UndefinedCondition-class.html b/doc/apidocs/nbxmpp.protocol.UndefinedCondition-class.html
index e1c2834..a45c4bf 100644
--- a/doc/apidocs/nbxmpp.protocol.UndefinedCondition-class.html
+++ b/doc/apidocs/nbxmpp.protocol.UndefinedCondition-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class UndefinedCondition</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#UndefinedCondition">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_34" name="uml_class_diagram_for_nbxmpp_p_34">
-<area shape="rect" id="node1" href="nbxmpp.protocol.UndefinedCondition-class.html" title="nbxmpp.protocol.UndefinedCondition" alt="" coords="27,443,176,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.UndefinedCondition-class.html" title="nbxmpp.protocol.UndefinedCondition" alt="" coords="25,443,175,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node181" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node181" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node181" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node181" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node181" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node181" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node181" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node181" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node181" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node181" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node181" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node181" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node180" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node180" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node180" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node180" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node181" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node181" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node181" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node181" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node181" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node181" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node181" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node181" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node181" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node181" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node181" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node181" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_34.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_34" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.UnsupportedEncoding-class.html b/doc/apidocs/nbxmpp.protocol.UnsupportedEncoding-class.html
index 832cf8e..6cbbb44 100644
--- a/doc/apidocs/nbxmpp.protocol.UnsupportedEncoding-class.html
+++ b/doc/apidocs/nbxmpp.protocol.UnsupportedEncoding-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class UnsupportedEncoding</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#UnsupportedEncoding">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_35" name="uml_class_diagram_for_nbxmpp_p_35">
-<area shape="rect" id="node1" href="nbxmpp.protocol.UnsupportedEncoding-class.html" title="nbxmpp.protocol.UnsupportedEncoding" alt="" coords="19,443,184,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.UnsupportedEncoding-class.html" title="nbxmpp.protocol.UnsupportedEncoding" alt="" coords="17,443,183,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node185" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node185" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node185" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node185" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node185" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node185" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node185" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node185" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node185" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node185" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node185" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node185" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node184" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node184" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node184" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node184" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node185" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node185" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node185" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node185" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node185" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node185" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node185" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node185" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node185" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node185" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node185" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node185" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_35.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_35" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.UnsupportedStanzaType-class.html b/doc/apidocs/nbxmpp.protocol.UnsupportedStanzaType-class.html
index 74a9374..0e59ded 100644
--- a/doc/apidocs/nbxmpp.protocol.UnsupportedStanzaType-class.html
+++ b/doc/apidocs/nbxmpp.protocol.UnsupportedStanzaType-class.html
@@ -66,22 +66,22 @@
<center> <map id="uml_class_diagram_for_nbxmpp_p_36" name="uml_class_diagram_for_nbxmpp_p_36">
<area shape="rect" id="node1" href="nbxmpp.protocol.UnsupportedStanzaType-class.html" title="nbxmpp.protocol.UnsupportedStanzaType" alt="" coords="11,443,192,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node189" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node189" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node189" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node189" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node189" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node189" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node189" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node189" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node189" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node189" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node189" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node189" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node188" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node188" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node188" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node188" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node189" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node189" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node189" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node189" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node189" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node189" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node189" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node189" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node189" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node189" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node189" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node189" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_36.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_36" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.UnsupportedVersion-class.html b/doc/apidocs/nbxmpp.protocol.UnsupportedVersion-class.html
index 6fcc9b2..d2ebf6c 100644
--- a/doc/apidocs/nbxmpp.protocol.UnsupportedVersion-class.html
+++ b/doc/apidocs/nbxmpp.protocol.UnsupportedVersion-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class UnsupportedVersion</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#UnsupportedVersion">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_37" name="uml_class_diagram_for_nbxmpp_p_37">
-<area shape="rect" id="node1" href="nbxmpp.protocol.UnsupportedVersion-class.html" title="nbxmpp.protocol.UnsupportedVersion" alt="" coords="24,443,179,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.UnsupportedVersion-class.html" title="nbxmpp.protocol.UnsupportedVersion" alt="" coords="23,443,177,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node193" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node193" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node193" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node193" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node193" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node193" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node193" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node193" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node193" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node193" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node193" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node193" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node192" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node192" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node192" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node192" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node193" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node193" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node193" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node193" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node193" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node193" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node193" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node193" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node193" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node193" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node193" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node193" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_37.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_37" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.protocol.XMLNotWellFormed-class.html b/doc/apidocs/nbxmpp.protocol.XMLNotWellFormed-class.html
index 9f61265..86cb34f 100644
--- a/doc/apidocs/nbxmpp.protocol.XMLNotWellFormed-class.html
+++ b/doc/apidocs/nbxmpp.protocol.XMLNotWellFormed-class.html
@@ -64,24 +64,24 @@
<h1 class="epydoc">Class XMLNotWellFormed</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.protocol-pysrc.html#XMLNotWellFormed">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_38" name="uml_class_diagram_for_nbxmpp_p_38">
-<area shape="rect" id="node1" href="nbxmpp.protocol.XMLNotWellFormed-class.html" title="nbxmpp.protocol.XMLNotWellFormed" alt="" coords="28,443,175,487"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.XMLNotWellFormed-class.html" title="nbxmpp.protocol.XMLNotWellFormed" alt="" coords="27,443,173,487"/>
<area shape="rect" id="node2" href="nbxmpp.protocol.StreamError-class.html" title="Base exception class for stream errors" alt="" coords="49,379,153,423"/>
-<area shape="rect" id="node197" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,187,49"/>
-<area shape="rect" id="node197" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,187,68"/>
-<area shape="rect" id="node197" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,187,89"/>
-<area shape="rect" id="node197" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,187,108"/>
-<area shape="rect" id="node197" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,187,127"/>
-<area shape="rect" id="node197" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,187,145"/>
-<area shape="rect" id="node197" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,187,164"/>
-<area shape="rect" id="node197" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,187,183"/>
-<area shape="rect" id="node197" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,187,201"/>
-<area shape="rect" id="node197" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,187,220"/>
-<area shape="rect" id="node197" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,187,239"/>
-<area shape="rect" id="node197" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,187,257"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
-<area shape="rect" id="node196" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,171,335"/>
-<area shape="rect" id="node196" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,171,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node196" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="33,316,169,335"/>
+<area shape="rect" id="node196" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="33,335,169,353"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="21,283,181,359"/>
+<area shape="rect" id="node197" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,185,49"/>
+<area shape="rect" id="node197" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,49,185,68"/>
+<area shape="rect" id="node197" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,71,185,89"/>
+<area shape="rect" id="node197" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,89,185,108"/>
+<area shape="rect" id="node197" href="javascript:void(0);" title="x[y]" alt="" coords="17,108,185,127"/>
+<area shape="rect" id="node197" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,127,185,145"/>
+<area shape="rect" id="node197" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,145,185,164"/>
+<area shape="rect" id="node197" href="javascript:void(0);" title="repr(x)" alt="" coords="17,164,185,183"/>
+<area shape="rect" id="node197" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,183,185,201"/>
+<area shape="rect" id="node197" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,201,185,220"/>
+<area shape="rect" id="node197" href="javascript:void(0);" title="str(x)" alt="" coords="17,220,185,239"/>
+<area shape="rect" id="node197" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,239,185,257"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,6,197,263"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_38.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_38" ismap="ismap" class="graph-without-title" />
</center>
@@ -192,7 +192,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.proxy_connectors-module.html b/doc/apidocs/nbxmpp.proxy_connectors-module.html
index c45f4f7..fadca1c 100644
--- a/doc/apidocs/nbxmpp.proxy_connectors-module.html
+++ b/doc/apidocs/nbxmpp.proxy_connectors-module.html
@@ -233,7 +233,7 @@ logging.getLogger('nbxmpp.proxy_connectors')
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.proxy_connectors-pysrc.html b/doc/apidocs/nbxmpp.proxy_connectors-pysrc.html
index 2b4ecdc..3947839 100644
--- a/doc/apidocs/nbxmpp.proxy_connectors-pysrc.html
+++ b/doc/apidocs/nbxmpp.proxy_connectors-pysrc.html
@@ -552,7 +552,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:09 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html b/doc/apidocs/nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html
index d829ada..8152bf2 100644
--- a/doc/apidocs/nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html
+++ b/doc/apidocs/nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html
@@ -64,11 +64,11 @@
<h1 class="epydoc">Class HTTPCONNECTConnector</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.proxy_connectors-pysrc.html#HTTPCONNECTConnector">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_39" name="uml_class_diagram_for_nbxmpp_p_39">
-<area shape="rect" id="node198" href="nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html#start_connecting" title="Connect to a proxy, supply login and password to it (if were specified while creating instance). Instruct proxy to make connection to the target server." alt="" coords="327,153,489,172"/>
-<area shape="rect" id="node1" href="nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html" title="nbxmpp.proxy_connectors.HTTPCONNECTConnector" alt="" coords="315,121,501,178"/>
-<area shape="rect" id="node199" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#__init__" title="Creates proxy connector, starts connecting immediately and gives control back to transport afterwards" alt="" coords="17,39,797,57"/>
-<area shape="rect" id="node199" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#get_instance" title="Factory Method for object creation" alt="" coords="17,57,797,76"/>
-<area shape="rect" id="node199" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#connecting_over" title="nbxmpp.proxy_connectors.ProxyConnector.connecting_over" alt="" coords="17,76,797,95"/>
+<area shape="rect" id="node198" href="nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html#start_connecting" title="Connect to a proxy, supply login and password to it (if were specified while creating instance). Instruct proxy to make connection to the target server." alt="" coords="325,153,488,172"/>
+<area shape="rect" id="node1" href="nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html" title="nbxmpp.proxy_connectors.HTTPCONNECTConnector" alt="" coords="313,121,500,178"/>
+<area shape="rect" id="node199" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#__init__" title="Creates proxy connector, starts connecting immediately and gives control back to transport afterwards" alt="" coords="17,39,796,57"/>
+<area shape="rect" id="node199" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#get_instance" title="Factory Method for object creation" alt="" coords="17,57,796,76"/>
+<area shape="rect" id="node199" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#connecting_over" title="nbxmpp.proxy_connectors.ProxyConnector.connecting_over" alt="" coords="17,76,796,95"/>
<area shape="rect" id="node2" href="nbxmpp.proxy_connectors.ProxyConnector-class.html" title="Interface for proxy&#45;connecting object &#45; when tunnneling XMPP over proxies, some connecting process usually has to be done before opening stream. Proxy connectors are used right after TCP connection is estabilished" alt="" coords="5,6,808,101"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_39.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_39" ismap="ismap" class="graph-without-title" />
@@ -256,7 +256,7 @@ server.
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.proxy_connectors.ProxyConnector-class.html b/doc/apidocs/nbxmpp.proxy_connectors.ProxyConnector-class.html
index 039526a..9ea2c90 100644
--- a/doc/apidocs/nbxmpp.proxy_connectors.ProxyConnector-class.html
+++ b/doc/apidocs/nbxmpp.proxy_connectors.ProxyConnector-class.html
@@ -64,13 +64,13 @@
<h1 class="epydoc">Class ProxyConnector</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.proxy_connectors-pysrc.html#ProxyConnector">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_40" name="uml_class_diagram_for_nbxmpp_p_40">
-<area shape="rect" id="node200" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#__init__" title="Creates proxy connector, starts connecting immediately and gives control back to transport afterwards" alt="" coords="17,39,797,57"/>
-<area shape="rect" id="node200" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#get_instance" title="Factory Method for object creation" alt="" coords="17,57,797,76"/>
-<area shape="rect" id="node200" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#start_connecting" title="nbxmpp.proxy_connectors.ProxyConnector.start_connecting" alt="" coords="17,76,797,95"/>
-<area shape="rect" id="node200" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#connecting_over" title="nbxmpp.proxy_connectors.ProxyConnector.connecting_over" alt="" coords="17,95,797,113"/>
+<area shape="rect" id="node200" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#__init__" title="Creates proxy connector, starts connecting immediately and gives control back to transport afterwards" alt="" coords="17,39,796,57"/>
+<area shape="rect" id="node200" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#get_instance" title="Factory Method for object creation" alt="" coords="17,57,796,76"/>
+<area shape="rect" id="node200" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#start_connecting" title="nbxmpp.proxy_connectors.ProxyConnector.start_connecting" alt="" coords="17,76,796,95"/>
+<area shape="rect" id="node200" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#connecting_over" title="nbxmpp.proxy_connectors.ProxyConnector.connecting_over" alt="" coords="17,95,796,113"/>
<area shape="rect" id="node1" href="nbxmpp.proxy_connectors.ProxyConnector-class.html" title="Interface for proxy&#45;connecting object &#45; when tunnneling XMPP over proxies, some connecting process usually has to be done before opening stream. Proxy connectors are used right after TCP connection is estabilished" alt="" coords="5,6,808,119"/>
-<area shape="rect" id="node2" href="nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html" title="nbxmpp.proxy_connectors.HTTPCONNECTConnector" alt="" coords="207,139,404,178"/>
-<area shape="rect" id="node3" href="nbxmpp.proxy_connectors.SOCKS5Connector-class.html" title="SOCKS5 proxy connection class. Allows to use SOCKS5 proxies with (optionally) simple authentication (only USERNAME/PASSWORD auth)" alt="" coords="433,139,588,178"/>
+<area shape="rect" id="node2" href="nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html" title="nbxmpp.proxy_connectors.HTTPCONNECTConnector" alt="" coords="205,139,403,178"/>
+<area shape="rect" id="node3" href="nbxmpp.proxy_connectors.SOCKS5Connector-class.html" title="SOCKS5 proxy connection class. Allows to use SOCKS5 proxies with (optionally) simple authentication (only USERNAME/PASSWORD auth)" alt="" coords="432,139,587,178"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_40.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_40" ismap="ismap" class="graph-without-title" />
</center>
@@ -343,7 +343,7 @@ testing much easier.</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.proxy_connectors.SOCKS5Connector-class.html b/doc/apidocs/nbxmpp.proxy_connectors.SOCKS5Connector-class.html
index 0144654..edbe38e 100644
--- a/doc/apidocs/nbxmpp.proxy_connectors.SOCKS5Connector-class.html
+++ b/doc/apidocs/nbxmpp.proxy_connectors.SOCKS5Connector-class.html
@@ -64,11 +64,11 @@
<h1 class="epydoc">Class SOCKS5Connector</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.proxy_connectors-pysrc.html#SOCKS5Connector">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_p_41" name="uml_class_diagram_for_nbxmpp_p_41">
-<area shape="rect" id="node203" href="nbxmpp.proxy_connectors.SOCKS5Connector-class.html#start_connecting" title="nbxmpp.proxy_connectors.SOCKS5Connector.start_connecting" alt="" coords="335,153,481,172"/>
-<area shape="rect" id="node1" href="nbxmpp.proxy_connectors.SOCKS5Connector-class.html" title="SOCKS5 proxy connection class. Allows to use SOCKS5 proxies with (optionally) simple authentication (only USERNAME/PASSWORD auth)" alt="" coords="323,121,493,178"/>
-<area shape="rect" id="node204" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#__init__" title="Creates proxy connector, starts connecting immediately and gives control back to transport afterwards" alt="" coords="17,39,797,57"/>
-<area shape="rect" id="node204" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#get_instance" title="Factory Method for object creation" alt="" coords="17,57,797,76"/>
-<area shape="rect" id="node204" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#connecting_over" title="nbxmpp.proxy_connectors.ProxyConnector.connecting_over" alt="" coords="17,76,797,95"/>
+<area shape="rect" id="node203" href="nbxmpp.proxy_connectors.SOCKS5Connector-class.html#start_connecting" title="nbxmpp.proxy_connectors.SOCKS5Connector.start_connecting" alt="" coords="333,153,480,172"/>
+<area shape="rect" id="node1" href="nbxmpp.proxy_connectors.SOCKS5Connector-class.html" title="SOCKS5 proxy connection class. Allows to use SOCKS5 proxies with (optionally) simple authentication (only USERNAME/PASSWORD auth)" alt="" coords="321,121,492,178"/>
+<area shape="rect" id="node204" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#__init__" title="Creates proxy connector, starts connecting immediately and gives control back to transport afterwards" alt="" coords="17,39,796,57"/>
+<area shape="rect" id="node204" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#get_instance" title="Factory Method for object creation" alt="" coords="17,57,796,76"/>
+<area shape="rect" id="node204" href="nbxmpp.proxy_connectors.ProxyConnector-class.html#connecting_over" title="nbxmpp.proxy_connectors.ProxyConnector.connecting_over" alt="" coords="17,76,796,95"/>
<area shape="rect" id="node2" href="nbxmpp.proxy_connectors.ProxyConnector-class.html" title="Interface for proxy&#45;connecting object &#45; when tunnneling XMPP over proxies, some connecting process usually has to be done before opening stream. Proxy connectors are used right after TCP connection is estabilished" alt="" coords="5,6,808,101"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_p_41.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_p_41" ismap="ismap" class="graph-without-title" />
@@ -328,7 +328,7 @@ SOCKS5 proxy connection class. Allows to use SOCKS5 proxies with
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:14 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.roster_nb-module.html b/doc/apidocs/nbxmpp.roster_nb-module.html
index 9d17b96..dfd553a 100644
--- a/doc/apidocs/nbxmpp.roster_nb-module.html
+++ b/doc/apidocs/nbxmpp.roster_nb-module.html
@@ -223,7 +223,7 @@ logging.getLogger('nbxmpp.roster_nb')
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.roster_nb-pysrc.html b/doc/apidocs/nbxmpp.roster_nb-pysrc.html
index bf2f268..257d7c7 100644
--- a/doc/apidocs/nbxmpp.roster_nb-pysrc.html
+++ b/doc/apidocs/nbxmpp.roster_nb-pysrc.html
@@ -411,53 +411,51 @@ nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick
<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-name">iq</tt> <tt class="py-op">=</tt> <tt id="link-74" class="py-name"><a title="nbxmpp.protocol.Iq" class="py-name" href="#" onclick="return doclink('link-74', 'Iq', 'link-2');">Iq</a></tt><tt class="py-op">(</tt><tt class="py-string">'set'</tt><tt class="py-op">,</tt> <tt id="link-75" class="py-name"><a title="nbxmpp.protocol.NS_ROSTER" class="py-name" href="#" onclick="return doclink('link-75', 'NS_ROSTER', 'link-7');">NS_ROSTER</a></tt><tt class="py-op">)</tt> </tt>
<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-name">query</tt> <tt class="py-op">=</tt> <tt class="py-name">iq</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-76', 'getTag', 'link-23');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'query'</tt><tt class="py-op">)</tt> </tt>
<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-name">attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'jid'</tt><tt class="py-op">:</tt> <tt class="py-name">jid</tt><tt class="py-op">}</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-77" class="py-name" targets="Variable nbxmpp.name=nbxmpp-module.html#name,Variable nbxmpp.protocol.name=nbxmpp.protocol-module.html#name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-77', 'name', 'link-77');">name</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-string">'name'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-78" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-78', 'name', 'link-77');">name</a></tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">item</tt> <tt class="py-op">=</tt> <tt class="py-name">query</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Method nbxmpp.simplexml.Node.setTag()=nbxmpp.simplexml.Node-class.html#setTag"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-79', 'setTag', 'link-79');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt><tt class="py-op">:</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-string">'name'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">name</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">item</tt> <tt class="py-op">=</tt> <tt class="py-name">query</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Method nbxmpp.simplexml.Node.setTag()=nbxmpp.simplexml.Node-class.html#setTag"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-77', 'setTag', 'link-77');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">group</tt> <tt class="py-keyword">in</tt> <tt class="py-name">groups</tt><tt class="py-op">:</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">item</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name" targets="Method nbxmpp.simplexml.Node.addChild()=nbxmpp.simplexml.Node-class.html#addChild"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-80', 'addChild', 'link-80');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt id="link-81" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-81', 'Node', 'link-4');">Node</a></tt><tt class="py-op">(</tt><tt class="py-string">'group'</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">group</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">item</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name" targets="Method nbxmpp.simplexml.Node.addChild()=nbxmpp.simplexml.Node-class.html#addChild"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-78', 'addChild', 'link-78');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt id="link-79" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-79', 'Node', 'link-4');">Node</a></tt><tt class="py-op">(</tt><tt class="py-string">'group'</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">group</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-82', 'send', 'link-19');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">iq</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-80', 'send', 'link-19');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">iq</tt><tt class="py-op">)</tt> </tt>
</div><a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> </tt>
<a name="NonBlockingRoster.setItemMulti"></a><div id="NonBlockingRoster.setItemMulti-def"><a name="L241"></a><tt class="py-lineno">241</tt> <a class="py-toggle" href="#" id="NonBlockingRoster.setItemMulti-toggle" onclick="return toggle('NonBlockingRoster.setItemMulti');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#setItemMulti">setItemMulti</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">items</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NonBlockingRoster.setItemMulti-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingRoster.setItemMulti-expanded"><a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"><tt class="py-docstring"> Rename multiple contacts and sets their group lists</tt> </tt>
<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">iq</tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name"><a title="nbxmpp.protocol.Iq" class="py-name" href="#" onclick="return doclink('link-83', 'Iq', 'link-2');">Iq</a></tt><tt class="py-op">(</tt><tt class="py-string">'set'</tt><tt class="py-op">,</tt> <tt id="link-84" class="py-name"><a title="nbxmpp.protocol.NS_ROSTER" class="py-name" href="#" onclick="return doclink('link-84', 'NS_ROSTER', 'link-7');">NS_ROSTER</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">query</tt> <tt class="py-op">=</tt> <tt class="py-name">iq</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-85', 'getTag', 'link-23');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'query'</tt><tt class="py-op">)</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">iq</tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="nbxmpp.protocol.Iq" class="py-name" href="#" onclick="return doclink('link-81', 'Iq', 'link-2');">Iq</a></tt><tt class="py-op">(</tt><tt class="py-string">'set'</tt><tt class="py-op">,</tt> <tt id="link-82" class="py-name"><a title="nbxmpp.protocol.NS_ROSTER" class="py-name" href="#" onclick="return doclink('link-82', 'NS_ROSTER', 'link-7');">NS_ROSTER</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">query</tt> <tt class="py-op">=</tt> <tt class="py-name">iq</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-83', 'getTag', 'link-23');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'query'</tt><tt class="py-op">)</tt> </tt>
<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">items</tt><tt class="py-op">:</tt> </tt>
<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-name">attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'jid'</tt><tt class="py-op">:</tt> <tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-string">'jid'</tt><tt class="py-op">]</tt><tt class="py-op">}</tt> </tt>
<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-string">'name'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-string">'name'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-string">'name'</tt><tt class="py-op">]</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-name">item</tt> <tt class="py-op">=</tt> <tt class="py-name">query</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-86', 'setTag', 'link-79');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-name">item</tt> <tt class="py-op">=</tt> <tt class="py-name">query</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-84', 'setTag', 'link-77');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'item'</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">group</tt> <tt class="py-keyword">in</tt> <tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-string">'groups'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-name">item</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-87', 'addChild', 'link-80');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt id="link-88" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-88', 'Node', 'link-4');">Node</a></tt><tt class="py-op">(</tt><tt class="py-string">'group'</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">group</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-name">item</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-85', 'addChild', 'link-78');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt id="link-86" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-86', 'Node', 'link-4');">Node</a></tt><tt class="py-op">(</tt><tt class="py-string">'group'</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">group</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-89', 'send', 'link-19');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">iq</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-87', 'send', 'link-19');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">iq</tt><tt class="py-op">)</tt> </tt>
</div><a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> </tt>
<a name="NonBlockingRoster.getItems"></a><div id="NonBlockingRoster.getItems-def"><a name="L256"></a><tt class="py-lineno">256</tt> <a class="py-toggle" href="#" id="NonBlockingRoster.getItems-toggle" onclick="return toggle('NonBlockingRoster.getItems');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getItems">getItems</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NonBlockingRoster.getItems-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingRoster.getItems-expanded"><a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"><tt class="py-docstring"> Return list of all [bare] JIDs that the roster is currently tracks</tt> </tt>
<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-90', 'keys', 'link-60');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-88', 'keys', 'link-60');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> </tt>
<a name="NonBlockingRoster.keys"></a><div id="NonBlockingRoster.keys-def"><a name="L262"></a><tt class="py-lineno">262</tt> <a class="py-toggle" href="#" id="NonBlockingRoster.keys-toggle" onclick="return toggle('NonBlockingRoster.keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#keys">keys</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NonBlockingRoster.keys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingRoster.keys-expanded"><a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-docstring"> Same as getItems. Provided for the sake of dictionary interface</tt> </tt>
<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-91', 'keys', 'link-60');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-89', 'keys', 'link-60');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> </tt>
<a name="NonBlockingRoster.__getitem__"></a><div id="NonBlockingRoster.__getitem__-def"><a name="L268"></a><tt class="py-lineno">268</tt> <a class="py-toggle" href="#" id="NonBlockingRoster.__getitem__-toggle" onclick="return toggle('NonBlockingRoster.__getitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#__getitem__">__getitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NonBlockingRoster.__getitem__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingRoster.__getitem__-expanded"><a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -478,50 +476,50 @@ nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick
</div><div id="NonBlockingRoster.Subscribe-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingRoster.Subscribe-expanded"><a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"><tt class="py-docstring"> Send subscription request to JID 'jid'</tt> </tt>
<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-92', 'send', 'link-19');">send</a></tt><tt class="py-op">(</tt><tt id="link-93" class="py-name"><a title="nbxmpp.protocol.Presence" class="py-name" href="#" onclick="return doclink('link-93', 'Presence', 'link-3');">Presence</a></tt><tt class="py-op">(</tt><tt class="py-name">jid</tt><tt class="py-op">,</tt> <tt class="py-string">'subscribe'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-90', 'send', 'link-19');">send</a></tt><tt class="py-op">(</tt><tt id="link-91" class="py-name"><a title="nbxmpp.protocol.Presence" class="py-name" href="#" onclick="return doclink('link-91', 'Presence', 'link-3');">Presence</a></tt><tt class="py-op">(</tt><tt class="py-name">jid</tt><tt class="py-op">,</tt> <tt class="py-string">'subscribe'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> </tt>
<a name="NonBlockingRoster.Unsubscribe"></a><div id="NonBlockingRoster.Unsubscribe-def"><a name="L289"></a><tt class="py-lineno">289</tt> <a class="py-toggle" href="#" id="NonBlockingRoster.Unsubscribe-toggle" onclick="return toggle('NonBlockingRoster.Unsubscribe');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#Unsubscribe">Unsubscribe</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">jid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NonBlockingRoster.Unsubscribe-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingRoster.Unsubscribe-expanded"><a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"><tt class="py-docstring"> Ask for removing our subscription for JID 'jid'</tt> </tt>
<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-94', 'send', 'link-19');">send</a></tt><tt class="py-op">(</tt><tt id="link-95" class="py-name"><a title="nbxmpp.protocol.Presence" class="py-name" href="#" onclick="return doclink('link-95', 'Presence', 'link-3');">Presence</a></tt><tt class="py-op">(</tt><tt class="py-name">jid</tt><tt class="py-op">,</tt> <tt class="py-string">'unsubscribe'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-92', 'send', 'link-19');">send</a></tt><tt class="py-op">(</tt><tt id="link-93" class="py-name"><a title="nbxmpp.protocol.Presence" class="py-name" href="#" onclick="return doclink('link-93', 'Presence', 'link-3');">Presence</a></tt><tt class="py-op">(</tt><tt class="py-name">jid</tt><tt class="py-op">,</tt> <tt class="py-string">'unsubscribe'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> </tt>
<a name="NonBlockingRoster.Authorize"></a><div id="NonBlockingRoster.Authorize-def"><a name="L295"></a><tt class="py-lineno">295</tt> <a class="py-toggle" href="#" id="NonBlockingRoster.Authorize-toggle" onclick="return toggle('NonBlockingRoster.Authorize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#Authorize">Authorize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">jid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NonBlockingRoster.Authorize-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingRoster.Authorize-expanded"><a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"><tt class="py-docstring"> Authorize JID 'jid'. Works only if these JID requested auth previously</tt> </tt>
<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-96', 'send', 'link-19');">send</a></tt><tt class="py-op">(</tt><tt id="link-97" class="py-name"><a title="nbxmpp.protocol.Presence" class="py-name" href="#" onclick="return doclink('link-97', 'Presence', 'link-3');">Presence</a></tt><tt class="py-op">(</tt><tt class="py-name">jid</tt><tt class="py-op">,</tt> <tt class="py-string">'subscribed'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-94', 'send', 'link-19');">send</a></tt><tt class="py-op">(</tt><tt id="link-95" class="py-name"><a title="nbxmpp.protocol.Presence" class="py-name" href="#" onclick="return doclink('link-95', 'Presence', 'link-3');">Presence</a></tt><tt class="py-op">(</tt><tt class="py-name">jid</tt><tt class="py-op">,</tt> <tt class="py-string">'subscribed'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> </tt>
<a name="NonBlockingRoster.Unauthorize"></a><div id="NonBlockingRoster.Unauthorize-def"><a name="L301"></a><tt class="py-lineno">301</tt> <a class="py-toggle" href="#" id="NonBlockingRoster.Unauthorize-toggle" onclick="return toggle('NonBlockingRoster.Unauthorize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#Unauthorize">Unauthorize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">jid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NonBlockingRoster.Unauthorize-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingRoster.Unauthorize-expanded"><a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"><tt class="py-docstring"> Unauthorise JID 'jid'. Use for declining authorisation request or for</tt> </tt>
<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"><tt class="py-docstring"> removing existing authorization</tt> </tt>
<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-98', 'send', 'link-19');">send</a></tt><tt class="py-op">(</tt><tt id="link-99" class="py-name"><a title="nbxmpp.protocol.Presence" class="py-name" href="#" onclick="return doclink('link-99', 'Presence', 'link-3');">Presence</a></tt><tt class="py-op">(</tt><tt class="py-name">jid</tt><tt class="py-op">,</tt> <tt class="py-string">'unsubscribed'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-96', 'send', 'link-19');">send</a></tt><tt class="py-op">(</tt><tt id="link-97" class="py-name"><a title="nbxmpp.protocol.Presence" class="py-name" href="#" onclick="return doclink('link-97', 'Presence', 'link-3');">Presence</a></tt><tt class="py-op">(</tt><tt class="py-name">jid</tt><tt class="py-op">,</tt> <tt class="py-string">'unsubscribed'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> </tt>
<a name="NonBlockingRoster.getRaw"></a><div id="NonBlockingRoster.getRaw-def"><a name="L308"></a><tt class="py-lineno">308</tt> <a class="py-toggle" href="#" id="NonBlockingRoster.getRaw-toggle" onclick="return toggle('NonBlockingRoster.getRaw');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getRaw">getRaw</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NonBlockingRoster.getRaw-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingRoster.getRaw-expanded"><a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -549,23 +547,23 @@ nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick
<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"><tt class="py-docstring"> Also request roster from server if the 'request' argument is set. Used</tt> </tt>
<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"><tt class="py-docstring"> internally</tt> </tt>
<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name" targets="Method nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandler"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-100', 'RegisterHandler', 'link-100');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'iq'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.RosterIqHandler()=nbxmpp.roster_nb.NonBlockingRoster-class.html#RosterIqHandler"><a title="nbxmpp.roster_nb.NonBlockingRoster.RosterIqHandler" class="py-name" href="#" onclick="return doclink('link-101', 'RosterIqHandler', 'link-101');">RosterIqHandler</a></tt><tt class="py-op">,</tt> <tt class="py-string">'result'</tt><tt class="py-op">,</tt> <tt id="link-102" class="py-name"><a title="nbxmpp.protocol.NS_ROSTER" class="py-name" href="#" onclick="return doclink('link-102', 'NS_ROSTER', 'link-7');">NS_ROSTER</a></tt><tt class="py-op">,</tt> <tt class="py-name">makefirst</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-103', 'RegisterHandler', 'link-100');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'iq'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.RosterIqHandler" class="py-name" href="#" onclick="return doclink('link-104', 'RosterIqHandler', 'link-101');">RosterIqHandler</a></tt><tt class="py-op">,</tt> <tt class="py-string">'set'</tt><tt class="py-op">,</tt> <tt id="link-105" class="py-name"><a title="nbxmpp.protocol.NS_ROSTER" class="py-name" href="#" onclick="return doclink('link-105', 'NS_ROSTER', 'link-7');">NS_ROSTER</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-106', 'RegisterHandler', 'link-100');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'presence'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.PresenceHandler()=nbxmpp.roster_nb.NonBlockingRoster-class.html#PresenceHandler"><a title="nbxmpp.roster_nb.NonBlockingRoster.PresenceHandler" class="py-name" href="#" onclick="return doclink('link-107', 'PresenceHandler', 'link-107');">PresenceHandler</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name" targets="Method nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandler"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-98', 'RegisterHandler', 'link-98');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'iq'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.RosterIqHandler()=nbxmpp.roster_nb.NonBlockingRoster-class.html#RosterIqHandler"><a title="nbxmpp.roster_nb.NonBlockingRoster.RosterIqHandler" class="py-name" href="#" onclick="return doclink('link-99', 'RosterIqHandler', 'link-99');">RosterIqHandler</a></tt><tt class="py-op">,</tt> <tt class="py-string">'result'</tt><tt class="py-op">,</tt> <tt id="link-100" class="py-name"><a title="nbxmpp.protocol.NS_ROSTER" class="py-name" href="#" onclick="return doclink('link-100', 'NS_ROSTER', 'link-7');">NS_ROSTER</a></tt><tt class="py-op">,</tt> <tt class="py-name">makefirst</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-101', 'RegisterHandler', 'link-98');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'iq'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.RosterIqHandler" class="py-name" href="#" onclick="return doclink('link-102', 'RosterIqHandler', 'link-99');">RosterIqHandler</a></tt><tt class="py-op">,</tt> <tt class="py-string">'set'</tt><tt class="py-op">,</tt> <tt id="link-103" class="py-name"><a title="nbxmpp.protocol.NS_ROSTER" class="py-name" href="#" onclick="return doclink('link-103', 'NS_ROSTER', 'link-7');">NS_ROSTER</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-104', 'RegisterHandler', 'link-98');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'presence'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.PresenceHandler()=nbxmpp.roster_nb.NonBlockingRoster-class.html#PresenceHandler"><a title="nbxmpp.roster_nb.NonBlockingRoster.PresenceHandler" class="py-name" href="#" onclick="return doclink('link-105', 'PresenceHandler', 'link-105');">PresenceHandler</a></tt><tt class="py-op">)</tt> </tt>
<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">request</tt><tt class="py-op">:</tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.Request()=nbxmpp.roster_nb.NonBlockingRoster-class.html#Request"><a title="nbxmpp.roster_nb.NonBlockingRoster.Request" class="py-name" href="#" onclick="return doclink('link-108', 'Request', 'link-108');">Request</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.Request()=nbxmpp.roster_nb.NonBlockingRoster-class.html#Request"><a title="nbxmpp.roster_nb.NonBlockingRoster.Request" class="py-name" href="#" onclick="return doclink('link-106', 'Request', 'link-106');">Request</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> </tt>
<a name="NonBlockingRoster._on_roster_set"></a><div id="NonBlockingRoster._on_roster_set-def"><a name="L340"></a><tt class="py-lineno">340</tt> <a class="py-toggle" href="#" id="NonBlockingRoster._on_roster_set-toggle" onclick="return toggle('NonBlockingRoster._on_roster_set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#_on_roster_set">_on_roster_set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NonBlockingRoster._on_roster_set-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingRoster._on_roster_set-expanded"><a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name" targets="Class nbxmpp.dispatcher_nb.Dispatcher=nbxmpp.dispatcher_nb.Dispatcher-class.html"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-109', 'Dispatcher', 'link-109');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-110" class="py-name" targets="Method nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#ProcessNonBlocking,Method nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#ProcessNonBlocking"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
-nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-110', 'ProcessNonBlocking', 'link-110');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name" targets="Class nbxmpp.dispatcher_nb.Dispatcher=nbxmpp.dispatcher_nb.Dispatcher-class.html"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-107', 'Dispatcher', 'link-107');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-108" class="py-name" targets="Method nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#ProcessNonBlocking,Method nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#ProcessNonBlocking"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.ProcessNonBlocking
+nbxmpp.dispatcher_nb.XMPPDispatcher.ProcessNonBlocking" class="py-name" href="#" onclick="return doclink('link-108', 'ProcessNonBlocking', 'link-108');">ProcessNonBlocking</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt><tt class="py-op">:</tt> </tt>
<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-string">'_owner'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">:</tt> </tt>
<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-comment"># Connection has been closed by receiving a &lt;stream:error&gt; for ex,</tt> </tt>
<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.onreceive()=nbxmpp.bosh.NonBlockingBOSH-class.html#onreceive,Method nbxmpp.transports_nb.NonBlockingTransport.onreceive()=nbxmpp.transports_nb.NonBlockingTransport-class.html#onreceive"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
-nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-111', 'onreceive', 'link-111');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.onreceive()=nbxmpp.bosh.NonBlockingBOSH-class.html#onreceive,Method nbxmpp.transports_nb.NonBlockingTransport.onreceive()=nbxmpp.transports_nb.NonBlockingTransport-class.html#onreceive"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-109', 'onreceive', 'link-109');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_ready</tt><tt class="py-op">:</tt> </tt>
<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_ready</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_ready</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
@@ -578,8 +576,8 @@ nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" on
<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-name">return_self</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt><tt class="py-op">:</tt> </tt>
<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_ready</tt> <tt class="py-op">=</tt> <tt class="py-name">on_ready</tt> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
-nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-112', 'onreceive', 'link-111');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster._on_roster_set()=nbxmpp.roster_nb.NonBlockingRoster-class.html#_on_roster_set"><a title="nbxmpp.roster_nb.NonBlockingRoster._on_roster_set" class="py-name" href="#" onclick="return doclink('link-113', '_on_roster_set', 'link-113');">_on_roster_set</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-110', 'onreceive', 'link-109');">onreceive</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster._on_roster_set()=nbxmpp.roster_nb.NonBlockingRoster-class.html#_on_roster_set"><a title="nbxmpp.roster_nb.NonBlockingRoster._on_roster_set" class="py-name" href="#" onclick="return doclink('link-111', '_on_roster_set', 'link-111');">_on_roster_set</a></tt><tt class="py-op">)</tt> </tt>
<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-name">return_self</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">on_ready</tt><tt class="py-op">:</tt> </tt>
<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-name">on_ready</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
@@ -625,7 +623,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.roster_nb.NonBlockingRoster-class.html b/doc/apidocs/nbxmpp.roster_nb.NonBlockingRoster-class.html
index 20c0d60..4c7f90a 100644
--- a/doc/apidocs/nbxmpp.roster_nb.NonBlockingRoster-class.html
+++ b/doc/apidocs/nbxmpp.roster_nb.NonBlockingRoster-class.html
@@ -64,21 +64,21 @@
<h1 class="epydoc">Class NonBlockingRoster</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.roster_nb-pysrc.html#NonBlockingRoster">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_r" name="uml_class_diagram_for_nbxmpp_r">
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#__init__" title="Init internal variables" alt="" coords="17,153,313,172"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#Request" title="Request roster from server if it were not yet requested (or if the &#39;force&#39; argument is set)" alt="" coords="17,172,313,191"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#RosterIqHandler" title="Subscription tracker. Used internally for setting items state in internal roster representation" alt="" coords="17,191,313,209"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#PresenceHandler" title="Presence tracker. Used internally for setting items&#39; resources state in internal roster representation" alt="" coords="17,209,313,228"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#delItem" title="Delete contact &#39;jid&#39; from roster" alt="" coords="17,228,313,247"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getAsk" title="Return &#39;ask&#39; value of contact &#39;jid&#39;" alt="" coords="17,247,313,265"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getGroups" title="Return groups list that contact &#39;jid&#39; belongs to" alt="" coords="17,265,313,284"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getName" title="Return name of contact &#39;jid&#39;" alt="" coords="17,284,313,303"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getPriority" title="Return priority of contact &#39;jid&#39;. &#39;jid&#39; should be a full (not bare) JID" alt="" coords="17,303,313,321"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getRawRoster" title="Return roster representation in internal format" alt="" coords="17,321,313,340"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getRawItem" title="Return roster item &#39;jid&#39; representation in internal format" alt="" coords="17,340,313,359"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getShow" title="Return &#39;show&#39; value of contact &#39;jid&#39;. &#39;jid&#39; should be a full (not bare) JID" alt="" coords="17,359,313,377"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getStatus" title="Return &#39;status&#39; value of contact &#39;jid&#39;. &#39;jid&#39; should be a full (not bare) JID" alt="" coords="17,377,313,396"/>
-<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getRoster" title="Request roster from server if neccessary and returns self" alt="" coords="17,415,313,433"/>
-<area shape="rect" id="node1" href="nbxmpp.roster_nb.NonBlockingRoster-class.html" title="Defines a plenty of methods that will allow you to manage roster. Also automatically track presences from remote JIDs taking into account that every JID can have multiple resources connected. Does not currently support &#39;error&#39; presences. You can also use mapping interface for access to the internal representation of contacts in roster" alt="" coords="5,121,325,439"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#__init__" title="Init internal variables" alt="" coords="17,153,312,172"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#Request" title="Request roster from server if it were not yet requested (or if the &#39;force&#39; argument is set)" alt="" coords="17,172,312,191"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#RosterIqHandler" title="Subscription tracker. Used internally for setting items state in internal roster representation" alt="" coords="17,191,312,209"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#PresenceHandler" title="Presence tracker. Used internally for setting items&#39; resources state in internal roster representation" alt="" coords="17,209,312,228"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#delItem" title="Delete contact &#39;jid&#39; from roster" alt="" coords="17,228,312,247"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getAsk" title="Return &#39;ask&#39; value of contact &#39;jid&#39;" alt="" coords="17,247,312,265"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getGroups" title="Return groups list that contact &#39;jid&#39; belongs to" alt="" coords="17,265,312,284"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getName" title="Return name of contact &#39;jid&#39;" alt="" coords="17,284,312,303"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getPriority" title="Return priority of contact &#39;jid&#39;. &#39;jid&#39; should be a full (not bare) JID" alt="" coords="17,303,312,321"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getRawRoster" title="Return roster representation in internal format" alt="" coords="17,321,312,340"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getRawItem" title="Return roster item &#39;jid&#39; representation in internal format" alt="" coords="17,340,312,359"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getShow" title="Return &#39;show&#39; value of contact &#39;jid&#39;. &#39;jid&#39; should be a full (not bare) JID" alt="" coords="17,359,312,377"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getStatus" title="Return &#39;status&#39; value of contact &#39;jid&#39;. &#39;jid&#39; should be a full (not bare) JID" alt="" coords="17,377,312,396"/>
+<area shape="rect" id="node205" href="nbxmpp.roster_nb.NonBlockingRoster-class.html#getRoster" title="Request roster from server if neccessary and returns self" alt="" coords="17,415,312,433"/>
+<area shape="rect" id="node1" href="nbxmpp.roster_nb.NonBlockingRoster-class.html" title="Defines a plenty of methods that will allow you to manage roster. Also automatically track presences from remote JIDs taking into account that every JID can have multiple resources connected. Does not currently support &#39;error&#39; presences. You can also use mapping interface for access to the internal representation of contacts in roster" alt="" coords="5,121,323,439"/>
<area shape="rect" id="node206" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="52,39,277,57"/>
<area shape="rect" id="node206" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="52,57,277,76"/>
<area shape="rect" id="node206" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="52,76,277,95"/>
@@ -1445,7 +1445,7 @@ internally
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.simplexml-module.html b/doc/apidocs/nbxmpp.simplexml-module.html
index 14de838..49069c1 100644
--- a/doc/apidocs/nbxmpp.simplexml-module.html
+++ b/doc/apidocs/nbxmpp.simplexml-module.html
@@ -466,7 +466,7 @@ logging.getLogger('nbxmpp.simplexml')
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.simplexml-pysrc.html b/doc/apidocs/nbxmpp.simplexml-pysrc.html
index 4964fb1..81aeef2 100644
--- a/doc/apidocs/nbxmpp.simplexml-pysrc.html
+++ b/doc/apidocs/nbxmpp.simplexml-pysrc.html
@@ -169,10 +169,8 @@ nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return
<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-name">node</tt> <tt class="py-op">=</tt> <tt id="link-8" class="py-name" targets="Class nbxmpp.simplexml.NodeBuilder=nbxmpp.simplexml.NodeBuilder-class.html"><a title="nbxmpp.simplexml.NodeBuilder" class="py-name" href="#" onclick="return doclink('link-8', 'NodeBuilder', 'link-8');">NodeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">node_built</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Variable nbxmpp.name=nbxmpp-module.html#name,Variable nbxmpp.protocol.name=nbxmpp.protocol-module.html#name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-9', 'name', 'link-9');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nsd</tt> <tt class="py-op">=</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-10', 'name', 'link-9');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.keys()=nbxmpp.roster_nb.NonBlockingRoster-class.html#keys"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-11', 'keys', 'link-11');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nsd</tt> <tt class="py-op">=</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.keys()=nbxmpp.roster_nb.NonBlockingRoster-class.html#keys"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-9', 'keys', 'link-9');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">data</tt> <tt class="py-keyword">in</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">:</tt> </tt>
<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
@@ -181,8 +179,7 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-10'
<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">k</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt> <tt class="py-keyword">in</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">nsd</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nsd</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">v</tt> </tt>
<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-12', 'name', 'link-9');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nsd</tt> <tt class="py-op">=</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nsd</tt> <tt class="py-op">=</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">parent</tt><tt class="py-op">:</tt> </tt>
<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">parent</tt> </tt>
<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nsp_cache</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
@@ -196,30 +193,27 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-12'
<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">attr</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">attr</tt><tt class="py-op">]</tt> </tt>
<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tag</tt><tt class="py-op">:</tt> </tt>
<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node_built</tt><tt class="py-op">:</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">pfx</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-13', 'name', 'link-9');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-name">tag</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method nbxmpp.simplexml.Node.lookup_nsp()=nbxmpp.simplexml.Node-class.html#lookup_nsp"><a title="nbxmpp.simplexml.Node.lookup_nsp" class="py-name" href="#" onclick="return doclink('link-14', 'lookup_nsp', 'link-14');">lookup_nsp</a></tt><tt class="py-op">(</tt><tt class="py-name">pfx</tt><tt class="py-op">)</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">pfx</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-name">tag</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method nbxmpp.simplexml.Node.lookup_nsp()=nbxmpp.simplexml.Node-class.html#lookup_nsp"><a title="nbxmpp.simplexml.Node.lookup_nsp" class="py-name" href="#" onclick="return doclink('link-10', 'lookup_nsp', 'link-10');">lookup_nsp</a></tt><tt class="py-op">(</tt><tt class="py-name">pfx</tt><tt class="py-op">)</tt> </tt>
<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">' '</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tag</tt><tt class="py-op">:</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-15', 'name', 'link-9');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-name">tag</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-16', 'name', 'link-9');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tag</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-name">tag</tt> </tt>
<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">payload</tt><tt class="py-op">]</tt> </tt>
<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">payload</tt><tt class="py-op">:</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt id="link-17" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-17', 'Node', 'link-6');">Node</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method nbxmpp.simplexml.Node.addChild()=nbxmpp.simplexml.Node-class.html#addChild"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-18', 'addChild', 'link-18');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt id="link-11" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-11', 'Node', 'link-6');">Node</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method nbxmpp.simplexml.Node.addChild()=nbxmpp.simplexml.Node-class.html#addChild"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-12', 'addChild', 'link-12');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-19" class="py-name" targets="Function nbxmpp.simplexml.ustr()=nbxmpp.simplexml-module.html#ustr"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-19', 'ustr', 'link-19');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-13" class="py-name" targets="Function nbxmpp.simplexml.ustr()=nbxmpp.simplexml-module.html#ustr"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-13', 'ustr', 'link-13');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> </tt>
<a name="Node.lookup_nsp"></a><div id="Node.lookup_nsp-def"><a name="L134"></a><tt class="py-lineno">134</tt> <a class="py-toggle" href="#" id="Node.lookup_nsp-toggle" onclick="return toggle('Node.lookup_nsp');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#lookup_nsp">lookup_nsp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">pfx</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Node.lookup_nsp-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.lookup_nsp-expanded"><a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-name">ns</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nsd</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method nbxmpp.bosh.KeyStack.get()=nbxmpp.bosh.KeyStack-class.html#get"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-20', 'get', 'link-20');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">pfx</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><div id="Node.lookup_nsp-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.lookup_nsp-expanded"><a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-name">ns</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nsd</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method nbxmpp.bosh.KeyStack.get()=nbxmpp.bosh.KeyStack-class.html#get"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-14', 'get', 'link-14');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">pfx</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ns</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-name">ns</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nsp_cache</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-21', 'get', 'link-20');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">pfx</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-name">ns</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nsp_cache</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-15', 'get', 'link-14');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">pfx</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ns</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">:</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">ns</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="nbxmpp.simplexml.Node.lookup_nsp" class="py-name" href="#" onclick="return doclink('link-22', 'lookup_nsp', 'link-14');">lookup_nsp</a></tt><tt class="py-op">(</tt><tt class="py-name">pfx</tt><tt class="py-op">)</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">ns</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="nbxmpp.simplexml.Node.lookup_nsp" class="py-name" href="#" onclick="return doclink('link-16', 'lookup_nsp', 'link-10');">lookup_nsp</a></tt><tt class="py-op">(</tt><tt class="py-name">pfx</tt><tt class="py-op">)</tt> </tt>
<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nsp_cache</tt><tt class="py-op">[</tt><tt class="py-name">pfx</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">ns</tt> </tt>
<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'http://www.gajim.org/xmlns/undeclared'</tt> </tt>
@@ -230,40 +224,38 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-16'
<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"><tt class="py-docstring"> Method used to dump node into textual representation. If "fancy" argument</tt> </tt>
<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"> is set to True produces indented output for readability</tt> </tt>
<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">fancy</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt> <tt class="py-op">*</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-23', 'name', 'link-9');">name</a></tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">fancy</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt> <tt class="py-op">*</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> </tt>
<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">:</tt> </tt>
<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">!=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt><tt class="py-op">:</tt> </tt>
<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'xmlns'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">:</tt> </tt>
<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">' xmlns="%s"'</tt><tt class="py-op">%</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">namespace</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-24', 'keys', 'link-11');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt id="link-25" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-25', 'ustr', 'link-19');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">' %s="%s"'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-26" class="py-name" targets="Function nbxmpp.simplexml.XMLescape()=nbxmpp.simplexml-module.html#XMLescape"><a title="nbxmpp.simplexml.XMLescape" class="py-name" href="#" onclick="return doclink('link-26', 'XMLescape', 'link-26');">XMLescape</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-17', 'keys', 'link-9');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt id="link-18" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-18', 'ustr', 'link-13');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">' %s="%s"'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-19" class="py-name" targets="Function nbxmpp.simplexml.XMLescape()=nbxmpp.simplexml-module.html#XMLescape"><a title="nbxmpp.simplexml.XMLescape" class="py-name" href="#" onclick="return doclink('link-19', 'XMLescape', 'link-19');">XMLescape</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">"&gt;"</tt> </tt>
<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-name">cnt</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">:</tt> </tt>
<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">fancy</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">"\n"</tt> </tt>
<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">a</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">:</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">fancy</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">&gt;=</tt><tt class="py-name">cnt</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt><tt class="py-op">=</tt><tt class="py-name">s</tt><tt class="py-op">+</tt><tt id="link-27" class="py-name"><a title="nbxmpp.simplexml.XMLescape" class="py-name" href="#" onclick="return doclink('link-27', 'XMLescape', 'link-26');">XMLescape</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">cnt</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">&gt;=</tt><tt class="py-name">cnt</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt><tt class="py-op">=</tt><tt class="py-name">s</tt><tt class="py-op">+</tt><tt id="link-28" class="py-name"><a title="nbxmpp.simplexml.XMLescape" class="py-name" href="#" onclick="return doclink('link-28', 'XMLescape', 'link-26');">XMLescape</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">cnt</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">fancy</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">&gt;=</tt><tt class="py-name">cnt</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt><tt class="py-op">=</tt><tt class="py-name">s</tt><tt class="py-op">+</tt><tt id="link-20" class="py-name"><a title="nbxmpp.simplexml.XMLescape" class="py-name" href="#" onclick="return doclink('link-20', 'XMLescape', 'link-19');">XMLescape</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">cnt</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">&gt;=</tt><tt class="py-name">cnt</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt><tt class="py-op">=</tt><tt class="py-name">s</tt><tt class="py-op">+</tt><tt id="link-21" class="py-name"><a title="nbxmpp.simplexml.XMLescape" class="py-name" href="#" onclick="return doclink('link-21', 'XMLescape', 'link-19');">XMLescape</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">cnt</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="nbxmpp.protocol.JID.__str__
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="nbxmpp.protocol.JID.__str__
nbxmpp.simplexml.Node.__str__
-nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-29', '__str__', 'link-2');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-22', '__str__', 'link-2');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="nbxmpp.protocol.JID.__str__
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="nbxmpp.protocol.JID.__str__
nbxmpp.simplexml.Node.__str__
-nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-30', '__str__', 'link-2');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-name">fancy</tt> <tt class="py-keyword">and</tt> <tt class="py-name">fancy</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.tls_nb.SSLWrapper.Error.__str__" class="py-name" href="#" onclick="return doclink('link-23', '__str__', 'link-2');">__str__</a></tt><tt class="py-op">(</tt><tt class="py-name">fancy</tt> <tt class="py-keyword">and</tt> <tt class="py-name">fancy</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-name">cnt</tt><tt class="py-op">=</tt><tt class="py-name">cnt</tt><tt class="py-op">+</tt><tt class="py-number">1</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">fancy</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">cnt</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt id="link-31" class="py-name"><a title="nbxmpp.simplexml.XMLescape" class="py-name" href="#" onclick="return doclink('link-31', 'XMLescape', 'link-26');">XMLescape</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">cnt</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">cnt</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt id="link-32" class="py-name"><a title="nbxmpp.simplexml.XMLescape" class="py-name" href="#" onclick="return doclink('link-32', 'XMLescape', 'link-26');">XMLescape</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">cnt</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">fancy</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">cnt</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt id="link-24" class="py-name"><a title="nbxmpp.simplexml.XMLescape" class="py-name" href="#" onclick="return doclink('link-24', 'XMLescape', 'link-19');">XMLescape</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">cnt</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">cnt</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt id="link-25" class="py-name"><a title="nbxmpp.simplexml.XMLescape" class="py-name" href="#" onclick="return doclink('link-25', 'XMLescape', 'link-19');">XMLescape</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-name">cnt</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt> <tt class="py-keyword">and</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">s</tt><tt class="py-op">=</tt><tt class="py-name">s</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-string">' /&gt;'</tt> </tt>
<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">fancy</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">"\n"</tt> </tt>
<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">fancy</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-name">fancy</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt> <tt class="py-op">*</tt> <tt class="py-string">' '</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">"&lt;/"</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-33', 'name', 'link-9');">name</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"&gt;"</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">"&lt;/"</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">+</tt> <tt class="py-string">"&gt;"</tt> </tt>
<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">fancy</tt><tt class="py-op">:</tt> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> <tt class="py-op">+</tt> <tt class="py-string">"\n"</tt> </tt>
<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">s</tt> </tt>
</div><a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> </tt>
@@ -277,10 +269,9 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-33'
<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt><tt class="py-op">:</tt> </tt>
<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-name">newnode</tt><tt class="py-op">=</tt><tt class="py-name">node</tt> </tt>
<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> <tt class="py-name">newnode</tt><tt class="py-op">=</tt><tt id="link-34" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-34', 'Node', 'link-6');">Node</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">=</tt><tt id="link-35" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-35', 'name', 'link-9');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">parent</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> <tt class="py-name">newnode</tt><tt class="py-op">=</tt><tt id="link-26" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-26', 'Node', 'link-6');">Node</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">=</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">parent</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">namespace</tt><tt class="py-op">:</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">newnode</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method nbxmpp.simplexml.Node.setNamespace()=nbxmpp.simplexml.Node-class.html#setNamespace"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-36', 'setNamespace', 'link-36');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">namespace</tt><tt class="py-op">)</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">newnode</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method nbxmpp.simplexml.Node.setNamespace()=nbxmpp.simplexml.Node-class.html#setNamespace"><a title="nbxmpp.simplexml.Node.setNamespace" class="py-name" href="#" onclick="return doclink('link-27', 'setNamespace', 'link-27');">setNamespace</a></tt><tt class="py-op">(</tt><tt class="py-name">namespace</tt><tt class="py-op">)</tt> </tt>
<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">newnode</tt><tt class="py-op">)</tt> </tt>
<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">newnode</tt> </tt>
</div><a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> </tt>
@@ -288,7 +279,7 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-35'
</div><div id="Node.addData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.addData-expanded"><a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"><tt class="py-docstring"> Add some CDATA to node</tt> </tt>
<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-37" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-37', 'ustr', 'link-19');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-28" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-28', 'ustr', 'link-13');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> </tt>
<a name="Node.clearData"></a><div id="Node.clearData-def"><a name="L204"></a><tt class="py-lineno">204</tt> <a class="py-toggle" href="#" id="Node.clearData-toggle" onclick="return toggle('Node.clearData');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#clearData">clearData</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.clearData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.clearData-expanded"><a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -308,8 +299,8 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-35'
<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"> Else delete the first node that have specified name and (optionally)</tt> </tt>
<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-docstring"> attributes</tt> </tt>
<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt id="link-38" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-38', 'Node', 'link-6');">Node</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-name">node</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method nbxmpp.simplexml.Node.getTag()=nbxmpp.simplexml.Node-class.html#getTag"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-39', 'getTag', 'link-39');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt id="link-29" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-29', 'Node', 'link-6');">Node</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-name">node</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method nbxmpp.simplexml.Node.getTag()=nbxmpp.simplexml.Node-class.html#getTag"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-30', 'getTag', 'link-30');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">node</tt><tt class="py-op">)</tt> </tt>
<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">node</tt> </tt>
</div><a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> </tt>
@@ -323,7 +314,7 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-35'
</div><div id="Node.getAttr-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.getAttr-expanded"><a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"><tt class="py-docstring"> Return value of specified attribute</tt> </tt>
<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-40', 'get', 'link-20');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-31', 'get', 'link-14');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
</div><a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> </tt>
<a name="Node.getChildren"></a><div id="Node.getChildren-def"><a name="L239"></a><tt class="py-lineno">239</tt> <a class="py-toggle" href="#" id="Node.getChildren-toggle" onclick="return toggle('Node.getChildren');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#getChildren">getChildren</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.getChildren-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.getChildren-expanded"><a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -341,8 +332,7 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-35'
</div><div id="Node.getName-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.getName-expanded"><a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"> Return the name of node</tt> </tt>
<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-41', 'name', 'link-9');">name</a></tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> </tt>
</div><a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> </tt>
<a name="Node.getNamespace"></a><div id="Node.getNamespace-def"><a name="L257"></a><tt class="py-lineno">257</tt> <a class="py-toggle" href="#" id="Node.getNamespace-toggle" onclick="return toggle('Node.getNamespace');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#getNamespace">getNamespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.getNamespace-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.getNamespace-expanded"><a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -380,8 +370,7 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-41'
<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"><tt class="py-docstring"> Filter all child nodes using specified arguments as filter. Return the</tt> </tt>
<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"><tt class="py-docstring"> first found or None if not found</tt> </tt>
<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method nbxmpp.simplexml.Node.getTags()=nbxmpp.simplexml.Node-class.html#getTags"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-42', 'getTags', 'link-42');">getTags</a></tt><tt class="py-op">(</tt><tt id="link-43" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-43', 'name', 'link-9');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">,</tt> <tt class="py-name">one</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method nbxmpp.simplexml.Node.getTags()=nbxmpp.simplexml.Node-class.html#getTags"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-32', 'getTags', 'link-32');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">,</tt> <tt class="py-name">one</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
</div><a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> </tt>
<a name="Node.getTagAttr"></a><div id="Node.getTagAttr-def"><a name="L295"></a><tt class="py-lineno">295</tt> <a class="py-toggle" href="#" id="Node.getTagAttr-toggle" onclick="return toggle('Node.getTagAttr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#getTagAttr">getTagAttr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.getTagAttr-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.getTagAttr-expanded"><a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -389,7 +378,7 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-43'
<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"><tt class="py-docstring"> such attribute)</tt> </tt>
<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-44', 'getTag', 'link-39');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">attr</tt><tt class="py-op">]</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-33', 'getTag', 'link-30');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">attr</tt><tt class="py-op">]</tt> </tt>
<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
</div><a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> </tt>
@@ -398,7 +387,7 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-43'
<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"><tt class="py-docstring"> Return cocatenated CDATA of the child with specified name</tt> </tt>
<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-45', 'getTag', 'link-39');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method nbxmpp.simplexml.Node.getData()=nbxmpp.simplexml.Node-class.html#getData"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-46', 'getData', 'link-46');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-34', 'getTag', 'link-30');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Method nbxmpp.simplexml.Node.getData()=nbxmpp.simplexml.Node-class.html#getData"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-35', 'getData', 'link-35');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
</div><a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> </tt>
@@ -409,12 +398,11 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-43'
<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-name">nodes</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">node</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">:</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">namespace</tt> <tt class="py-keyword">and</tt> <tt class="py-name">namespace</tt> <tt class="py-op">!=</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Method nbxmpp.simplexml.Node.getNamespace()=nbxmpp.simplexml.Node-class.html#getNamespace"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-47', 'getNamespace', 'link-47');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">namespace</tt> <tt class="py-keyword">and</tt> <tt class="py-name">namespace</tt> <tt class="py-op">!=</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method nbxmpp.simplexml.Node.getNamespace()=nbxmpp.simplexml.Node-class.html#getNamespace"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-36', 'getNamespace', 'link-36');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.getName()=nbxmpp.roster_nb.NonBlockingRoster-class.html#getName,Method nbxmpp.simplexml.Node.getName()=nbxmpp.simplexml.Node-class.html#getName"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-48', 'getName', 'link-48');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-49" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-49', 'name', 'link-9');">name</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-50', 'keys', 'link-11');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.getName()=nbxmpp.roster_nb.NonBlockingRoster-class.html#getName,Method nbxmpp.simplexml.Node.getName()=nbxmpp.simplexml.Node-class.html#getName"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-37', 'getName', 'link-37');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">name</tt><tt class="py-op">:</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-38', 'keys', 'link-9');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt> <tt class="py-keyword">or</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">!=</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
@@ -429,12 +417,11 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-49'
<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"><tt class="py-docstring"> Iterate over all children using specified arguments as filter</tt> </tt>
<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">node</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">:</tt> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">namespace</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">namespace</tt> <tt class="py-op">!=</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-51', 'getNamespace', 'link-47');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">namespace</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">namespace</tt> <tt class="py-op">!=</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="nbxmpp.simplexml.Node.getNamespace" class="py-name" href="#" onclick="return doclink('link-39', 'getNamespace', 'link-36');">getNamespace</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-52', 'getName', 'link-48');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-53" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-53', 'name', 'link-9');">name</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-54', 'keys', 'link-11');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-40', 'getName', 'link-37');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">name</tt><tt class="py-op">:</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.keys" class="py-name" href="#" onclick="return doclink('link-41', 'keys', 'link-9');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt> <tt class="py-keyword">or</tt> \ </tt>
<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-name">node</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">!=</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
@@ -451,14 +438,13 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-53'
</div><div id="Node.setData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.setData-expanded"><a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"><tt class="py-docstring"> Set node's CDATA to provided string. Resets all previous CDATA!</tt> </tt>
<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-55" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-55', 'ustr', 'link-19');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-42" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-42', 'ustr', 'link-13');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
</div><a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> </tt>
<a name="Node.setName"></a><div id="Node.setName-def"><a name="L361"></a><tt class="py-lineno">361</tt> <a class="py-toggle" href="#" id="Node.setName-toggle" onclick="return toggle('Node.setName');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#setName">setName</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.setName-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.setName-expanded"><a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"><tt class="py-docstring"> Change the node name</tt> </tt>
<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-56', 'name', 'link-9');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt>
</div><a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> </tt>
<a name="Node.setNamespace"></a><div id="Node.setNamespace-def"><a name="L367"></a><tt class="py-lineno">367</tt> <a class="py-toggle" href="#" id="Node.setNamespace-toggle" onclick="return toggle('Node.setNamespace');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#setNamespace">setNamespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">namespace</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.setNamespace-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.setNamespace-expanded"><a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -492,13 +478,11 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-56'
<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"><tt class="py-docstring"> Same as getTag but if the node with specified namespace/attributes not</tt> </tt>
<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"><tt class="py-docstring"> found, creates such node and returns it</tt> </tt>
<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-name">node</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-57', 'getTags', 'link-42');">getTags</a></tt><tt class="py-op">(</tt><tt id="link-58" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-58', 'name', 'link-9');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt class="py-name">namespace</tt><tt class="py-op">,</tt> <tt class="py-name">one</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-name">node</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="nbxmpp.simplexml.Node.getTags" class="py-name" href="#" onclick="return doclink('link-43', 'getTags', 'link-32');">getTags</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt class="py-name">namespace</tt><tt class="py-op">,</tt> <tt class="py-name">one</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">node</tt><tt class="py-op">:</tt> </tt>
<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">node</tt> </tt>
<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-59', 'addChild', 'link-18');">addChild</a></tt><tt class="py-op">(</tt><tt id="link-60" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-60', 'name', 'link-9');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt class="py-name">namespace</tt><tt class="py-op">)</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-44', 'addChild', 'link-12');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt class="py-name">namespace</tt><tt class="py-op">)</tt> </tt>
</div><a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> </tt>
<a name="Node.setTagAttr"></a><div id="Node.setTagAttr-def"><a name="L405"></a><tt class="py-lineno">405</tt> <a class="py-toggle" href="#" id="Node.setTagAttr-toggle" onclick="return toggle('Node.setTagAttr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#setTagAttr">setTagAttr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.setTagAttr-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.setTagAttr-expanded"><a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -506,9 +490,9 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-60'
<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"><tt class="py-docstring"> attribute "attr" to value "val"</tt> </tt>
<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-61', 'getTag', 'link-39');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">attr</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-45', 'getTag', 'link-30');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">attrs</tt><tt class="py-op">[</tt><tt class="py-name">attr</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt>
<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
-<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-62', 'addChild', 'link-18');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">attr</tt><tt class="py-op">:</tt> <tt class="py-name">val</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-46', 'addChild', 'link-12');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">attr</tt><tt class="py-op">:</tt> <tt class="py-name">val</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
</div><a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> </tt>
<a name="Node.setTagData"></a><div id="Node.setTagData-def"><a name="L415"></a><tt class="py-lineno">415</tt> <a class="py-toggle" href="#" id="Node.setTagData-toggle" onclick="return toggle('Node.setTagData');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#setTagData">setTagData</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.setTagData-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.setTagData-expanded"><a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -516,9 +500,9 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-60'
<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"><tt class="py-docstring"> (optionally) attributes "attrs" and sets it's CDATA to string "val"</tt> </tt>
<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-63', 'getTag', 'link-39');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Method nbxmpp.simplexml.Node.setData()=nbxmpp.simplexml.Node-class.html#setData"><a title="nbxmpp.simplexml.Node.setData" class="py-name" href="#" onclick="return doclink('link-64', 'setData', 'link-64');">setData</a></tt><tt class="py-op">(</tt><tt id="link-65" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-65', 'ustr', 'link-19');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-47', 'getTag', 'link-30');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name" targets="Method nbxmpp.simplexml.Node.setData()=nbxmpp.simplexml.Node-class.html#setData"><a title="nbxmpp.simplexml.Node.setData" class="py-name" href="#" onclick="return doclink('link-48', 'setData', 'link-48');">setData</a></tt><tt class="py-op">(</tt><tt id="link-49" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-49', 'ustr', 'link-13');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-66', 'addChild', 'link-18');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-67" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-67', 'ustr', 'link-19');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-50', 'addChild', 'link-12');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-51" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-51', 'ustr', 'link-13');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
</div><a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> </tt>
<a name="Node.has_attr"></a><div id="Node.has_attr-def"><a name="L425"></a><tt class="py-lineno">425</tt> <a class="py-toggle" href="#" id="Node.has_attr-toggle" onclick="return toggle('Node.has_attr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#has_attr">has_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.has_attr-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.has_attr-expanded"><a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -530,36 +514,36 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-60'
</div><div id="Node.__getitem__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.__getitem__-expanded"><a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"><tt class="py-docstring"> Return node's attribute "item" value</tt> </tt>
<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name" targets="Method nbxmpp.simplexml.Node.getAttr()=nbxmpp.simplexml.Node-class.html#getAttr"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-68', 'getAttr', 'link-68');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name" targets="Method nbxmpp.simplexml.Node.getAttr()=nbxmpp.simplexml.Node-class.html#getAttr"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-52', 'getAttr', 'link-52');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
</div><a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> </tt>
<a name="Node.__setitem__"></a><div id="Node.__setitem__-def"><a name="L437"></a><tt class="py-lineno">437</tt> <a class="py-toggle" href="#" id="Node.__setitem__-toggle" onclick="return toggle('Node.__setitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#__setitem__">__setitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.__setitem__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.__setitem__-expanded"><a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"><tt class="py-docstring"> Set node's attribute "item" value</tt> </tt>
<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name" targets="Method nbxmpp.simplexml.Node.setAttr()=nbxmpp.simplexml.Node-class.html#setAttr"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-69', 'setAttr', 'link-69');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Method nbxmpp.simplexml.Node.setAttr()=nbxmpp.simplexml.Node-class.html#setAttr"><a title="nbxmpp.simplexml.Node.setAttr" class="py-name" href="#" onclick="return doclink('link-53', 'setAttr', 'link-53');">setAttr</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
</div><a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> </tt>
<a name="Node.__delitem__"></a><div id="Node.__delitem__-def"><a name="L443"></a><tt class="py-lineno">443</tt> <a class="py-toggle" href="#" id="Node.__delitem__-toggle" onclick="return toggle('Node.__delitem__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#__delitem__">__delitem__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.__delitem__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.__delitem__-expanded"><a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"><tt class="py-docstring"> Delete node's attribute "item"</tt> </tt>
<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name" targets="Method nbxmpp.simplexml.Node.delAttr()=nbxmpp.simplexml.Node-class.html#delAttr"><a title="nbxmpp.simplexml.Node.delAttr" class="py-name" href="#" onclick="return doclink('link-70', 'delAttr', 'link-70');">delAttr</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Method nbxmpp.simplexml.Node.delAttr()=nbxmpp.simplexml.Node-class.html#delAttr"><a title="nbxmpp.simplexml.Node.delAttr" class="py-name" href="#" onclick="return doclink('link-54', 'delAttr', 'link-54');">delAttr</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
</div><a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> </tt>
<a name="Node.__contains__"></a><div id="Node.__contains__-def"><a name="L449"></a><tt class="py-lineno">449</tt> <a class="py-toggle" href="#" id="Node.__contains__-toggle" onclick="return toggle('Node.__contains__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#__contains__">__contains__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">item</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.__contains__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.__contains__-expanded"><a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"><tt class="py-docstring"> Check if node has attribute "item"</tt> </tt>
<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name" targets="Method nbxmpp.simplexml.Node.has_attr()=nbxmpp.simplexml.Node-class.html#has_attr"><a title="nbxmpp.simplexml.Node.has_attr" class="py-name" href="#" onclick="return doclink('link-71', 'has_attr', 'link-71');">has_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name" targets="Method nbxmpp.simplexml.Node.has_attr()=nbxmpp.simplexml.Node-class.html#has_attr"><a title="nbxmpp.simplexml.Node.has_attr" class="py-name" href="#" onclick="return doclink('link-55', 'has_attr', 'link-55');">has_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
</div><a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> </tt>
<a name="Node.__getattr__"></a><div id="Node.__getattr__-def"><a name="L455"></a><tt class="py-lineno">455</tt> <a class="py-toggle" href="#" id="Node.__getattr__-toggle" onclick="return toggle('Node.__getattr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.Node-class.html#__getattr__">__getattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Node.__getattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Node.__getattr__-expanded"><a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"><tt class="py-docstring"> Reduce memory usage caused by T/NT classes - use memory only when needed</tt> </tt>
<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">attr</tt> <tt class="py-op">==</tt> <tt class="py-string">'T'</tt><tt class="py-op">:</tt> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Class nbxmpp.simplexml.T=nbxmpp.simplexml.T-class.html"><a title="nbxmpp.simplexml.T" class="py-name" href="#" onclick="return doclink('link-72', 'T', 'link-72');">T</a></tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name"><a title="nbxmpp.simplexml.T" class="py-name" href="#" onclick="return doclink('link-73', 'T', 'link-72');">T</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="nbxmpp.simplexml.T" class="py-name" href="#" onclick="return doclink('link-74', 'T', 'link-72');">T</a></tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Class nbxmpp.simplexml.T=nbxmpp.simplexml.T-class.html"><a title="nbxmpp.simplexml.T" class="py-name" href="#" onclick="return doclink('link-56', 'T', 'link-56');">T</a></tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="nbxmpp.simplexml.T" class="py-name" href="#" onclick="return doclink('link-57', 'T', 'link-56');">T</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="nbxmpp.simplexml.T" class="py-name" href="#" onclick="return doclink('link-58', 'T', 'link-56');">T</a></tt> </tt>
<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">attr</tt> <tt class="py-op">==</tt> <tt class="py-string">'NT'</tt><tt class="py-op">:</tt> </tt>
-<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name" targets="Class nbxmpp.simplexml.NT=nbxmpp.simplexml.NT-class.html"><a title="nbxmpp.simplexml.NT" class="py-name" href="#" onclick="return doclink('link-75', 'NT', 'link-75');">NT</a></tt> <tt class="py-op">=</tt> <tt id="link-76" class="py-name"><a title="nbxmpp.simplexml.NT" class="py-name" href="#" onclick="return doclink('link-76', 'NT', 'link-75');">NT</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="nbxmpp.simplexml.NT" class="py-name" href="#" onclick="return doclink('link-77', 'NT', 'link-75');">NT</a></tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Class nbxmpp.simplexml.NT=nbxmpp.simplexml.NT-class.html"><a title="nbxmpp.simplexml.NT" class="py-name" href="#" onclick="return doclink('link-59', 'NT', 'link-59');">NT</a></tt> <tt class="py-op">=</tt> <tt id="link-60" class="py-name"><a title="nbxmpp.simplexml.NT" class="py-name" href="#" onclick="return doclink('link-60', 'NT', 'link-59');">NT</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="nbxmpp.simplexml.NT" class="py-name" href="#" onclick="return doclink('link-61', 'NT', 'link-59');">NT</a></tt> </tt>
<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AttributeError</tt> </tt>
</div></div><a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> </tt>
<a name="T"></a><div id="T-def"><a name="L467"></a><tt class="py-lineno">467</tt> <a class="py-toggle" href="#" id="T-toggle" onclick="return toggle('T');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.simplexml.T-class.html">T</a><tt class="py-op">:</tt> </tt>
@@ -571,11 +555,11 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-60'
</div><div id="T.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="T.__init__-expanded"><a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">[</tt><tt class="py-string">'node'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">node</tt> </tt>
</div><a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> </tt>
<a name="T.__getattr__"></a><div id="T.__getattr__-def"><a name="L475"></a><tt class="py-lineno">475</tt> <a class="py-toggle" href="#" id="T.__getattr__-toggle" onclick="return toggle('T.__getattr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.T-class.html#__getattr__">__getattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="T.__getattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="T.__getattr__-expanded"><a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name" targets="Method nbxmpp.simplexml.Node.setTag()=nbxmpp.simplexml.Node-class.html#setTag"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-78', 'setTag', 'link-78');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+</div><div id="T.__getattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="T.__getattr__-expanded"><a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Method nbxmpp.simplexml.Node.setTag()=nbxmpp.simplexml.Node-class.html#setTag"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-62', 'setTag', 'link-62');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
</div><a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> </tt>
<a name="T.__setattr__"></a><div id="T.__setattr__-def"><a name="L478"></a><tt class="py-lineno">478</tt> <a class="py-toggle" href="#" id="T.__setattr__-toggle" onclick="return toggle('T.__setattr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.T-class.html#__setattr__">__setattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="T.__setattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="T.__setattr__-expanded"><a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-79" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-79', 'Node', 'link-6');">Node</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt id="link-80" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-80', 'Node', 'link-6');">Node</a></tt><tt class="py-op">.</tt><tt id="link-81" class="py-name" targets="Method nbxmpp.auth_nb.NonBlockingBind.__init__()=nbxmpp.auth_nb.NonBlockingBind-class.html#__init__,Method nbxmpp.auth_nb.NonBlockingNonSASL.__init__()=nbxmpp.auth_nb.NonBlockingNonSASL-class.html#__init__,Method nbxmpp.auth_nb.SASL.__init__()=nbxmpp.auth_nb.SASL-class.html#__init__,Method nbxmpp.bosh.AckChecker.__init__()=nbxmpp.bosh.AckChecker-class.html#__init__,Method nbxmpp.bosh.KeyStack.__init__()=nbxmpp.bosh.KeyStack-class.html#__init__,Method nbxmpp.bosh.NonBlockingBOSH.__init__()=nbxmpp.bosh.NonBlockingBOSH-class.html#__init__,Method nbxmpp.client_nb.NonBlockingClient.__init__()=nbxmpp.client_nb.NonBlockingClient-class.html#__init__,Method nbxmpp.dispatcher_nb.XMPPDispatcher.__init__()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#__init__,Method nbxmpp.idlequeue.IdleCommand.__init__()=nbxmpp.idlequeue.IdleCommand-class.html#__init__,Method nbxmpp.idlequeue.IdleObject.__init__()=nbxmpp.idlequeue.IdleObject-class.html#__init__,Method nbxmpp.idlequeue.IdleQueue.__init__()=nbxmpp.idlequeue.IdleQueue-class.html#__init__,Method nbxmpp.plugin.PlugIn.__init__()=nbxmpp.plugin.PlugIn-class.html#__init__,Method nbxmpp.protocol.Acks.__init__()=nbxmpp.protocol.Acks-class.html#__init__,Method nbxmpp.protocol.BOSHBody.__init__()=nbxmpp.protocol.BOSHBody-class.html#__init__,Method nbxmpp.protocol.DataField.__init__()=nbxmpp.protocol.DataField-class.html#__init__,Method nbxmpp.protocol.DataForm.__init__()=nbxmpp.protocol.DataForm-class.html#__init__,Method nbxmpp.protocol.Error.__init__()=nbxmpp.protocol.Error-class.html#__init__,Method nbxmpp.protocol.ErrorNode.__init__()=nbxmpp.protocol.ErrorNode-class.html#__init__,Method nbxmpp.protocol.Hashes.__init__()=nbxmpp.protocol.Hashes-class.html#__init__,Method nbxmpp.protocol.Iq.__init__()=nbxmpp.protocol.Iq-class.html#__init__,Method nbxmpp.protocol.JID.__init__()=nbxmpp.protocol.JID-class.html#__init__,Method nbxmpp.protocol.Message.__init__()=nbxmpp.protocol.Message-class.html#__init__,Method nbxmpp.protocol.Presence.__init__()=nbxmpp.protocol.Presence-class.html#__init__,Method nbxmpp.protocol.Protocol.__init__()=nbxmpp.protocol.Protocol-class.html#__init__,Method nbxmpp.proxy_connectors.ProxyConnector.__init__()=nbxmpp.proxy_connectors.ProxyConnector-class.html#__init__,Method nbxmpp.roster_nb.NonBlockingRoster.__init__()=nbxmpp.roster_nb.NonBlockingRoster-class.html#__init__,Method nbxmpp.simplexml.Node.__init__()=nbxmpp.simplexml.Node-class.html#__init__,Method nbxmpp.simplexml.NodeBuilder.__init__()=nbxmpp.simplexml.NodeBuilder-class.html#__init__,Method nbxmpp.simplexml.T.__init__()=nbxmpp.simplexml.T-class.html#__init__,Method nbxmpp.smacks.Smacks.__init__()=nbxmpp.smacks.Smacks-class.html#__init__,Method nbxmpp.stringprepare.EmptyMappingTable.__init__()=nbxmpp.stringprepare.EmptyMappingTable-class.html#__init__,Method nbxmpp.stringprepare.LookupTable.__init__()=nbxmpp.stringprepare.LookupTable-class.html#__init__,Method nbxmpp.stringprepare.LookupTableFromFunction.__init__()=nbxmpp.stringprepare.LookupTableFromFunction-class.html#__init__,Method nbxmpp.stringprepare.MappingTableFromFunction.__init__()=nbxmpp.stringprepare.MappingTableFromFunction-class.html#__init__,Method nbxmpp.stringprepare.Profile.__init__()=nbxmpp.stringprepare.Profile-class.html#__init__,Method nbxmpp.tls_nb.NonBlockingTLS.__init__()=nbxmpp.tls_nb.NonBlockingTLS-class.html#__init__,Method nbxmpp.tls_nb.PyOpenSSLWrapper.__init__()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#__init__,Method nbxmpp.tls_nb.SSLWrapper.Error.__init__()=nbxmpp.tls_nb.SSLWrapper.Error-class.html#__init__,Method nbxmpp.tls_nb.SSLWrapper.__init__()=nbxmpp.tls_nb.SSLWrapper-class.html#__init__,Method nbxmpp.tls_nb.StdlibSSLWrapper.__init__()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingHTTP.__init__()=nbxmpp.transports_nb.NonBlockingHTTP-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingTCP.__init__()=nbxmpp.transports_nb.NonBlockingTCP-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingTransport.__init__()=nbxmpp.transports_nb.NonBlockingTransport-class.html#__init__"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+</div><div id="T.__setattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="T.__setattr__-expanded"><a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-63" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-63', 'Node', 'link-6');">Node</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt id="link-64" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-64', 'Node', 'link-6');">Node</a></tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Method nbxmpp.auth_nb.NonBlockingBind.__init__()=nbxmpp.auth_nb.NonBlockingBind-class.html#__init__,Method nbxmpp.auth_nb.NonBlockingNonSASL.__init__()=nbxmpp.auth_nb.NonBlockingNonSASL-class.html#__init__,Method nbxmpp.auth_nb.SASL.__init__()=nbxmpp.auth_nb.SASL-class.html#__init__,Method nbxmpp.bosh.AckChecker.__init__()=nbxmpp.bosh.AckChecker-class.html#__init__,Method nbxmpp.bosh.KeyStack.__init__()=nbxmpp.bosh.KeyStack-class.html#__init__,Method nbxmpp.bosh.NonBlockingBOSH.__init__()=nbxmpp.bosh.NonBlockingBOSH-class.html#__init__,Method nbxmpp.client_nb.NonBlockingClient.__init__()=nbxmpp.client_nb.NonBlockingClient-class.html#__init__,Method nbxmpp.dispatcher_nb.XMPPDispatcher.__init__()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#__init__,Method nbxmpp.idlequeue.IdleCommand.__init__()=nbxmpp.idlequeue.IdleCommand-class.html#__init__,Method nbxmpp.idlequeue.IdleObject.__init__()=nbxmpp.idlequeue.IdleObject-class.html#__init__,Method nbxmpp.idlequeue.IdleQueue.__init__()=nbxmpp.idlequeue.IdleQueue-class.html#__init__,Method nbxmpp.plugin.PlugIn.__init__()=nbxmpp.plugin.PlugIn-class.html#__init__,Method nbxmpp.protocol.Acks.__init__()=nbxmpp.protocol.Acks-class.html#__init__,Method nbxmpp.protocol.BOSHBody.__init__()=nbxmpp.protocol.BOSHBody-class.html#__init__,Method nbxmpp.protocol.DataField.__init__()=nbxmpp.protocol.DataField-class.html#__init__,Method nbxmpp.protocol.DataForm.__init__()=nbxmpp.protocol.DataForm-class.html#__init__,Method nbxmpp.protocol.Error.__init__()=nbxmpp.protocol.Error-class.html#__init__,Method nbxmpp.protocol.ErrorNode.__init__()=nbxmpp.protocol.ErrorNode-class.html#__init__,Method nbxmpp.protocol.Hashes.__init__()=nbxmpp.protocol.Hashes-class.html#__init__,Method nbxmpp.protocol.Iq.__init__()=nbxmpp.protocol.Iq-class.html#__init__,Method nbxmpp.protocol.JID.__init__()=nbxmpp.protocol.JID-class.html#__init__,Method nbxmpp.protocol.Message.__init__()=nbxmpp.protocol.Message-class.html#__init__,Method nbxmpp.protocol.Presence.__init__()=nbxmpp.protocol.Presence-class.html#__init__,Method nbxmpp.protocol.Protocol.__init__()=nbxmpp.protocol.Protocol-class.html#__init__,Method nbxmpp.proxy_connectors.ProxyConnector.__init__()=nbxmpp.proxy_connectors.ProxyConnector-class.html#__init__,Method nbxmpp.roster_nb.NonBlockingRoster.__init__()=nbxmpp.roster_nb.NonBlockingRoster-class.html#__init__,Method nbxmpp.simplexml.Node.__init__()=nbxmpp.simplexml.Node-class.html#__init__,Method nbxmpp.simplexml.NodeBuilder.__init__()=nbxmpp.simplexml.NodeBuilder-class.html#__init__,Method nbxmpp.simplexml.T.__init__()=nbxmpp.simplexml.T-class.html#__init__,Method nbxmpp.smacks.Smacks.__init__()=nbxmpp.smacks.Smacks-class.html#__init__,Method nbxmpp.stringprepare.EmptyMappingTable.__init__()=nbxmpp.stringprepare.EmptyMappingTable-class.html#__init__,Method nbxmpp.stringprepare.LookupTable.__init__()=nbxmpp.stringprepare.LookupTable-class.html#__init__,Method nbxmpp.stringprepare.LookupTableFromFunction.__init__()=nbxmpp.stringprepare.LookupTableFromFunction-class.html#__init__,Method nbxmpp.stringprepare.MappingTableFromFunction.__init__()=nbxmpp.stringprepare.MappingTableFromFunction-class.html#__init__,Method nbxmpp.stringprepare.Profile.__init__()=nbxmpp.stringprepare.Profile-class.html#__init__,Method nbxmpp.tls_nb.NonBlockingTLS.__init__()=nbxmpp.tls_nb.NonBlockingTLS-class.html#__init__,Method nbxmpp.tls_nb.PyOpenSSLWrapper.__init__()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#__init__,Method nbxmpp.tls_nb.SSLWrapper.Error.__init__()=nbxmpp.tls_nb.SSLWrapper.Error-class.html#__init__,Method nbxmpp.tls_nb.SSLWrapper.__init__()=nbxmpp.tls_nb.SSLWrapper-class.html#__init__,Method nbxmpp.tls_nb.StdlibSSLWrapper.__init__()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingHTTP.__init__()=nbxmpp.transports_nb.NonBlockingHTTP-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingTCP.__init__()=nbxmpp.transports_nb.NonBlockingTCP-class.html#__init__,Method nbxmpp.transports_nb.NonBlockingTransport.__init__()=nbxmpp.transports_nb.NonBlockingTransport-class.html#__init__"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -617,12 +601,12 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-81', '__init__', 'link-81');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-82', 'setTag', 'link-78');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-65', '__init__', 'link-65');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="nbxmpp.simplexml.Node.setTag" class="py-name" href="#" onclick="return doclink('link-66', 'setTag', 'link-62');">setTag</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name" targets="Method nbxmpp.simplexml.Node.setTagData()=nbxmpp.simplexml.Node-class.html#setTagData"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-83', 'setTagData', 'link-83');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Method nbxmpp.simplexml.Node.setTagData()=nbxmpp.simplexml.Node-class.html#setTagData"><a title="nbxmpp.simplexml.Node.setTagData" class="py-name" href="#" onclick="return doclink('link-67', 'setTagData', 'link-67');">setTagData</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
</div><a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> </tt>
<a name="T.__delattr__"></a><div id="T.__delattr__-def"><a name="L484"></a><tt class="py-lineno">484</tt> <a class="py-toggle" href="#" id="T.__delattr__-toggle" onclick="return toggle('T.__delattr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.T-class.html#__delattr__">__delattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="T.__delattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="T.__delattr__-expanded"><a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name" targets="Method nbxmpp.simplexml.Node.delChild()=nbxmpp.simplexml.Node-class.html#delChild"><a title="nbxmpp.simplexml.Node.delChild" class="py-name" href="#" onclick="return doclink('link-84', 'delChild', 'link-84');">delChild</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+</div><div id="T.__delattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="T.__delattr__-expanded"><a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name" targets="Method nbxmpp.simplexml.Node.delChild()=nbxmpp.simplexml.Node-class.html#delChild"><a title="nbxmpp.simplexml.Node.delChild" class="py-name" href="#" onclick="return doclink('link-68', 'delChild', 'link-68');">delChild</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> </tt>
<a name="NT"></a><div id="NT-def"><a name="L487"></a><tt class="py-lineno">487</tt> <a class="py-toggle" href="#" id="NT-toggle" onclick="return toggle('NT');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.simplexml.NT-class.html">NT</a><tt class="py-op">(</tt><tt class="py-base-class">T</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NT-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="NT-expanded"><a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -630,13 +614,13 @@ nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onc
<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> </tt>
<a name="NT.__getattr__"></a><div id="NT.__getattr__-def"><a name="L492"></a><tt class="py-lineno">492</tt> <a class="py-toggle" href="#" id="NT.__getattr__-toggle" onclick="return toggle('NT.__getattr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.NT-class.html#__getattr__">__getattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NT.__getattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NT.__getattr__-expanded"><a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-85', 'addChild', 'link-18');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
+</div><div id="NT.__getattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NT.__getattr__-expanded"><a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-69', 'addChild', 'link-12');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">)</tt> </tt>
</div><a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> </tt>
<a name="NT.__setattr__"></a><div id="NT.__setattr__-def"><a name="L495"></a><tt class="py-lineno">495</tt> <a class="py-toggle" href="#" id="NT.__setattr__-toggle" onclick="return toggle('NT.__setattr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.NT-class.html#__setattr__">__setattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NT.__setattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NT.__setattr__-expanded"><a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-86" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-86', 'Node', 'link-6');">Node</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-87', 'addChild', 'link-18');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
+</div><div id="NT.__setattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NT.__setattr__-expanded"><a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt id="link-70" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-70', 'Node', 'link-6');">Node</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-71', 'addChild', 'link-12');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt><tt class="py-op">=</tt><tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-88', 'addChild', 'link-18');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">val</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">node</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="nbxmpp.simplexml.Node.addChild" class="py-name" href="#" onclick="return doclink('link-72', 'addChild', 'link-12');">addChild</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">val</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"> </tt>
<a name="NodeBuilder"></a><div id="NodeBuilder-def"><a name="L501"></a><tt class="py-lineno">501</tt> <a class="py-toggle" href="#" id="NodeBuilder-toggle" onclick="return toggle('NodeBuilder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.simplexml.NodeBuilder-class.html">NodeBuilder</a><tt class="py-op">:</tt> </tt>
</div><div id="NodeBuilder-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="NodeBuilder-expanded"><a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -661,7 +645,7 @@ nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onc
<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"><tt class="py-docstring"> about it as of "node upgrade". "data" (if provided) feeded to parser</tt> </tt>
<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"><tt class="py-docstring"> immidiatedly after instance init.</tt> </tt>
<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> <tt id="link-89" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> <tt id="link-73" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -672,12 +656,12 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-89', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Preparing to handle incoming XML stream."</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-73', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Preparing to handle incoming XML stream."</tt><tt class="py-op">)</tt> </tt>
<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt class="py-name">xml</tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt><tt class="py-op">.</tt><tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">ParserCreate</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.starttag()=nbxmpp.simplexml.NodeBuilder-class.html#starttag"><a title="nbxmpp.simplexml.NodeBuilder.starttag" class="py-name" href="#" onclick="return doclink('link-90', 'starttag', 'link-90');">starttag</a></tt> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.endtag()=nbxmpp.simplexml.NodeBuilder-class.html#endtag"><a title="nbxmpp.simplexml.NodeBuilder.endtag" class="py-name" href="#" onclick="return doclink('link-91', 'endtag', 'link-91');">endtag</a></tt> </tt>
-<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">StartNamespaceDeclHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.handle_namespace_start()=nbxmpp.simplexml.NodeBuilder-class.html#handle_namespace_start"><a title="nbxmpp.simplexml.NodeBuilder.handle_namespace_start" class="py-name" href="#" onclick="return doclink('link-92', 'handle_namespace_start', 'link-92');">handle_namespace_start</a></tt> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">CharacterDataHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.handle_cdata()=nbxmpp.simplexml.NodeBuilder-class.html#handle_cdata"><a title="nbxmpp.simplexml.NodeBuilder.handle_cdata" class="py-name" href="#" onclick="return doclink('link-93', 'handle_cdata', 'link-93');">handle_cdata</a></tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.starttag()=nbxmpp.simplexml.NodeBuilder-class.html#starttag"><a title="nbxmpp.simplexml.NodeBuilder.starttag" class="py-name" href="#" onclick="return doclink('link-74', 'starttag', 'link-74');">starttag</a></tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.endtag()=nbxmpp.simplexml.NodeBuilder-class.html#endtag"><a title="nbxmpp.simplexml.NodeBuilder.endtag" class="py-name" href="#" onclick="return doclink('link-75', 'endtag', 'link-75');">endtag</a></tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">StartNamespaceDeclHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.handle_namespace_start()=nbxmpp.simplexml.NodeBuilder-class.html#handle_namespace_start"><a title="nbxmpp.simplexml.NodeBuilder.handle_namespace_start" class="py-name" href="#" onclick="return doclink('link-76', 'handle_namespace_start', 'link-76');">handle_namespace_start</a></tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">CharacterDataHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.handle_cdata()=nbxmpp.simplexml.NodeBuilder-class.html#handle_cdata"><a title="nbxmpp.simplexml.NodeBuilder.handle_cdata" class="py-name" href="#" onclick="return doclink('link-77', 'handle_cdata', 'link-77');">handle_cdata</a></tt> </tt>
<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">buffer_text</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">Parse</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">Parse</tt> </tt>
<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"> </tt>
@@ -705,7 +689,7 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
</div><div id="NodeBuilder.destroy-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NodeBuilder.destroy-expanded"><a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"><tt class="py-docstring"> Method used to allow class instance to be garbage-collected</tt> </tt>
<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.check_data_buffer()=nbxmpp.simplexml.NodeBuilder-class.html#check_data_buffer"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-94', 'check_data_buffer', 'link-94');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.check_data_buffer()=nbxmpp.simplexml.NodeBuilder-class.html#check_data_buffer"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-78', 'check_data_buffer', 'link-78');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">CharacterDataHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
@@ -715,9 +699,9 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
</div><div id="NodeBuilder.starttag-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NodeBuilder.starttag-expanded"><a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"><tt class="py-docstring"> XML Parser callback. Used internally</tt> </tt>
<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-95', 'check_data_buffer', 'link-94');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder._inc_depth()=nbxmpp.simplexml.NodeBuilder-class.html#_inc_depth"><a title="nbxmpp.simplexml.NodeBuilder._inc_depth" class="py-name" href="#" onclick="return doclink('link-96', '_inc_depth', 'link-96');">_inc_depth</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt id="link-97" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-79', 'check_data_buffer', 'link-78');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder._inc_depth()=nbxmpp.simplexml.NodeBuilder-class.html#_inc_depth"><a title="nbxmpp.simplexml.NodeBuilder._inc_depth" class="py-name" href="#" onclick="return doclink('link-80', '_inc_depth', 'link-80');">_inc_depth</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt id="link-81" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -728,12 +712,12 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-97', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"STARTTAG.. DEPTH -&gt; %i , tag -&gt; %s, attrs -&gt; %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__depth</tt><tt class="py-op">,</tt> <tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-op">`</tt><tt class="py-name">attrs</tt><tt class="py-op">`</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-81', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"STARTTAG.. DEPTH -&gt; %i , tag -&gt; %s, attrs -&gt; %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__depth</tt><tt class="py-op">,</tt> <tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-op">`</tt><tt class="py-name">attrs</tt><tt class="py-op">`</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__depth</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dispatch_depth</tt><tt class="py-op">:</tt> </tt>
<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt> <tt class="py-op">:</tt> </tt>
-<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt> <tt class="py-op">=</tt> <tt id="link-98" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-98', 'Node', 'link-6');">Node</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">=</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">nsp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_document_nsp</tt><tt class="py-op">,</tt> <tt class="py-name">node_built</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt> <tt class="py-op">=</tt> <tt id="link-82" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-82', 'Node', 'link-6');">Node</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">=</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">nsp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_document_nsp</tt><tt class="py-op">,</tt> <tt class="py-name">node_built</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
<a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> <tt id="link-99" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-99', 'Node', 'link-6');">Node</a></tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+<a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> <tt id="link-83" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-83', 'Node', 'link-6');">Node</a></tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -775,16 +759,15 @@ nbxmpp.tls_nb.SSLWrapper.__init__
nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
-nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-100', '__init__', 'link-81');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt><tt class="py-op">,</tt> <tt class="py-name">tag</tt><tt class="py-op">=</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">nsp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_document_nsp</tt><tt class="py-op">,</tt> <tt class="py-name">node_built</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-84', '__init__', 'link-65');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt><tt class="py-op">,</tt> <tt class="py-name">tag</tt><tt class="py-op">=</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">nsp</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_document_nsp</tt><tt class="py-op">,</tt> <tt class="py-name">node_built</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
<a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ptr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt> </tt>
<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__depth</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dispatch_depth</tt><tt class="py-op">:</tt> </tt>
-<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ptr</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-101" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-101', 'Node', 'link-6');">Node</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">=</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">parent</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ptr</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">node_built</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ptr</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-85" class="py-name"><a title="nbxmpp.simplexml.Node" class="py-name" href="#" onclick="return doclink('link-85', 'Node', 'link-6');">Node</a></tt><tt class="py-op">(</tt><tt class="py-name">tag</tt><tt class="py-op">=</tt><tt class="py-name">tag</tt><tt class="py-op">,</tt> <tt class="py-name">parent</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ptr</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">=</tt><tt class="py-name">attrs</tt><tt class="py-op">,</tt> <tt class="py-name">node_built</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ptr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ptr</tt><tt class="py-op">.</tt><tt class="py-name">kids</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__depth</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
<a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_document_attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_document_nsp</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"> <tt class="py-name">nsp</tt><tt class="py-op">,</tt> <tt id="link-102" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-102', 'name', 'link-9');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-name">tag</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"> <tt class="py-name">nsp</tt><tt class="py-op">,</tt> <tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">''</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-name">tag</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
<a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">attr</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrs</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">attr</tt> <tt class="py-op">==</tt> <tt class="py-string">'xmlns'</tt><tt class="py-op">:</tt> </tt>
<a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_document_nsp</tt><tt class="py-op">[</tt><tt class="py-string">u''</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt>
@@ -792,10 +775,9 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-102
<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_document_nsp</tt><tt class="py-op">[</tt><tt class="py-name">attr</tt><tt class="py-op">[</tt><tt class="py-number">6</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt>
<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_document_attrs</tt><tt class="py-op">[</tt><tt class="py-name">attr</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">val</tt> </tt>
-<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"> <tt class="py-name">ns</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_document_nsp</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-103', 'get', 'link-20');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">nsp</tt><tt class="py-op">,</tt> <tt class="py-string">'http://www.gajim.org/xmlns/undeclared-root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"> <tt class="py-name">ns</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_document_nsp</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-86', 'get', 'link-14');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">nsp</tt><tt class="py-op">,</tt> <tt class="py-string">'http://www.gajim.org/xmlns/undeclared-root'</tt><tt class="py-op">)</tt> </tt>
<a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.stream_header_received()=nbxmpp.simplexml.NodeBuilder-class.html#stream_header_received"><a title="nbxmpp.simplexml.NodeBuilder.stream_header_received" class="py-name" href="#" onclick="return doclink('link-104', 'stream_header_received', 'link-104');">stream_header_received</a></tt><tt class="py-op">(</tt><tt class="py-name">ns</tt><tt class="py-op">,</tt> <tt id="link-105" class="py-name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-105', 'name', 'link-9');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
+<a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.stream_header_received()=nbxmpp.simplexml.NodeBuilder-class.html#stream_header_received"><a title="nbxmpp.simplexml.NodeBuilder.stream_header_received" class="py-name" href="#" onclick="return doclink('link-87', 'stream_header_received', 'link-87');">stream_header_received</a></tt><tt class="py-op">(</tt><tt class="py-name">ns</tt><tt class="py-op">,</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_document_attrs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
@@ -807,7 +789,7 @@ nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-105
</div><div id="NodeBuilder.endtag-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NodeBuilder.endtag-expanded"><a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"><tt class="py-docstring"> XML Parser callback. Used internally</tt> </tt>
<a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"> <tt id="link-106" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"> <tt id="link-88" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -818,24 +800,24 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-106', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"DEPTH -&gt; %i , tag -&gt; %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__depth</tt><tt class="py-op">,</tt> <tt class="py-name">tag</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-107', 'check_data_buffer', 'link-94');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-88', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"DEPTH -&gt; %i , tag -&gt; %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__depth</tt><tt class="py-op">,</tt> <tt class="py-name">tag</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-89', 'check_data_buffer', 'link-78');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__depth</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dispatch_depth</tt><tt class="py-op">:</tt> </tt>
-<a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-108', 'getName', 'link-48');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'error'</tt><tt class="py-op">:</tt> </tt>
-<a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"> <tt class="py-name">children</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name" targets="Method nbxmpp.simplexml.Node.getChildren()=nbxmpp.simplexml.Node-class.html#getChildren"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-109', 'getChildren', 'link-109');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-90', 'getName', 'link-37');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'error'</tt><tt class="py-op">:</tt> </tt>
+<a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"> <tt class="py-name">children</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name" targets="Method nbxmpp.simplexml.Node.getChildren()=nbxmpp.simplexml.Node-class.html#getChildren"><a title="nbxmpp.simplexml.Node.getChildren" class="py-name" href="#" onclick="return doclink('link-91', 'getChildren', 'link-91');">getChildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">children</tt><tt class="py-op">:</tt> </tt>
-<a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">streamError</tt> <tt class="py-op">=</tt> <tt class="py-name">children</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
-nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-110', 'getName', 'link-48');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">streamError</tt> <tt class="py-op">=</tt> <tt class="py-name">children</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-92', 'getName', 'link-37');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">streamError</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-111', 'getData', 'link-46');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name" targets="Method nbxmpp.dispatcher_nb.BOSHDispatcher.dispatch()=nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#dispatch,Method nbxmpp.dispatcher_nb.XMPPDispatcher.dispatch()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#dispatch,Method nbxmpp.simplexml.NodeBuilder.dispatch()=nbxmpp.simplexml.NodeBuilder-class.html#dispatch"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.dispatch
+<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">streamError</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="nbxmpp.simplexml.Node.getData" class="py-name" href="#" onclick="return doclink('link-93', 'getData', 'link-35');">getData</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name" targets="Method nbxmpp.dispatcher_nb.BOSHDispatcher.dispatch()=nbxmpp.dispatcher_nb.BOSHDispatcher-class.html#dispatch,Method nbxmpp.dispatcher_nb.XMPPDispatcher.dispatch()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#dispatch,Method nbxmpp.simplexml.NodeBuilder.dispatch()=nbxmpp.simplexml.NodeBuilder-class.html#dispatch"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.dispatch
nbxmpp.dispatcher_nb.XMPPDispatcher.dispatch
-nbxmpp.simplexml.NodeBuilder.dispatch" class="py-name" href="#" onclick="return doclink('link-112', 'dispatch', 'link-112');">dispatch</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.simplexml.NodeBuilder.dispatch" class="py-name" href="#" onclick="return doclink('link-94', 'dispatch', 'link-94');">dispatch</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt><tt class="py-op">)</tt> </tt>
<a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__depth</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dispatch_depth</tt><tt class="py-op">:</tt> </tt>
<a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ptr</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ptr</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> </tt>
<a name="L616"></a><tt class="py-lineno">616</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"> <tt id="link-113" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"> <tt id="link-95" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -846,10 +828,10 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-113', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"Got higher than dispatch level. Stream terminated?"</tt><tt class="py-op">)</tt> </tt>
-<a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder._dec_depth()=nbxmpp.simplexml.NodeBuilder-class.html#_dec_depth"><a title="nbxmpp.simplexml.NodeBuilder._dec_depth" class="py-name" href="#" onclick="return doclink('link-114', '_dec_depth', 'link-114');">_dec_depth</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-95', 'log', 'link-0');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"Got higher than dispatch level. Stream terminated?"</tt><tt class="py-op">)</tt> </tt>
+<a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder._dec_depth()=nbxmpp.simplexml.NodeBuilder-class.html#_dec_depth"><a title="nbxmpp.simplexml.NodeBuilder._dec_depth" class="py-name" href="#" onclick="return doclink('link-96', '_dec_depth', 'link-96');">_dec_depth</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">last_is_data</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__depth</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.stream_footer_received()=nbxmpp.simplexml.NodeBuilder-class.html#stream_footer_received"><a title="nbxmpp.simplexml.NodeBuilder.stream_footer_received" class="py-name" href="#" onclick="return doclink('link-115', 'stream_footer_received', 'link-115');">stream_footer_received</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__depth</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.stream_footer_received()=nbxmpp.simplexml.NodeBuilder-class.html#stream_footer_received"><a title="nbxmpp.simplexml.NodeBuilder.stream_footer_received" class="py-name" href="#" onclick="return doclink('link-97', 'stream_footer_received', 'link-97');">stream_footer_received</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L621"></a><tt class="py-lineno">621</tt> <tt class="py-line"> </tt>
<a name="NodeBuilder.handle_cdata"></a><div id="NodeBuilder.handle_cdata-def"><a name="L622"></a><tt class="py-lineno">622</tt> <a class="py-toggle" href="#" id="NodeBuilder.handle_cdata-toggle" onclick="return toggle('NodeBuilder.handle_cdata');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.NodeBuilder-class.html#handle_cdata">handle_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NodeBuilder.handle_cdata-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NodeBuilder.handle_cdata-expanded"><a name="L623"></a><tt class="py-lineno">623</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">last_is_data</tt><tt class="py-op">:</tt> </tt>
@@ -863,13 +845,13 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
</div><div id="NodeBuilder.handle_namespace_start-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NodeBuilder.handle_namespace_start-expanded"><a name="L631"></a><tt class="py-lineno">631</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L632"></a><tt class="py-lineno">632</tt> <tt class="py-line"><tt class="py-docstring"> XML Parser callback. Used internally</tt> </tt>
<a name="L633"></a><tt class="py-lineno">633</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L634"></a><tt class="py-lineno">634</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-116', 'check_data_buffer', 'link-94');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L634"></a><tt class="py-lineno">634</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-98', 'check_data_buffer', 'link-78');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L635"></a><tt class="py-lineno">635</tt> <tt class="py-line"> </tt>
<a name="NodeBuilder.getDom"></a><div id="NodeBuilder.getDom-def"><a name="L636"></a><tt class="py-lineno">636</tt> <a class="py-toggle" href="#" id="NodeBuilder.getDom-toggle" onclick="return toggle('NodeBuilder.getDom');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.NodeBuilder-class.html#getDom">getDom</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NodeBuilder.getDom-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NodeBuilder.getDom-expanded"><a name="L637"></a><tt class="py-lineno">637</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L638"></a><tt class="py-lineno">638</tt> <tt class="py-line"><tt class="py-docstring"> Return just built Node</tt> </tt>
<a name="L639"></a><tt class="py-lineno">639</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L640"></a><tt class="py-lineno">640</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-117', 'check_data_buffer', 'link-94');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L640"></a><tt class="py-lineno">640</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-99', 'check_data_buffer', 'link-78');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L641"></a><tt class="py-lineno">641</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mini_dom</tt> </tt>
</div><a name="L642"></a><tt class="py-lineno">642</tt> <tt class="py-line"> </tt>
<a name="NodeBuilder.dispatch"></a><div id="NodeBuilder.dispatch-def"><a name="L643"></a><tt class="py-lineno">643</tt> <a class="py-toggle" href="#" id="NodeBuilder.dispatch-toggle" onclick="return toggle('NodeBuilder.dispatch');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.NodeBuilder-class.html#dispatch">dispatch</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -884,13 +866,13 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
</div><div id="NodeBuilder.stream_header_received-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NodeBuilder.stream_header_received-expanded"><a name="L652"></a><tt class="py-lineno">652</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L653"></a><tt class="py-lineno">653</tt> <tt class="py-line"><tt class="py-docstring"> Method called when stream just opened</tt> </tt>
<a name="L654"></a><tt class="py-lineno">654</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L655"></a><tt class="py-lineno">655</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-118', 'check_data_buffer', 'link-94');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L655"></a><tt class="py-lineno">655</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-100', 'check_data_buffer', 'link-78');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L656"></a><tt class="py-lineno">656</tt> <tt class="py-line"> </tt>
<a name="NodeBuilder.stream_footer_received"></a><div id="NodeBuilder.stream_footer_received-def"><a name="L657"></a><tt class="py-lineno">657</tt> <a class="py-toggle" href="#" id="NodeBuilder.stream_footer_received-toggle" onclick="return toggle('NodeBuilder.stream_footer_received');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.NodeBuilder-class.html#stream_footer_received">stream_footer_received</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NodeBuilder.stream_footer_received-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NodeBuilder.stream_footer_received-expanded"><a name="L658"></a><tt class="py-lineno">658</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L659"></a><tt class="py-lineno">659</tt> <tt class="py-line"><tt class="py-docstring"> Method called when stream just closed</tt> </tt>
<a name="L660"></a><tt class="py-lineno">660</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L661"></a><tt class="py-lineno">661</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-119', 'check_data_buffer', 'link-94');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L661"></a><tt class="py-lineno">661</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.check_data_buffer" class="py-name" href="#" onclick="return doclink('link-101', 'check_data_buffer', 'link-78');">check_data_buffer</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L662"></a><tt class="py-lineno">662</tt> <tt class="py-line"> </tt>
<a name="NodeBuilder.has_received_endtag"></a><div id="NodeBuilder.has_received_endtag-def"><a name="L663"></a><tt class="py-lineno">663</tt> <a class="py-toggle" href="#" id="NodeBuilder.has_received_endtag-toggle" onclick="return toggle('NodeBuilder.has_received_endtag');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml.NodeBuilder-class.html#has_received_endtag">has_received_endtag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">level</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NodeBuilder.has_received_endtag-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NodeBuilder.has_received_endtag-expanded"><a name="L664"></a><tt class="py-lineno">664</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -913,7 +895,7 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L681"></a><tt class="py-lineno">681</tt> <tt class="py-line"><tt class="py-docstring"> configuration file. Raises xml.parser.expat.parsererror if provided string</tt> </tt>
<a name="L682"></a><tt class="py-lineno">682</tt> <tt class="py-line"><tt class="py-docstring"> is not well-formed XML</tt> </tt>
<a name="L683"></a><tt class="py-lineno">683</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L684"></a><tt class="py-lineno">684</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-120" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder" class="py-name" href="#" onclick="return doclink('link-120', 'NodeBuilder', 'link-8');">NodeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-name">xml</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.getDom()=nbxmpp.simplexml.NodeBuilder-class.html#getDom"><a title="nbxmpp.simplexml.NodeBuilder.getDom" class="py-name" href="#" onclick="return doclink('link-121', 'getDom', 'link-121');">getDom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L684"></a><tt class="py-lineno">684</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-102" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder" class="py-name" href="#" onclick="return doclink('link-102', 'NodeBuilder', 'link-8');">NodeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-name">xml</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name" targets="Method nbxmpp.simplexml.NodeBuilder.getDom()=nbxmpp.simplexml.NodeBuilder-class.html#getDom"><a title="nbxmpp.simplexml.NodeBuilder.getDom" class="py-name" href="#" onclick="return doclink('link-103', 'getDom', 'link-103');">getDom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L685"></a><tt class="py-lineno">685</tt> <tt class="py-line"> </tt>
<a name="BadXML2Node"></a><div id="BadXML2Node-def"><a name="L686"></a><tt class="py-lineno">686</tt> <a class="py-toggle" href="#" id="BadXML2Node-toggle" onclick="return toggle('BadXML2Node');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.simplexml-module.html#BadXML2Node">BadXML2Node</a><tt class="py-op">(</tt><tt class="py-param">xml</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BadXML2Node-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BadXML2Node-expanded"><a name="L687"></a><tt class="py-lineno">687</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
@@ -922,7 +904,7 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L690"></a><tt class="py-lineno">690</tt> <tt class="py-line"><tt class="py-docstring"> xml.parser.expat.parsererror on misplaced tags though. F.e. "&lt;b&gt;some text</tt> </tt>
<a name="L691"></a><tt class="py-lineno">691</tt> <tt class="py-line"><tt class="py-docstring"> &lt;br&gt;some more text&lt;/b&gt;" will not work</tt> </tt>
<a name="L692"></a><tt class="py-lineno">692</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L693"></a><tt class="py-lineno">693</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-122" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder" class="py-name" href="#" onclick="return doclink('link-122', 'NodeBuilder', 'link-8');">NodeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-name">xml</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.getDom" class="py-name" href="#" onclick="return doclink('link-123', 'getDom', 'link-121');">getDom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L693"></a><tt class="py-lineno">693</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-104" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder" class="py-name" href="#" onclick="return doclink('link-104', 'NodeBuilder', 'link-8');">NodeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-name">xml</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="nbxmpp.simplexml.NodeBuilder.getDom" class="py-name" href="#" onclick="return doclink('link-105', 'getDom', 'link-103');">getDom</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L694"></a><tt class="py-lineno">694</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -961,7 +943,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.simplexml.NT-class.html b/doc/apidocs/nbxmpp.simplexml.NT-class.html
index d5b437d..531f4c9 100644
--- a/doc/apidocs/nbxmpp.simplexml.NT-class.html
+++ b/doc/apidocs/nbxmpp.simplexml.NT-class.html
@@ -236,7 +236,7 @@ Auxiliary class used to quick create node's child nodes
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.simplexml.Node-class.html b/doc/apidocs/nbxmpp.simplexml.Node-class.html
index 1a1e087..f5c6753 100644
--- a/doc/apidocs/nbxmpp.simplexml.Node-class.html
+++ b/doc/apidocs/nbxmpp.simplexml.Node-class.html
@@ -64,33 +64,33 @@
<h1 class="epydoc">Class Node</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.simplexml-pysrc.html#Node">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_s_2" name="uml_class_diagram_for_nbxmpp_s_2">
-<area shape="rect" id="node1" href="nbxmpp.protocol.Acks-class.html" title="Acknowledgement elements for Stream Management" alt="" coords="5,358,128,397"/>
-<area shape="rect" id="node2" href="nbxmpp.protocol.DataField-class.html" title="This class is used in the DataForm class to describe the single data item" alt="" coords="157,358,309,397"/>
-<area shape="rect" id="node3" href="nbxmpp.protocol.ErrorNode-class.html" title="XMPP&#45;style error element" alt="" coords="339,358,496,397"/>
-<area shape="rect" id="node4" href="nbxmpp.protocol.DataForm-class.html" title="Used for manipulating dataforms in XMPP" alt="" coords="525,358,683,397"/>
-<area shape="rect" id="node5" href="nbxmpp.protocol.BOSHBody-class.html" title="&lt;body&gt; tag that wraps usual XMPP stanzas in XMPP over BOSH" alt="" coords="712,358,875,397"/>
-<area shape="rect" id="node6" href="nbxmpp.protocol.Protocol-class.html" title="A &quot;stanza&quot; object class. Contains methods that are common for presences, iqs and messages" alt="" coords="904,358,1048,397"/>
-<area shape="rect" id="node7" href="nbxmpp.protocol.Iq-class.html" title="XMPP Iq object &#45; get/set dialog mechanism" alt="" coords="677,417,781,455"/>
-<area shape="rect" id="node8" href="nbxmpp.protocol.Message-class.html" title="XMPP Message stanza &#45; &quot;push&quot; mechanism" alt="" coords="811,417,960,455"/>
-<area shape="rect" id="node10" href="nbxmpp.protocol.Presence-class.html" title="nbxmpp.protocol.Presence" alt="" coords="989,417,1141,455"/>
-<area shape="rect" id="node11" href="nbxmpp.protocol.Error-class.html" title="Used to quickly transform received stanza into error reply" alt="" coords="1171,417,1293,455"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#FORCE_NODE_RECREATION" title="nbxmpp.simplexml.Node.FORCE_NODE_RECREATION" alt="" coords="265,31,943,49"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#__init__" title="Takes &quot;tag&quot; argument as the name of node (prepended by namespace, if needed and separated from it by a space), attrs dictionary as the set of arguments, payload list as the set of textual strings and child nodes that this node carries within itself and &quot;parent&quot; argument that is another node that this one will be the child of. Also the __init__ can be provided with &quot;node&quot; argument that is either a text string containing exactly one node or another Node instance to begin with. If both &quot;node&quot; and other arguments is provided then the node initially created as replica of &quot;node&quot; provided and then modified to be compliant with other arguments." alt="" coords="265,52,943,71"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#lookup_nsp" title="nbxmpp.simplexml.Node.lookup_nsp" alt="" coords="265,71,943,89"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#__str__" title="Method used to dump node into textual representation. If &quot;fancy&quot; argument is set to True produces indented output for readability" alt="" coords="265,89,943,108"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#addChild" title="If &quot;node&quot; argument is provided, adds it as child node. Else creates new node from the other arguments&#39; values and adds it as well" alt="" coords="265,108,943,127"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#addData" title="Add some CDATA to node" alt="" coords="265,127,943,145"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#clearData" title="Remove all CDATA from the node" alt="" coords="265,145,943,164"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#delAttr" title="Delete an attribute &quot;key&quot;" alt="" coords="265,164,943,183"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#delChild" title="Delete the &quot;node&quot; from the node&#39;s childs list, if &quot;node&quot; is an instance. Else delete the first node that have specified name and (optionally) attributes" alt="" coords="265,183,943,201"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#getAttrs" title="Return all node&#39;s attributes as dictionary" alt="" coords="265,201,943,220"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#getAttr" title="Return value of specified attribute" alt="" coords="265,220,943,239"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#getChildren" title="Return all node&#39;s child nodes as list" alt="" coords="265,239,943,257"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#getData" title="Return all node CDATA as string (concatenated)" alt="" coords="265,257,943,276"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#getName" title="Return the name of node" alt="" coords="265,276,943,295"/>
-<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#__getattr__" title="Reduce memory usage caused by T/NT classes &#45; use memory only when needed" alt="" coords="265,313,943,332"/>
-<area shape="rect" id="node9" href="nbxmpp.simplexml.Node-class.html" title="Node class describes syntax of separate XML Node. It have a constructor that permits node creation from set of &quot;namespace name&quot;, attributes and payload of text strings and other nodes. It does not natively support building node from text string and uses NodeBuilder class for that purpose. After creation node can be mangled in many ways so it can be completely changed. Also node can be serialised into string in one of two modes: default (where the textual representation of node describes it exactly) and &quot;fancy&quot; &#45; with whitespace added to make indentation and thus make result more readable by human." alt="" coords="253,6,955,338"/>
-<area shape="rect" id="node12" href="nbxmpp.protocol.Hashes-class.html" title="Hash elements for various XEPs as defined in XEP&#45;300" alt="" coords="1077,358,1219,397"/>
+<area shape="rect" id="node1" href="nbxmpp.protocol.Acks-class.html" title="Acknowledgement elements for Stream Management" alt="" coords="117,358,240,397"/>
+<area shape="rect" id="node2" href="nbxmpp.protocol.Protocol-class.html" title="A &quot;stanza&quot; object class. Contains methods that are common for presences, iqs and messages" alt="" coords="269,358,413,397"/>
+<area shape="rect" id="node5" href="nbxmpp.protocol.Presence-class.html" title="nbxmpp.protocol.Presence" alt="" coords="5,417,155,455"/>
+<area shape="rect" id="node10" href="nbxmpp.protocol.Message-class.html" title="XMPP Message stanza &#45; &quot;push&quot; mechanism" alt="" coords="184,417,333,455"/>
+<area shape="rect" id="node11" href="nbxmpp.protocol.Error-class.html" title="Used to quickly transform received stanza into error reply" alt="" coords="363,417,485,455"/>
+<area shape="rect" id="node12" href="nbxmpp.protocol.Iq-class.html" title="XMPP Iq object &#45; get/set dialog mechanism" alt="" coords="515,417,619,455"/>
+<area shape="rect" id="node3" href="nbxmpp.protocol.ErrorNode-class.html" title="XMPP&#45;style error element" alt="" coords="443,358,600,397"/>
+<area shape="rect" id="node4" href="nbxmpp.protocol.Hashes-class.html" title="Hash elements for various XEPs as defined in XEP&#45;300" alt="" coords="629,358,768,397"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#FORCE_NODE_RECREATION" title="nbxmpp.simplexml.Node.FORCE_NODE_RECREATION" alt="" coords="360,31,1037,49"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#__init__" title="Takes &quot;tag&quot; argument as the name of node (prepended by namespace, if needed and separated from it by a space), attrs dictionary as the set of arguments, payload list as the set of textual strings and child nodes that this node carries within itself and &quot;parent&quot; argument that is another node that this one will be the child of. Also the __init__ can be provided with &quot;node&quot; argument that is either a text string containing exactly one node or another Node instance to begin with. If both &quot;node&quot; and other arguments is provided then the node initially created as replica of &quot;node&quot; provided and then modified to be compliant with other arguments." alt="" coords="360,52,1037,71"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#lookup_nsp" title="nbxmpp.simplexml.Node.lookup_nsp" alt="" coords="360,71,1037,89"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#__str__" title="Method used to dump node into textual representation. If &quot;fancy&quot; argument is set to True produces indented output for readability" alt="" coords="360,89,1037,108"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#addChild" title="If &quot;node&quot; argument is provided, adds it as child node. Else creates new node from the other arguments&#39; values and adds it as well" alt="" coords="360,108,1037,127"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#addData" title="Add some CDATA to node" alt="" coords="360,127,1037,145"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#clearData" title="Remove all CDATA from the node" alt="" coords="360,145,1037,164"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#delAttr" title="Delete an attribute &quot;key&quot;" alt="" coords="360,164,1037,183"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#delChild" title="Delete the &quot;node&quot; from the node&#39;s childs list, if &quot;node&quot; is an instance. Else delete the first node that have specified name and (optionally) attributes" alt="" coords="360,183,1037,201"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#getAttrs" title="Return all node&#39;s attributes as dictionary" alt="" coords="360,201,1037,220"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#getAttr" title="Return value of specified attribute" alt="" coords="360,220,1037,239"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#getChildren" title="Return all node&#39;s child nodes as list" alt="" coords="360,239,1037,257"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#getData" title="Return all node CDATA as string (concatenated)" alt="" coords="360,257,1037,276"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#getName" title="Return the name of node" alt="" coords="360,276,1037,295"/>
+<area shape="rect" id="node209" href="nbxmpp.simplexml.Node-class.html#__getattr__" title="Reduce memory usage caused by T/NT classes &#45; use memory only when needed" alt="" coords="360,313,1037,332"/>
+<area shape="rect" id="node6" href="nbxmpp.simplexml.Node-class.html" title="Node class describes syntax of separate XML Node. It have a constructor that permits node creation from set of &quot;namespace name&quot;, attributes and payload of text strings and other nodes. It does not natively support building node from text string and uses NodeBuilder class for that purpose. After creation node can be mangled in many ways so it can be completely changed. Also node can be serialised into string in one of two modes: default (where the textual representation of node describes it exactly) and &quot;fancy&quot; &#45; with whitespace added to make indentation and thus make result more readable by human." alt="" coords="348,6,1049,338"/>
+<area shape="rect" id="node7" href="nbxmpp.protocol.DataField-class.html" title="This class is used in the DataForm class to describe the single data item" alt="" coords="797,358,949,397"/>
+<area shape="rect" id="node8" href="nbxmpp.protocol.DataForm-class.html" title="Used for manipulating dataforms in XMPP" alt="" coords="979,358,1133,397"/>
+<area shape="rect" id="node9" href="nbxmpp.protocol.BOSHBody-class.html" title="&lt;body&gt; tag that wraps usual XMPP stanzas in XMPP over BOSH" alt="" coords="1163,358,1325,397"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_s_2.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_s_2" ismap="ismap" class="graph-without-title" />
</center>
@@ -1755,7 +1755,7 @@ attribute &quot;attr&quot; to value &quot;val&quot;
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.simplexml.NodeBuilder-class.html b/doc/apidocs/nbxmpp.simplexml.NodeBuilder-class.html
index 7db50c2..b14bdc8 100644
--- a/doc/apidocs/nbxmpp.simplexml.NodeBuilder-class.html
+++ b/doc/apidocs/nbxmpp.simplexml.NodeBuilder-class.html
@@ -678,7 +678,7 @@ XML stanzas to program events
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.simplexml.T-class.html b/doc/apidocs/nbxmpp.simplexml.T-class.html
index 83db72d..6114d9b 100644
--- a/doc/apidocs/nbxmpp.simplexml.T-class.html
+++ b/doc/apidocs/nbxmpp.simplexml.T-class.html
@@ -297,7 +297,7 @@ Auxiliary class used to quick access to node's child nodes
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.smacks-module.html b/doc/apidocs/nbxmpp.smacks-module.html
index ecd4ed4..1bf38ed 100644
--- a/doc/apidocs/nbxmpp.smacks-module.html
+++ b/doc/apidocs/nbxmpp.smacks-module.html
@@ -211,7 +211,7 @@ logging.getLogger('nbxmpp.smacks')
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.smacks-pysrc.html b/doc/apidocs/nbxmpp.smacks-pysrc.html
index a13faab..a622b9e 100644
--- a/doc/apidocs/nbxmpp.smacks-pysrc.html
+++ b/doc/apidocs/nbxmpp.smacks-pysrc.html
@@ -99,59 +99,61 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resuming</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> <tt class="py-comment"># If SM is enabled</tt> </tt>
<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">location</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> </tt>
-<a name="Smacks.set_owner"></a><div id="Smacks.set_owner-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="Smacks.set_owner-toggle" onclick="return toggle('Smacks.set_owner');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#set_owner">set_owner</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">owner</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Smacks.set_owner-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.set_owner-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt> <tt class="py-op">=</tt> <tt class="py-name">owner</tt> </tt>
-<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> </tt>
-<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-comment"># Register handlers</tt> </tt>
-<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt class="py-name">owner</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Class nbxmpp.dispatcher_nb.Dispatcher=nbxmpp.dispatcher_nb.Dispatcher-class.html"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-5', 'Dispatcher', 'link-5');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterNamespace()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterNamespace"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterNamespace" class="py-name" href="#" onclick="return doclink('link-6', 'RegisterNamespace', 'link-6');">RegisterNamespace</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-7', 'NS_STREAM_MGMT', 'link-3');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> <tt class="py-name">owner</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-8', 'Dispatcher', 'link-5');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandler"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-9', 'RegisterHandler', 'link-9');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'enabled'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method nbxmpp.smacks.Smacks._neg_response()=nbxmpp.smacks.Smacks-class.html#_neg_response"><a title="nbxmpp.smacks.Smacks._neg_response" class="py-name" href="#" onclick="return doclink('link-10', '_neg_response', 'link-10');">_neg_response</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-11" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-11', 'NS_STREAM_MGMT', 'link-3');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-name">owner</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-12', 'Dispatcher', 'link-5');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-13', 'RegisterHandler', 'link-9');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'r'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method nbxmpp.smacks.Smacks.send_ack()=nbxmpp.smacks.Smacks-class.html#send_ack"><a title="nbxmpp.smacks.Smacks.send_ack" class="py-name" href="#" onclick="return doclink('link-14', 'send_ack', 'link-14');">send_ack</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-15" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-15', 'NS_STREAM_MGMT', 'link-3');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-name">owner</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-16', 'Dispatcher', 'link-5');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-17', 'RegisterHandler', 'link-9');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method nbxmpp.smacks.Smacks.check_ack()=nbxmpp.smacks.Smacks-class.html#check_ack"><a title="nbxmpp.smacks.Smacks.check_ack" class="py-name" href="#" onclick="return doclink('link-18', 'check_ack', 'link-18');">check_ack</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-19" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-19', 'NS_STREAM_MGMT', 'link-3');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-name">owner</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-20', 'Dispatcher', 'link-5');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-21', 'RegisterHandler', 'link-9');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'resumed'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="nbxmpp.smacks.Smacks.check_ack" class="py-name" href="#" onclick="return doclink('link-22', 'check_ack', 'link-18');">check_ack</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-23" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-23', 'NS_STREAM_MGMT', 'link-3');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-name">owner</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-24', 'Dispatcher', 'link-5');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-25', 'RegisterHandler', 'link-9');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'failed'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method nbxmpp.smacks.Smacks.error_handling()=nbxmpp.smacks.Smacks-class.html#error_handling"><a title="nbxmpp.smacks.Smacks.error_handling" class="py-name" href="#" onclick="return doclink('link-26', 'error_handling', 'link-26');">error_handling</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-27" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-27', 'NS_STREAM_MGMT', 'link-3');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> </tt>
-<a name="Smacks._neg_response"></a><div id="Smacks._neg_response-def"><a name="L45"></a><tt class="py-lineno"> 45</tt> <a class="py-toggle" href="#" id="Smacks._neg_response-toggle" onclick="return toggle('Smacks._neg_response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#_neg_response">_neg_response</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">disp</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Smacks._neg_response-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks._neg_response-expanded"><a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method nbxmpp.simplexml.Node.getAttr()=nbxmpp.simplexml.Node-class.html#getAttr"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-28', 'getAttr', 'link-28');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'resume'</tt><tt class="py-op">)</tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">r</tt> <tt class="py-op">==</tt> <tt class="py-string">'true'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">r</tt> <tt class="py-op">==</tt> <tt class="py-string">'True'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">r</tt> <tt class="py-op">==</tt> <tt class="py-string">'1'</tt><tt class="py-op">:</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumption</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-29', 'getAttr', 'link-28');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">)</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">failed_resume</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> <tt class="py-comment"># If last resuming attempt failed</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">supports_sm</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> <tt class="py-comment"># If server supports sm</tt> </tt>
+</div><a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> </tt>
+<a name="Smacks.set_owner"></a><div id="Smacks.set_owner-def"><a name="L31"></a><tt class="py-lineno"> 31</tt> <a class="py-toggle" href="#" id="Smacks.set_owner-toggle" onclick="return toggle('Smacks.set_owner');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#set_owner">set_owner</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">owner</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Smacks.set_owner-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.set_owner-expanded"><a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt> <tt class="py-op">=</tt> <tt class="py-name">owner</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt class="py-comment"># Register handlers</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> <tt class="py-name">owner</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Class nbxmpp.dispatcher_nb.Dispatcher=nbxmpp.dispatcher_nb.Dispatcher-class.html"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-5', 'Dispatcher', 'link-5');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterNamespace()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterNamespace"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterNamespace" class="py-name" href="#" onclick="return doclink('link-6', 'RegisterNamespace', 'link-6');">RegisterNamespace</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-7', 'NS_STREAM_MGMT', 'link-3');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt class="py-name">owner</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-8', 'Dispatcher', 'link-5');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#RegisterHandler"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-9', 'RegisterHandler', 'link-9');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'enabled'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method nbxmpp.smacks.Smacks._neg_response()=nbxmpp.smacks.Smacks-class.html#_neg_response"><a title="nbxmpp.smacks.Smacks._neg_response" class="py-name" href="#" onclick="return doclink('link-10', '_neg_response', 'link-10');">_neg_response</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-11" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-11', 'NS_STREAM_MGMT', 'link-3');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-name">owner</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-12', 'Dispatcher', 'link-5');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-13', 'RegisterHandler', 'link-9');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'r'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method nbxmpp.smacks.Smacks.send_ack()=nbxmpp.smacks.Smacks-class.html#send_ack"><a title="nbxmpp.smacks.Smacks.send_ack" class="py-name" href="#" onclick="return doclink('link-14', 'send_ack', 'link-14');">send_ack</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-15" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-15', 'NS_STREAM_MGMT', 'link-3');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-name">owner</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-16', 'Dispatcher', 'link-5');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-17', 'RegisterHandler', 'link-9');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method nbxmpp.smacks.Smacks.check_ack()=nbxmpp.smacks.Smacks-class.html#check_ack"><a title="nbxmpp.smacks.Smacks.check_ack" class="py-name" href="#" onclick="return doclink('link-18', 'check_ack', 'link-18');">check_ack</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-19" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-19', 'NS_STREAM_MGMT', 'link-3');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-name">owner</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-20', 'Dispatcher', 'link-5');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-21', 'RegisterHandler', 'link-9');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'resumed'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="nbxmpp.smacks.Smacks.check_ack" class="py-name" href="#" onclick="return doclink('link-22', 'check_ack', 'link-18');">check_ack</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-23" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-23', 'NS_STREAM_MGMT', 'link-3');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-name">owner</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher" class="py-name" href="#" onclick="return doclink('link-24', 'Dispatcher', 'link-5');">Dispatcher</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="nbxmpp.dispatcher_nb.XMPPDispatcher.RegisterHandler" class="py-name" href="#" onclick="return doclink('link-25', 'RegisterHandler', 'link-9');">RegisterHandler</a></tt><tt class="py-op">(</tt><tt class="py-string">'failed'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method nbxmpp.smacks.Smacks.error_handling()=nbxmpp.smacks.Smacks-class.html#error_handling"><a title="nbxmpp.smacks.Smacks.error_handling" class="py-name" href="#" onclick="return doclink('link-26', 'error_handling', 'link-26');">error_handling</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-name">xmlns</tt><tt class="py-op">=</tt><tt id="link-27" class="py-name"><a title="nbxmpp.protocol.NS_STREAM_MGMT" class="py-name" href="#" onclick="return doclink('link-27', 'NS_STREAM_MGMT', 'link-3');">NS_STREAM_MGMT</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> </tt>
+<a name="Smacks._neg_response"></a><div id="Smacks._neg_response-def"><a name="L46"></a><tt class="py-lineno"> 46</tt> <a class="py-toggle" href="#" id="Smacks._neg_response-toggle" onclick="return toggle('Smacks._neg_response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#_neg_response">_neg_response</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">disp</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Smacks._neg_response-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks._neg_response-expanded"><a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method nbxmpp.simplexml.Node.getAttr()=nbxmpp.simplexml.Node-class.html#getAttr"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-28', 'getAttr', 'link-28');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'resume'</tt><tt class="py-op">)</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">r</tt> <tt class="py-op">==</tt> <tt class="py-string">'true'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">r</tt> <tt class="py-op">==</tt> <tt class="py-string">'True'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">r</tt> <tt class="py-op">==</tt> <tt class="py-string">'1'</tt><tt class="py-op">:</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumption</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-29', 'getAttr', 'link-28');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'id'</tt><tt class="py-op">)</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">r</tt> <tt class="py-op">==</tt> <tt class="py-string">'false'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">r</tt> <tt class="py-op">==</tt> <tt class="py-string">'False'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">r</tt> <tt class="py-op">==</tt> <tt class="py-string">'0'</tt><tt class="py-op">:</tt> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method nbxmpp.smacks.Smacks.negociate()=nbxmpp.smacks.Smacks-class.html#negociate"><a title="nbxmpp.smacks.Smacks.negociate" class="py-name" href="#" onclick="return doclink('link-30', 'negociate', 'link-30');">negociate</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-31', 'getAttr', 'link-28');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'location'</tt><tt class="py-op">)</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">l</tt><tt class="py-op">:</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">location</tt> <tt class="py-op">=</tt> <tt class="py-name">l</tt> </tt>
-</div><a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> </tt>
-<a name="Smacks.negociate"></a><div id="Smacks.negociate-def"><a name="L58"></a><tt class="py-lineno"> 58</tt> <a class="py-toggle" href="#" id="Smacks.negociate-toggle" onclick="return toggle('Smacks.negociate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#negociate">negociate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resume</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Smacks.negociate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.negociate-expanded"><a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-comment"># Every time we attempt to negociate, we must erase all previous info</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-comment"># about any previous session</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_h</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_h</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt id="link-32" class="py-name"><a title="nbxmpp.protocol.Acks" class="py-name" href="#" onclick="return doclink('link-32', 'Acks', 'link-1');">Acks</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Method nbxmpp.protocol.Acks.buildEnable()=nbxmpp.protocol.Acks-class.html#buildEnable"><a title="nbxmpp.protocol.Acks.buildEnable" class="py-name" href="#" onclick="return doclink('link-33', 'buildEnable', 'link-33');">buildEnable</a></tt><tt class="py-op">(</tt><tt class="py-name">resume</tt><tt class="py-op">)</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.send()=nbxmpp.bosh.NonBlockingBOSH-class.html#send,Method nbxmpp.dispatcher_nb.XMPPDispatcher.send()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send,Method nbxmpp.tls_nb.PyOpenSSLWrapper.send()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#send,Method nbxmpp.tls_nb.SSLWrapper.send()=nbxmpp.tls_nb.SSLWrapper-class.html#send,Method nbxmpp.tls_nb.StdlibSSLWrapper.send()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#send,Method nbxmpp.transports_nb.NonBlockingTCP.send()=nbxmpp.transports_nb.NonBlockingTCP-class.html#send,Method nbxmpp.transports_nb.NonBlockingTransport.send()=nbxmpp.transports_nb.NonBlockingTransport-class.html#send"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-31', 'getAttr', 'link-28');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'location'</tt><tt class="py-op">)</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">l</tt><tt class="py-op">:</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">location</tt> <tt class="py-op">=</tt> <tt class="py-name">l</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">failed_resume</tt><tt class="py-op">:</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">con</tt><tt class="py-op">.</tt><tt class="py-name">_discover_server_at_connection</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">con</tt><tt class="py-op">.</tt><tt class="py-name">connection</tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">failed_resume</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> </tt>
+<a name="Smacks.negociate"></a><div id="Smacks.negociate-def"><a name="L60"></a><tt class="py-lineno"> 60</tt> <a class="py-toggle" href="#" id="Smacks.negociate-toggle" onclick="return toggle('Smacks.negociate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#negociate">negociate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resume</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Smacks.negociate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.negociate-expanded"><a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-comment"># Every time we attempt to negociate, we must erase all previous info</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-comment"># about any previous session</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_h</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_h</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt id="link-32" class="py-name"><a title="nbxmpp.protocol.Acks" class="py-name" href="#" onclick="return doclink('link-32', 'Acks', 'link-1');">Acks</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Method nbxmpp.protocol.Acks.buildEnable()=nbxmpp.protocol.Acks-class.html#buildEnable"><a title="nbxmpp.protocol.Acks.buildEnable" class="py-name" href="#" onclick="return doclink('link-33', 'buildEnable', 'link-33');">buildEnable</a></tt><tt class="py-op">(</tt><tt class="py-name">resume</tt><tt class="py-op">)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.send()=nbxmpp.bosh.NonBlockingBOSH-class.html#send,Method nbxmpp.dispatcher_nb.XMPPDispatcher.send()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send,Method nbxmpp.tls_nb.PyOpenSSLWrapper.send()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#send,Method nbxmpp.tls_nb.SSLWrapper.send()=nbxmpp.tls_nb.SSLWrapper-class.html#send,Method nbxmpp.tls_nb.StdlibSSLWrapper.send()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#send,Method nbxmpp.transports_nb.NonBlockingTCP.send()=nbxmpp.transports_nb.NonBlockingTCP-class.html#send,Method nbxmpp.transports_nb.NonBlockingTransport.send()=nbxmpp.transports_nb.NonBlockingTransport-class.html#send"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-34', 'send', 'link-34');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">now</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> </tt>
-<a name="Smacks.resume_request"></a><div id="Smacks.resume_request-def"><a name="L71"></a><tt class="py-lineno"> 71</tt> <a class="py-toggle" href="#" id="Smacks.resume_request-toggle" onclick="return toggle('Smacks.resume_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#resume_request">resume_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Smacks.resume_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.resume_request-expanded"><a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt><tt class="py-op">:</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resuming</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt id="link-35" class="py-name"><a title="nbxmpp.auth_nb.log
+</div><a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> </tt>
+<a name="Smacks.resume_request"></a><div id="Smacks.resume_request-def"><a name="L73"></a><tt class="py-lineno"> 73</tt> <a class="py-toggle" href="#" id="Smacks.resume_request-toggle" onclick="return toggle('Smacks.resume_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#resume_request">resume_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Smacks.resume_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.resume_request-expanded"><a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt><tt class="py-op">:</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resuming</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt id="link-35" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -163,50 +165,50 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-35', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Attempted to resume without a valid session id '</tt><tt class="py-op">)</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-name">resume</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="nbxmpp.protocol.Acks" class="py-name" href="#" onclick="return doclink('link-36', 'Acks', 'link-1');">Acks</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-name">resume</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method nbxmpp.protocol.Acks.buildResume()=nbxmpp.protocol.Acks-class.html#buildResume"><a title="nbxmpp.protocol.Acks.buildResume" class="py-name" href="#" onclick="return doclink('link-37', 'buildResume', 'link-37');">buildResume</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_h</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-name">resume</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="nbxmpp.protocol.Acks" class="py-name" href="#" onclick="return doclink('link-36', 'Acks', 'link-1');">Acks</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-name">resume</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method nbxmpp.protocol.Acks.buildResume()=nbxmpp.protocol.Acks-class.html#buildResume"><a title="nbxmpp.protocol.Acks.buildResume" class="py-name" href="#" onclick="return doclink('link-37', 'buildResume', 'link-37');">buildResume</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_h</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">session_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-38', 'send', 'link-34');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">resume</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> </tt>
-<a name="Smacks.send_ack"></a><div id="Smacks.send_ack-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="Smacks.send_ack-toggle" onclick="return toggle('Smacks.send_ack');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#send_ack">send_ack</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">disp</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Smacks.send_ack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.send_ack-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt id="link-39" class="py-name"><a title="nbxmpp.protocol.Acks" class="py-name" href="#" onclick="return doclink('link-39', 'Acks', 'link-1');">Acks</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-name">ack</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method nbxmpp.protocol.Acks.buildAnswer()=nbxmpp.protocol.Acks-class.html#buildAnswer"><a title="nbxmpp.protocol.Acks.buildAnswer" class="py-name" href="#" onclick="return doclink('link-40', 'buildAnswer', 'link-40');">buildAnswer</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_h</tt><tt class="py-op">)</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+</div><a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> </tt>
+<a name="Smacks.send_ack"></a><div id="Smacks.send_ack-def"><a name="L82"></a><tt class="py-lineno"> 82</tt> <a class="py-toggle" href="#" id="Smacks.send_ack-toggle" onclick="return toggle('Smacks.send_ack');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#send_ack">send_ack</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">disp</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Smacks.send_ack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.send_ack-expanded"><a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-name">ack</tt> <tt class="py-op">=</tt> <tt id="link-39" class="py-name"><a title="nbxmpp.protocol.Acks" class="py-name" href="#" onclick="return doclink('link-39', 'Acks', 'link-1');">Acks</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-name">ack</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method nbxmpp.protocol.Acks.buildAnswer()=nbxmpp.protocol.Acks-class.html#buildAnswer"><a title="nbxmpp.protocol.Acks.buildAnswer" class="py-name" href="#" onclick="return doclink('link-40', 'buildAnswer', 'link-40');">buildAnswer</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">in_h</tt><tt class="py-op">)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-41', 'send', 'link-34');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">ack</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> </tt>
-<a name="Smacks.request_ack"></a><div id="Smacks.request_ack-def"><a name="L85"></a><tt class="py-lineno"> 85</tt> <a class="py-toggle" href="#" id="Smacks.request_ack-toggle" onclick="return toggle('Smacks.request_ack');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#request_ack">request_ack</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Smacks.request_ack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.request_ack-expanded"><a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt id="link-42" class="py-name"><a title="nbxmpp.protocol.Acks" class="py-name" href="#" onclick="return doclink('link-42', 'Acks', 'link-1');">Acks</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Method nbxmpp.protocol.Acks.buildRequest()=nbxmpp.protocol.Acks-class.html#buildRequest"><a title="nbxmpp.protocol.Acks.buildRequest" class="py-name" href="#" onclick="return doclink('link-43', 'buildRequest', 'link-43');">buildRequest</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+</div><a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> </tt>
+<a name="Smacks.request_ack"></a><div id="Smacks.request_ack-def"><a name="L87"></a><tt class="py-lineno"> 87</tt> <a class="py-toggle" href="#" id="Smacks.request_ack-toggle" onclick="return toggle('Smacks.request_ack');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#request_ack">request_ack</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Smacks.request_ack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.request_ack-expanded"><a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt id="link-42" class="py-name"><a title="nbxmpp.protocol.Acks" class="py-name" href="#" onclick="return doclink('link-42', 'Acks', 'link-1');">Acks</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Method nbxmpp.protocol.Acks.buildRequest()=nbxmpp.protocol.Acks-class.html#buildRequest"><a title="nbxmpp.protocol.Acks.buildRequest" class="py-name" href="#" onclick="return doclink('link-43', 'buildRequest', 'link-43');">buildRequest</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-44', 'send', 'link-34');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> </tt>
-<a name="Smacks.check_ack"></a><div id="Smacks.check_ack-def"><a name="L90"></a><tt class="py-lineno"> 90</tt> <a class="py-toggle" href="#" id="Smacks.check_ack-toggle" onclick="return toggle('Smacks.check_ack');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#check_ack">check_ack</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">disp</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Smacks.check_ack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.check_ack-expanded"><a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-docstring">'''</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> Checks if the number of stanzas sent are the same as the</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> number of stanzas received by the server. Pops stanzas that were</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> handled by the server from the queue.</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"> '''</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">h</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-45', 'getAttr', 'link-28');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'h'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">diff</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_h</tt> <tt class="py-op">-</tt> <tt class="py-name">h</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">diff</tt> <tt class="py-keyword">or</tt> <tt class="py-name">diff</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt id="link-46" class="py-name"><a title="nbxmpp.auth_nb.log
+</div><a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> </tt>
+<a name="Smacks.check_ack"></a><div id="Smacks.check_ack-def"><a name="L92"></a><tt class="py-lineno"> 92</tt> <a class="py-toggle" href="#" id="Smacks.check_ack-toggle" onclick="return toggle('Smacks.check_ack');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#check_ack">check_ack</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">disp</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Smacks.check_ack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.check_ack-expanded"><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-docstring">'''</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> Checks if the number of stanzas sent are the same as the</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"> number of stanzas received by the server. Pops stanzas that were</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> handled by the server from the queue.</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> '''</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">h</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="nbxmpp.simplexml.Node.getAttr" class="py-name" href="#" onclick="return doclink('link-45', 'getAttr', 'link-28');">getAttr</a></tt><tt class="py-op">(</tt><tt class="py-string">'h'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">diff</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">out_h</tt> <tt class="py-op">-</tt> <tt class="py-name">h</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">diff</tt> <tt class="py-keyword">or</tt> <tt class="py-name">diff</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt id="link-46" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -218,45 +220,46 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-46', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Server and client number of stanzas handled mismatch '</tt><tt class="py-op">)</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">diff</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.getName()=nbxmpp.roster_nb.NonBlockingRoster-class.html#getName,Method nbxmpp.simplexml.Node.getName()=nbxmpp.simplexml.Node-class.html#getName"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">diff</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Method nbxmpp.roster_nb.NonBlockingRoster.getName()=nbxmpp.roster_nb.NonBlockingRoster-class.html#getName,Method nbxmpp.simplexml.Node.getName()=nbxmpp.simplexml.Node-class.html#getName"><a title="nbxmpp.roster_nb.NonBlockingRoster.getName
nbxmpp.simplexml.Node.getName" class="py-name" href="#" onclick="return doclink('link-47', 'getName', 'link-47');">getName</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'resumed'</tt><tt class="py-op">:</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resuming</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">con</tt><tt class="py-op">.</tt><tt class="py-name">set_oldst</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt> <tt class="py-op">!=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt><tt class="py-op">:</tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resuming</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">con</tt><tt class="py-op">.</tt><tt class="py-name">set_oldst</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt> <tt class="py-op">!=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uqueue</tt><tt class="py-op">:</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-48', 'send', 'link-34');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> </tt>
-<a name="Smacks.error_handling"></a><div id="Smacks.error_handling-def"><a name="L113"></a><tt class="py-lineno">113</tt> <a class="py-toggle" href="#" id="Smacks.error_handling-toggle" onclick="return toggle('Smacks.error_handling');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#error_handling">error_handling</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">disp</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Smacks.error_handling-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.error_handling-expanded"><a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-comment"># If the server doesn't recognize previd, forget about resuming</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-comment"># Ask for service discovery, etc..</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Method nbxmpp.simplexml.Node.getTag()=nbxmpp.simplexml.Node-class.html#getTag"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-49', 'getTag', 'link-49');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'item-not-found'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resuming</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-comment"># we need to bind a resource</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Class nbxmpp.auth_nb.NonBlockingBind=nbxmpp.auth_nb.NonBlockingBind-class.html,Method nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind()=nbxmpp.auth_nb.NonBlockingBind-class.html#NonBlockingBind"><a title="nbxmpp.auth_nb.NonBlockingBind
+</div><a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> </tt>
+<a name="Smacks.error_handling"></a><div id="Smacks.error_handling-def"><a name="L115"></a><tt class="py-lineno">115</tt> <a class="py-toggle" href="#" id="Smacks.error_handling-toggle" onclick="return toggle('Smacks.error_handling');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.smacks.Smacks-class.html#error_handling">error_handling</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">disp</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Smacks.error_handling-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Smacks.error_handling-expanded"><a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-comment"># If the server doesn't recognize previd, forget about resuming</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-comment"># Ask for service discovery, etc..</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Method nbxmpp.simplexml.Node.getTag()=nbxmpp.simplexml.Node-class.html#getTag"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-49', 'getTag', 'link-49');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'item-not-found'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resuming</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-comment"># we need to bind a resource</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Class nbxmpp.auth_nb.NonBlockingBind=nbxmpp.auth_nb.NonBlockingBind-class.html,Method nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind()=nbxmpp.auth_nb.NonBlockingBind-class.html#NonBlockingBind"><a title="nbxmpp.auth_nb.NonBlockingBind
nbxmpp.auth_nb.NonBlockingBind.NonBlockingBind" class="py-name" href="#" onclick="return doclink('link-50', 'NonBlockingBind', 'link-50');">NonBlockingBind</a></tt><tt class="py-op">.</tt><tt class="py-name">resuming</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_auth_bind()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_auth_bind"><a title="nbxmpp.client_nb.NonBlockingClient._on_auth_bind" class="py-name" href="#" onclick="return doclink('link-51', '_on_auth_bind', 'link-51');">_on_auth_bind</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-comment"># Doesn't support resumption</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-52', 'getTag', 'link-49');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'feature-not-implemented'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="nbxmpp.smacks.Smacks.negociate" class="py-name" href="#" onclick="return doclink('link-53', 'negociate', 'link-30');">negociate</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-54', 'getTag', 'link-49');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'unexpected-request'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt id="link-55" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Method nbxmpp.client_nb.NonBlockingClient._on_auth_bind()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_auth_bind"><a title="nbxmpp.client_nb.NonBlockingClient._on_auth_bind" class="py-name" href="#" onclick="return doclink('link-51', '_on_auth_bind', 'link-51');">_on_auth_bind</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">failed_resume</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-comment"># Doesn't support resumption</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-52', 'getTag', 'link-49');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'feature-not-implemented'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="nbxmpp.smacks.Smacks.negociate" class="py-name" href="#" onclick="return doclink('link-53', 'negociate', 'link-30');">negociate</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="nbxmpp.simplexml.Node.getTag" class="py-name" href="#" onclick="return doclink('link-54', 'getTag', 'link-49');">getTag</a></tt><tt class="py-op">(</tt><tt class="py-string">'unexpected-request'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enabled</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt id="link-55" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -268,8 +271,8 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-55', 'log', 'link-4');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Gajim failed to negociate Stream Management'</tt><tt class="py-op">)</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-</div></div><a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+</div></div><a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -307,7 +310,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:09 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.smacks.Smacks-class.html b/doc/apidocs/nbxmpp.smacks.Smacks-class.html
index 73a88b1..d9c1d1c 100644
--- a/doc/apidocs/nbxmpp.smacks.Smacks-class.html
+++ b/doc/apidocs/nbxmpp.smacks.Smacks-class.html
@@ -478,7 +478,7 @@ handled by the server from the queue.
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.stringprepare-module.html b/doc/apidocs/nbxmpp.stringprepare-module.html
index eef055c..2a90840 100644
--- a/doc/apidocs/nbxmpp.stringprepare-module.html
+++ b/doc/apidocs/nbxmpp.stringprepare-module.html
@@ -642,7 +642,7 @@ NamePrep()
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.stringprepare-pysrc.html b/doc/apidocs/nbxmpp.stringprepare-pysrc.html
index 90c57b8..0e1c817 100644
--- a/doc/apidocs/nbxmpp.stringprepare-pysrc.html
+++ b/doc/apidocs/nbxmpp.stringprepare-pysrc.html
@@ -350,7 +350,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:09 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.stringprepare.EmptyMappingTable-class.html b/doc/apidocs/nbxmpp.stringprepare.EmptyMappingTable-class.html
index e79810e..05b7d72 100644
--- a/doc/apidocs/nbxmpp.stringprepare.EmptyMappingTable-class.html
+++ b/doc/apidocs/nbxmpp.stringprepare.EmptyMappingTable-class.html
@@ -231,7 +231,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:07 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.stringprepare.ILookupTable-class.html b/doc/apidocs/nbxmpp.stringprepare.ILookupTable-class.html
index e737efa..c0115af 100644
--- a/doc/apidocs/nbxmpp.stringprepare.ILookupTable-class.html
+++ b/doc/apidocs/nbxmpp.stringprepare.ILookupTable-class.html
@@ -170,7 +170,7 @@ Interface for character lookup classes
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.stringprepare.IMappingTable-class.html b/doc/apidocs/nbxmpp.stringprepare.IMappingTable-class.html
index 004d5f4..54e5120 100644
--- a/doc/apidocs/nbxmpp.stringprepare.IMappingTable-class.html
+++ b/doc/apidocs/nbxmpp.stringprepare.IMappingTable-class.html
@@ -170,7 +170,7 @@ Interface for character mapping classes
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.stringprepare.LookupTable-class.html b/doc/apidocs/nbxmpp.stringprepare.LookupTable-class.html
index 7191a19..48ff232 100644
--- a/doc/apidocs/nbxmpp.stringprepare.LookupTable-class.html
+++ b/doc/apidocs/nbxmpp.stringprepare.LookupTable-class.html
@@ -231,7 +231,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.stringprepare.LookupTableFromFunction-class.html b/doc/apidocs/nbxmpp.stringprepare.LookupTableFromFunction-class.html
index 686f071..3e8f721 100644
--- a/doc/apidocs/nbxmpp.stringprepare.LookupTableFromFunction-class.html
+++ b/doc/apidocs/nbxmpp.stringprepare.LookupTableFromFunction-class.html
@@ -194,7 +194,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.stringprepare.MappingTableFromFunction-class.html b/doc/apidocs/nbxmpp.stringprepare.MappingTableFromFunction-class.html
index 199231e..8bd3495 100644
--- a/doc/apidocs/nbxmpp.stringprepare.MappingTableFromFunction-class.html
+++ b/doc/apidocs/nbxmpp.stringprepare.MappingTableFromFunction-class.html
@@ -194,7 +194,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.stringprepare.NamePrep-class.html b/doc/apidocs/nbxmpp.stringprepare.NamePrep-class.html
index 3c65e31..5bcf9d2 100644
--- a/doc/apidocs/nbxmpp.stringprepare.NamePrep-class.html
+++ b/doc/apidocs/nbxmpp.stringprepare.NamePrep-class.html
Binary files differ
diff --git a/doc/apidocs/nbxmpp.stringprepare.Profile-class.html b/doc/apidocs/nbxmpp.stringprepare.Profile-class.html
index f0feb09..bc02ea5 100644
--- a/doc/apidocs/nbxmpp.stringprepare.Profile-class.html
+++ b/doc/apidocs/nbxmpp.stringprepare.Profile-class.html
@@ -361,7 +361,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.tls_nb-module.html b/doc/apidocs/nbxmpp.tls_nb-module.html
index 2abd962..7bcc4d0 100644
--- a/doc/apidocs/nbxmpp.tls_nb-module.html
+++ b/doc/apidocs/nbxmpp.tls_nb-module.html
@@ -390,7 +390,7 @@ True
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.tls_nb-pysrc.html b/doc/apidocs/nbxmpp.tls_nb-pysrc.html
index 62f367b..3d80cf8 100644
--- a/doc/apidocs/nbxmpp.tls_nb-pysrc.html
+++ b/doc/apidocs/nbxmpp.tls_nb-pysrc.html
@@ -723,21 +723,20 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Method nbxmpp.tls_nb.NonBlockingTLS._dumpPKey()=nbxmpp.tls_nb.NonBlockingTLS-class.html#_dumpPKey"><a title="nbxmpp.tls_nb.NonBlockingTLS._dumpPKey" class="py-name" href="#" onclick="return doclink('link-58', '_dumpPKey', 'link-58');">_dumpPKey</a></tt><tt class="py-op">(</tt><tt class="py-name">cert</tt><tt class="py-op">.</tt><tt class="py-name">get_pubkey</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">stream</tt><tt class="py-op">)</tt> </tt>
</div><a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> </tt>
<a name="NonBlockingTLS._dumpX509Name"></a><div id="NonBlockingTLS._dumpX509Name-def"><a name="L291"></a><tt class="py-lineno">291</tt> <a class="py-toggle" href="#" id="NonBlockingTLS._dumpX509Name-toggle" onclick="return toggle('NonBlockingTLS._dumpX509Name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.tls_nb.NonBlockingTLS-class.html#_dumpX509Name">_dumpX509Name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">stream</tt><tt class="py-op">=</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTLS._dumpX509Name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTLS._dumpX509Name-expanded"><a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">&gt;&gt;</tt> <tt class="py-name">stream</tt><tt class="py-op">,</tt> <tt class="py-string">"X509Name:"</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-59" class="py-name" targets="Variable nbxmpp.name=nbxmpp-module.html#name,Variable nbxmpp.protocol.name=nbxmpp.protocol-module.html#name"><a title="nbxmpp.name
-nbxmpp.protocol.name" class="py-name" href="#" onclick="return doclink('link-59', 'name', 'link-59');">name</a></tt><tt class="py-op">)</tt> </tt>
+</div><div id="NonBlockingTLS._dumpX509Name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTLS._dumpX509Name-expanded"><a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">&gt;&gt;</tt> <tt class="py-name">stream</tt><tt class="py-op">,</tt> <tt class="py-string">"X509Name:"</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
</div><a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> </tt>
<a name="NonBlockingTLS._dumpPKey"></a><div id="NonBlockingTLS._dumpPKey-def"><a name="L294"></a><tt class="py-lineno">294</tt> <a class="py-toggle" href="#" id="NonBlockingTLS._dumpPKey-toggle" onclick="return toggle('NonBlockingTLS._dumpPKey');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.tls_nb.NonBlockingTLS-class.html#_dumpPKey">_dumpPKey</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">pkey</tt><tt class="py-op">,</tt> <tt class="py-param">stream</tt><tt class="py-op">=</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NonBlockingTLS._dumpPKey-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTLS._dumpPKey-expanded"><a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-name">typedict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">TYPE_RSA</tt><tt class="py-op">:</tt> <tt class="py-string">"RSA"</tt><tt class="py-op">,</tt> </tt>
<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">TYPE_DSA</tt><tt class="py-op">:</tt> <tt class="py-string">"DSA"</tt><tt class="py-op">}</tt> </tt>
<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">&gt;&gt;</tt> <tt class="py-name">stream</tt><tt class="py-op">,</tt> <tt class="py-string">"PKey bits:"</tt><tt class="py-op">,</tt> <tt class="py-name">pkey</tt><tt class="py-op">.</tt><tt class="py-name">bits</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">&gt;&gt;</tt> <tt class="py-name">stream</tt><tt class="py-op">,</tt> <tt class="py-string">"PKey type: %s (%d)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">typedict</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method nbxmpp.bosh.KeyStack.get()=nbxmpp.bosh.KeyStack-class.html#get"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-60', 'get', 'link-60');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">pkey</tt><tt class="py-op">.</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">&gt;&gt;</tt> <tt class="py-name">stream</tt><tt class="py-op">,</tt> <tt class="py-string">"PKey type: %s (%d)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">typedict</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Method nbxmpp.bosh.KeyStack.get()=nbxmpp.bosh.KeyStack-class.html#get"><a title="nbxmpp.bosh.KeyStack.get" class="py-name" href="#" onclick="return doclink('link-59', 'get', 'link-59');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">pkey</tt><tt class="py-op">.</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-string">"Unknown"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">pkey</tt><tt class="py-op">.</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> </tt>
<a name="NonBlockingTLS._startSSL"></a><div id="NonBlockingTLS._startSSL-def"><a name="L301"></a><tt class="py-lineno">301</tt> <a class="py-toggle" href="#" id="NonBlockingTLS._startSSL-toggle" onclick="return toggle('NonBlockingTLS._startSSL');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.tls_nb.NonBlockingTLS-class.html#_startSSL">_startSSL</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="NonBlockingTLS._startSSL-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTLS._startSSL-expanded"><a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"><tt class="py-docstring"> Immediatedly switch socket to TLS mode. Used internally</tt> </tt>
<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt id="link-61" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt id="link-60" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -748,15 +747,15 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-61', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"_startSSL called"</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-60', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"_startSSL called"</tt><tt class="py-op">)</tt> </tt>
<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-62" class="py-name"><a title="nbxmpp.tls_nb.USE_PYOPENSSL" class="py-name" href="#" onclick="return doclink('link-62', 'USE_PYOPENSSL', 'link-3');">USE_PYOPENSSL</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name" targets="Method nbxmpp.tls_nb.NonBlockingTLS._startSSL_pyOpenSSL()=nbxmpp.tls_nb.NonBlockingTLS-class.html#_startSSL_pyOpenSSL"><a title="nbxmpp.tls_nb.NonBlockingTLS._startSSL_pyOpenSSL" class="py-name" href="#" onclick="return doclink('link-63', '_startSSL_pyOpenSSL', 'link-63');">_startSSL_pyOpenSSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-61" class="py-name"><a title="nbxmpp.tls_nb.USE_PYOPENSSL" class="py-name" href="#" onclick="return doclink('link-61', 'USE_PYOPENSSL', 'link-3');">USE_PYOPENSSL</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Method nbxmpp.tls_nb.NonBlockingTLS._startSSL_pyOpenSSL()=nbxmpp.tls_nb.NonBlockingTLS-class.html#_startSSL_pyOpenSSL"><a title="nbxmpp.tls_nb.NonBlockingTLS._startSSL_pyOpenSSL" class="py-name" href="#" onclick="return doclink('link-62', '_startSSL_pyOpenSSL', 'link-62');">_startSSL_pyOpenSSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Method nbxmpp.tls_nb.NonBlockingTLS._startSSL_stdlib()=nbxmpp.tls_nb.NonBlockingTLS-class.html#_startSSL_stdlib"><a title="nbxmpp.tls_nb.NonBlockingTLS._startSSL_stdlib" class="py-name" href="#" onclick="return doclink('link-64', '_startSSL_stdlib', 'link-64');">_startSSL_stdlib</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name" targets="Method nbxmpp.tls_nb.NonBlockingTLS._startSSL_stdlib()=nbxmpp.tls_nb.NonBlockingTLS-class.html#_startSSL_stdlib"><a title="nbxmpp.tls_nb.NonBlockingTLS._startSSL_stdlib" class="py-name" href="#" onclick="return doclink('link-63', '_startSSL_stdlib', 'link-63');">_startSSL_stdlib</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> </tt>
<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">result</tt><tt class="py-op">:</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt id="link-65" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt id="link-64" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -767,7 +766,7 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-65', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Synchronous handshake completed'</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-64', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Synchronous handshake completed'</tt><tt class="py-op">)</tt> </tt>
<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
@@ -778,7 +777,7 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">cert_path</tt><tt class="py-op">)</tt> </tt>
<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt id="link-66" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt id="link-65" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -789,7 +788,7 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-66', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unable to open certificate file %s: %s'</tt> <tt class="py-op">%</tt> \ </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-65', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unable to open certificate file %s: %s'</tt> <tt class="py-op">%</tt> \ </tt>
<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">cert_path</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">readlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
@@ -804,10 +803,10 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-name">x509cert</tt> <tt class="py-op">=</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">load_certificate</tt><tt class="py-op">(</tt> </tt>
<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">FILETYPE_PEM</tt><tt class="py-op">,</tt> <tt class="py-name">cert</tt><tt class="py-op">)</tt> </tt>
<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-name">cert_store</tt><tt class="py-op">.</tt><tt class="py-name">add_cert</tt><tt class="py-op">(</tt><tt class="py-name">x509cert</tt><tt class="py-op">)</tt> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="nbxmpp.protocol.Error
-nbxmpp.tls_nb.SSLWrapper.Error" class="py-name" href="#" onclick="return doclink('link-67', 'Error', 'link-22');">Error</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception_obj</tt><tt class="py-op">:</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="nbxmpp.protocol.Error
+nbxmpp.tls_nb.SSLWrapper.Error" class="py-name" href="#" onclick="return doclink('link-66', 'Error', 'link-22');">Error</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception_obj</tt><tt class="py-op">:</tt> </tt>
<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">logg</tt><tt class="py-op">:</tt> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt id="link-68" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt id="link-67" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -818,10 +817,10 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-68', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unable to load a certificate from file %s: %s'</tt> <tt class="py-op">%</tt>\ </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-67', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unable to load a certificate from file %s: %s'</tt> <tt class="py-op">%</tt>\ </tt>
<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">cert_path</tt><tt class="py-op">,</tt> <tt class="py-name">exception_obj</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt id="link-69" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt id="link-68" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -832,13 +831,13 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-69', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unknown error while loading certificate from file '</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-68', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unknown error while loading certificate from file '</tt> </tt>
<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-string">'%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">cert_path</tt><tt class="py-op">)</tt> </tt>
<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-name">begin</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
</div><a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> </tt>
<a name="NonBlockingTLS._startSSL_pyOpenSSL"></a><div id="NonBlockingTLS._startSSL_pyOpenSSL-def"><a name="L349"></a><tt class="py-lineno">349</tt> <a class="py-toggle" href="#" id="NonBlockingTLS._startSSL_pyOpenSSL-toggle" onclick="return toggle('NonBlockingTLS._startSSL_pyOpenSSL');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.tls_nb.NonBlockingTLS-class.html#_startSSL_pyOpenSSL">_startSSL_pyOpenSSL</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTLS._startSSL_pyOpenSSL-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTLS._startSSL_pyOpenSSL-expanded"><a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt id="link-70" class="py-name"><a title="nbxmpp.auth_nb.log
+</div><div id="NonBlockingTLS._startSSL_pyOpenSSL-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTLS._startSSL_pyOpenSSL-expanded"><a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt id="link-69" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -849,7 +848,7 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-70', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"_startSSL_pyOpenSSL called"</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-69', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"_startSSL_pyOpenSSL called"</tt><tt class="py-op">)</tt> </tt>
<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt> </tt>
<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-comment"># NonBlockingHTTPBOSH instance has no attribute _owner</tt> </tt>
<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">tcpsock</tt><tt class="py-op">,</tt> <tt class="py-string">'_owner'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">_caller</tt><tt class="py-op">.</tt><tt class="py-name">client_cert</tt> \ </tt>
@@ -859,7 +858,7 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-comment"># If we are going to use a client cert/key pair for authentication,</tt> </tt>
<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-comment"># we choose TLSv1 method.</tt> </tt>
<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslContext</tt> <tt class="py-op">=</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">Context</tt><tt class="py-op">(</tt><tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">TLSv1_METHOD</tt><tt class="py-op">)</tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt id="link-71" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt id="link-70" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -870,13 +869,13 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-71', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Using client cert and key from %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">client_cert</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-70', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Using client cert and key from %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">client_cert</tt><tt class="py-op">)</tt> </tt>
<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-name">p12</tt> <tt class="py-op">=</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">load_pkcs12</tt><tt class="py-op">(</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">client_cert</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">client_cert_passphrase</tt><tt class="py-op">)</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="nbxmpp.protocol.Error
-nbxmpp.tls_nb.SSLWrapper.Error" class="py-name" href="#" onclick="return doclink('link-72', 'Error', 'link-22');">Error</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception_obj</tt><tt class="py-op">:</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt id="link-73" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="nbxmpp.protocol.Error
+nbxmpp.tls_nb.SSLWrapper.Error" class="py-name" href="#" onclick="return doclink('link-71', 'Error', 'link-22');">Error</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception_obj</tt><tt class="py-op">:</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt id="link-72" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -887,11 +886,11 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-73', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unable to load client pkcs12 certificate from '</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-72', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unable to load client pkcs12 certificate from '</tt> </tt>
<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-string">'file %s: %s ... Is it a valid PKCS12 cert?'</tt> <tt class="py-op">%</tt> \ </tt>
<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">client_cert</tt><tt class="py-op">,</tt> <tt class="py-name">exception_obj</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt id="link-74" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt id="link-73" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -902,10 +901,10 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-74', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unknown error while loading certificate from file '</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-73', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unknown error while loading certificate from file '</tt> </tt>
<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-string">'%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">client_cert</tt><tt class="py-op">)</tt> </tt>
<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt id="link-75" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt id="link-74" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -916,11 +915,11 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-75', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'PKCS12 Client cert loaded OK'</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-74', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'PKCS12 Client cert loaded OK'</tt><tt class="py-op">)</tt> </tt>
<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslContext</tt><tt class="py-op">.</tt><tt class="py-name">use_certificate</tt><tt class="py-op">(</tt><tt class="py-name">p12</tt><tt class="py-op">.</tt><tt class="py-name">get_certificate</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslContext</tt><tt class="py-op">.</tt><tt class="py-name">use_privatekey</tt><tt class="py-op">(</tt><tt class="py-name">p12</tt><tt class="py-op">.</tt><tt class="py-name">get_privatekey</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt id="link-76" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt id="link-75" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -931,10 +930,10 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-76', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'p12 cert and key loaded'</tt><tt class="py-op">)</tt> </tt>
-<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="nbxmpp.protocol.Error
-nbxmpp.tls_nb.SSLWrapper.Error" class="py-name" href="#" onclick="return doclink('link-77', 'Error', 'link-22');">Error</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception_obj</tt><tt class="py-op">:</tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt id="link-78" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-75', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'p12 cert and key loaded'</tt><tt class="py-op">)</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="nbxmpp.protocol.Error
+nbxmpp.tls_nb.SSLWrapper.Error" class="py-name" href="#" onclick="return doclink('link-76', 'Error', 'link-22');">Error</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception_obj</tt><tt class="py-op">:</tt> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt id="link-77" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -945,10 +944,10 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-78', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unable to extract client certificate from '</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-77', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unable to extract client certificate from '</tt> </tt>
<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-string">'file %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">client_cert</tt><tt class="py-op">)</tt> </tt>
<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt><tt class="py-op">:</tt> </tt>
-<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt id="link-79" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt id="link-78" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -959,10 +958,10 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-79', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unknown error extracting client certificate '</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-78', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unknown error extracting client certificate '</tt> </tt>
<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> <tt class="py-string">'from file %s: %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">conn</tt><tt class="py-op">.</tt><tt class="py-name">client_cert</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt id="link-80" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt id="link-79" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -973,7 +972,7 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-80', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'client cert and key loaded OK'</tt><tt class="py-op">)</tt> </tt>
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-79', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'client cert and key loaded OK'</tt><tt class="py-op">)</tt> </tt>
<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt class="py-comment"># See http://docs.python.org/dev/library/ssl.html</tt> </tt>
<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslContext</tt> <tt class="py-op">=</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">Context</tt><tt class="py-op">(</tt><tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">SSLv23_METHOD</tt><tt class="py-op">)</tt> </tt>
@@ -985,50 +984,35 @@ nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link
<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> <tt class="py-name">flags</tt> <tt class="py-op">|=</tt> <tt class="py-number">16384</tt> </tt>
<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslContext</tt><tt class="py-op">.</tt><tt class="py-name">set_options</tt><tt class="py-op">(</tt><tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> </tt>
-<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">ssl_errnum</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">ssl_errnum</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslContext</tt><tt class="py-op">.</tt><tt class="py-name">set_verify</tt><tt class="py-op">(</tt><tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">VERIFY_PEER</tt><tt class="py-op">,</tt> </tt>
-<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name" targets="Method nbxmpp.tls_nb.NonBlockingTLS._ssl_verify_callback()=nbxmpp.tls_nb.NonBlockingTLS-class.html#_ssl_verify_callback"><a title="nbxmpp.tls_nb.NonBlockingTLS._ssl_verify_callback" class="py-name" href="#" onclick="return doclink('link-81', '_ssl_verify_callback', 'link-81');">_ssl_verify_callback</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslContext</tt><tt class="py-op">.</tt><tt class="py-name">load_verify_locations</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cacerts</tt><tt class="py-op">)</tt> </tt>
-<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt id="link-82" class="py-name"><a title="nbxmpp.auth_nb.log
-nbxmpp.bosh.log
-nbxmpp.client_nb.log
-nbxmpp.dispatcher_nb.log
-nbxmpp.idlequeue.log
-nbxmpp.plugin.log
-nbxmpp.proxy_connectors.log
-nbxmpp.roster_nb.log
-nbxmpp.simplexml.log
-nbxmpp.smacks.log
-nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-82', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Unable to load SSL certificates from file %s'</tt> <tt class="py-op">%</tt> \ </tt>
-<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">abspath</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cacerts</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-name">store</tt> <tt class="py-op">=</tt> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslContext</tt><tt class="py-op">.</tt><tt class="py-name">get_cert_store</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name" targets="Method nbxmpp.tls_nb.NonBlockingTLS._load_cert_file()=nbxmpp.tls_nb.NonBlockingTLS-class.html#_load_cert_file"><a title="nbxmpp.tls_nb.NonBlockingTLS._load_cert_file" class="py-name" href="#" onclick="return doclink('link-83', '_load_cert_file', 'link-83');">_load_cert_file</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mycerts</tt><tt class="py-op">,</tt> <tt class="py-name">store</tt><tt class="py-op">)</tt> </tt>
-<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isdir</tt><tt class="py-op">(</tt><tt class="py-string">'/etc/ssl/certs'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">listdir</tt><tt class="py-op">(</tt><tt class="py-string">'/etc/ssl/certs'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-comment"># We don't logg because there is a lot a duplicated certs in this</tt> </tt>
-<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-comment"># folder</tt> </tt>
-<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="nbxmpp.tls_nb.NonBlockingTLS._load_cert_file" class="py-name" href="#" onclick="return doclink('link-84', '_load_cert_file', 'link-83');">_load_cert_file</a></tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-string">'/etc/ssl/certs'</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">store</tt><tt class="py-op">,</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">logg</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> </tt>
-<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt> <tt class="py-op">=</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">(</tt><tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslContext</tt><tt class="py-op">,</tt> </tt>
-<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">)</tt> </tt>
-<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">.</tt><tt class="py-name">set_connect_state</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-comment"># set to client mode</tt> </tt>
-<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-name">wrapper</tt> <tt class="py-op">=</tt> <tt id="link-85" class="py-name" targets="Class nbxmpp.tls_nb.PyOpenSSLWrapper=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html"><a title="nbxmpp.tls_nb.PyOpenSSLWrapper" class="py-name" href="#" onclick="return doclink('link-85', 'PyOpenSSLWrapper', 'link-85');">PyOpenSSLWrapper</a></tt><tt class="py-op">(</tt><tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">)</tt> </tt>
-<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_recv</tt> <tt class="py-op">=</tt> <tt class="py-name">wrapper</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="nbxmpp.tls_nb.PyOpenSSLWrapper.recv
+<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name" targets="Method nbxmpp.tls_nb.NonBlockingTLS._ssl_verify_callback()=nbxmpp.tls_nb.NonBlockingTLS-class.html#_ssl_verify_callback"><a title="nbxmpp.tls_nb.NonBlockingTLS._ssl_verify_callback" class="py-name" href="#" onclick="return doclink('link-80', '_ssl_verify_callback', 'link-80');">_ssl_verify_callback</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-name">store</tt> <tt class="py-op">=</tt> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslContext</tt><tt class="py-op">.</tt><tt class="py-name">get_cert_store</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name" targets="Method nbxmpp.tls_nb.NonBlockingTLS._load_cert_file()=nbxmpp.tls_nb.NonBlockingTLS-class.html#_load_cert_file"><a title="nbxmpp.tls_nb.NonBlockingTLS._load_cert_file" class="py-name" href="#" onclick="return doclink('link-81', '_load_cert_file', 'link-81');">_load_cert_file</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">cacerts</tt><tt class="py-op">,</tt> <tt class="py-name">store</tt><tt class="py-op">)</tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="nbxmpp.tls_nb.NonBlockingTLS._load_cert_file" class="py-name" href="#" onclick="return doclink('link-82', '_load_cert_file', 'link-81');">_load_cert_file</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mycerts</tt><tt class="py-op">,</tt> <tt class="py-name">store</tt><tt class="py-op">)</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">isdir</tt><tt class="py-op">(</tt><tt class="py-string">'/etc/ssl/certs'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">listdir</tt><tt class="py-op">(</tt><tt class="py-string">'/etc/ssl/certs'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-comment"># We don't logg because there is a lot a duplicated certs in this</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-comment"># folder</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="nbxmpp.tls_nb.NonBlockingTLS._load_cert_file" class="py-name" href="#" onclick="return doclink('link-83', '_load_cert_file', 'link-81');">_load_cert_file</a></tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-string">'/etc/ssl/certs'</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">store</tt><tt class="py-op">,</tt> </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-name">logg</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt> <tt class="py-op">=</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">Connection</tt><tt class="py-op">(</tt><tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslContext</tt><tt class="py-op">,</tt> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">)</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">.</tt><tt class="py-name">set_connect_state</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-comment"># set to client mode</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-name">wrapper</tt> <tt class="py-op">=</tt> <tt id="link-84" class="py-name" targets="Class nbxmpp.tls_nb.PyOpenSSLWrapper=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html"><a title="nbxmpp.tls_nb.PyOpenSSLWrapper" class="py-name" href="#" onclick="return doclink('link-84', 'PyOpenSSLWrapper', 'link-84');">PyOpenSSLWrapper</a></tt><tt class="py-op">(</tt><tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">)</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_recv</tt> <tt class="py-op">=</tt> <tt class="py-name">wrapper</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="nbxmpp.tls_nb.PyOpenSSLWrapper.recv
nbxmpp.tls_nb.SSLWrapper.recv
-nbxmpp.tls_nb.StdlibSSLWrapper.recv" class="py-name" href="#" onclick="return doclink('link-86', 'recv', 'link-17');">recv</a></tt> </tt>
-<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_send</tt> <tt class="py-op">=</tt> <tt class="py-name">wrapper</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+nbxmpp.tls_nb.StdlibSSLWrapper.recv" class="py-name" href="#" onclick="return doclink('link-85', 'recv', 'link-17');">recv</a></tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_send</tt> <tt class="py-op">=</tt> <tt class="py-name">wrapper</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-87', 'send', 'link-31');">send</a></tt> </tt>
-<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> </tt>
-<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt id="link-88" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-86', 'send', 'link-31');">send</a></tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt id="link-87" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1039,12 +1023,13 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-88', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Initiating handshake..."</tt><tt class="py-op">)</tt> </tt>
-<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">.</tt><tt class="py-name">setblocking</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">.</tt><tt class="py-name">do_handshake</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt id="link-89" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-87', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Initiating handshake..."</tt><tt class="py-op">)</tt> </tt>
+<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">.</tt><tt class="py-name">do_handshake</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">WantReadError</tt><tt class="py-op">,</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">SSL</tt><tt class="py-op">.</tt><tt class="py-name">WantWriteError</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt id="link-88" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1055,14 +1040,13 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-89', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Error while TLS handshake: '</tt><tt class="py-op">,</tt> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">.</tt><tt class="py-name">setblocking</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> <tt class="py-op">=</tt> <tt id="link-90" class="py-name"><a title="nbxmpp.tls_nb.PYOPENSSL" class="py-name" href="#" onclick="return doclink('link-90', 'PYOPENSSL', 'link-4');">PYOPENSSL</a></tt> </tt>
-<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-</div><a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTLS._startSSL_stdlib"></a><div id="NonBlockingTLS._startSSL_stdlib-def"><a name="L431"></a><tt class="py-lineno">431</tt> <a class="py-toggle" href="#" id="NonBlockingTLS._startSSL_stdlib-toggle" onclick="return toggle('NonBlockingTLS._startSSL_stdlib');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.tls_nb.NonBlockingTLS-class.html#_startSSL_stdlib">_startSSL_stdlib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTLS._startSSL_stdlib-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTLS._startSSL_stdlib-expanded"><a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt id="link-91" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-88', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Error while TLS handshake: '</tt><tt class="py-op">,</tt> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> <tt class="py-op">=</tt> <tt id="link-89" class="py-name"><a title="nbxmpp.tls_nb.PYOPENSSL" class="py-name" href="#" onclick="return doclink('link-89', 'PYOPENSSL', 'link-4');">PYOPENSSL</a></tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTLS._startSSL_stdlib"></a><div id="NonBlockingTLS._startSSL_stdlib-def"><a name="L427"></a><tt class="py-lineno">427</tt> <a class="py-toggle" href="#" id="NonBlockingTLS._startSSL_stdlib-toggle" onclick="return toggle('NonBlockingTLS._startSSL_stdlib');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.tls_nb.NonBlockingTLS-class.html#_startSSL_stdlib">_startSSL_stdlib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTLS._startSSL_stdlib-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTLS._startSSL_stdlib-expanded"><a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt id="link-90" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1073,27 +1057,27 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-91', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"_startSSL_stdlib called"</tt><tt class="py-op">)</tt> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt> </tt>
-<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">setblocking</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">ssl</tt><tt class="py-op">(</tt><tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">setblocking</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslIssuer</tt> <tt class="py-op">=</tt> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">.</tt><tt class="py-name">issuer</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslServer</tt> <tt class="py-op">=</tt> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">.</tt><tt class="py-name">server</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-name">wrapper</tt> <tt class="py-op">=</tt> <tt id="link-92" class="py-name" targets="Class nbxmpp.tls_nb.StdlibSSLWrapper=nbxmpp.tls_nb.StdlibSSLWrapper-class.html"><a title="nbxmpp.tls_nb.StdlibSSLWrapper" class="py-name" href="#" onclick="return doclink('link-92', 'StdlibSSLWrapper', 'link-92');">StdlibSSLWrapper</a></tt><tt class="py-op">(</tt><tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">,</tt> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">)</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_recv</tt> <tt class="py-op">=</tt> <tt class="py-name">wrapper</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="nbxmpp.tls_nb.PyOpenSSLWrapper.recv
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-90', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"_startSSL_stdlib called"</tt><tt class="py-op">)</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">setblocking</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">ssl</tt><tt class="py-op">(</tt><tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">setblocking</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslIssuer</tt> <tt class="py-op">=</tt> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">.</tt><tt class="py-name">issuer</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslServer</tt> <tt class="py-op">=</tt> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">.</tt><tt class="py-name">server</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-name">wrapper</tt> <tt class="py-op">=</tt> <tt id="link-91" class="py-name" targets="Class nbxmpp.tls_nb.StdlibSSLWrapper=nbxmpp.tls_nb.StdlibSSLWrapper-class.html"><a title="nbxmpp.tls_nb.StdlibSSLWrapper" class="py-name" href="#" onclick="return doclink('link-91', 'StdlibSSLWrapper', 'link-91');">StdlibSSLWrapper</a></tt><tt class="py-op">(</tt><tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sslObj</tt><tt class="py-op">,</tt> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">)</tt> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_recv</tt> <tt class="py-op">=</tt> <tt class="py-name">wrapper</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="nbxmpp.tls_nb.PyOpenSSLWrapper.recv
nbxmpp.tls_nb.SSLWrapper.recv
-nbxmpp.tls_nb.StdlibSSLWrapper.recv" class="py-name" href="#" onclick="return doclink('link-93', 'recv', 'link-17');">recv</a></tt> </tt>
-<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_send</tt> <tt class="py-op">=</tt> <tt class="py-name">wrapper</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+nbxmpp.tls_nb.StdlibSSLWrapper.recv" class="py-name" href="#" onclick="return doclink('link-92', 'recv', 'link-17');">recv</a></tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-name">tcpsock</tt><tt class="py-op">.</tt><tt class="py-name">_send</tt> <tt class="py-op">=</tt> <tt class="py-name">wrapper</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
-nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-94', 'send', 'link-31');">send</a></tt> </tt>
-<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt id="link-95" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-93', 'send', 'link-31');">send</a></tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt id="link-94" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1104,22 +1088,22 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-95', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Exception caught in _startSSL_stdlib:"</tt><tt class="py-op">,</tt> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> <tt class="py-op">=</tt> <tt id="link-96" class="py-name"><a title="nbxmpp.tls_nb.PYSTDLIB" class="py-name" href="#" onclick="return doclink('link-96', 'PYSTDLIB', 'link-5');">PYSTDLIB</a></tt> </tt>
-<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-</div><a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTLS._ssl_verify_callback"></a><div id="NonBlockingTLS._ssl_verify_callback-def"><a name="L449"></a><tt class="py-lineno">449</tt> <a class="py-toggle" href="#" id="NonBlockingTLS._ssl_verify_callback-toggle" onclick="return toggle('NonBlockingTLS._ssl_verify_callback');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.tls_nb.NonBlockingTLS-class.html#_ssl_verify_callback">_ssl_verify_callback</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sslconn</tt><tt class="py-op">,</tt> <tt class="py-param">cert</tt><tt class="py-op">,</tt> <tt class="py-param">errnum</tt><tt class="py-op">,</tt> <tt class="py-param">depth</tt><tt class="py-op">,</tt> <tt class="py-param">ok</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTLS._ssl_verify_callback-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTLS._ssl_verify_callback-expanded"><a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-comment"># Exceptions can't propagate up through this callback, so print them here.</tt> </tt>
-<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">ssl_fingerprint_sha1</tt> <tt class="py-op">=</tt> <tt class="py-name">cert</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-string">'sha1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">ssl_certificate</tt> <tt class="py-op">=</tt> <tt class="py-name">cert</tt> </tt>
-<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">ssl_errnum</tt> <tt class="py-op">=</tt> <tt class="py-name">errnum</tt> </tt>
-<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">ssl_cert_pem</tt> <tt class="py-op">=</tt> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">dump_certificate</tt><tt class="py-op">(</tt> </tt>
-<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">FILETYPE_PEM</tt><tt class="py-op">,</tt> <tt class="py-name">cert</tt><tt class="py-op">)</tt> </tt>
-<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt id="link-97" class="py-name"><a title="nbxmpp.auth_nb.log
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-94', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Exception caught in _startSSL_stdlib:"</tt><tt class="py-op">,</tt> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> <tt class="py-op">=</tt> <tt id="link-95" class="py-name"><a title="nbxmpp.tls_nb.PYSTDLIB" class="py-name" href="#" onclick="return doclink('link-95', 'PYSTDLIB', 'link-5');">PYSTDLIB</a></tt> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTLS._ssl_verify_callback"></a><div id="NonBlockingTLS._ssl_verify_callback-def"><a name="L445"></a><tt class="py-lineno">445</tt> <a class="py-toggle" href="#" id="NonBlockingTLS._ssl_verify_callback-toggle" onclick="return toggle('NonBlockingTLS._ssl_verify_callback');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.tls_nb.NonBlockingTLS-class.html#_ssl_verify_callback">_ssl_verify_callback</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sslconn</tt><tt class="py-op">,</tt> <tt class="py-param">cert</tt><tt class="py-op">,</tt> <tt class="py-param">errnum</tt><tt class="py-op">,</tt> <tt class="py-param">depth</tt><tt class="py-op">,</tt> <tt class="py-param">ok</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTLS._ssl_verify_callback-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTLS._ssl_verify_callback-expanded"><a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-comment"># Exceptions can't propagate up through this callback, so print them here.</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">ssl_fingerprint_sha1</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">cert</tt><tt class="py-op">.</tt><tt class="py-name">digest</tt><tt class="py-op">(</tt><tt class="py-string">'sha1'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">ssl_certificate</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">cert</tt><tt class="py-op">)</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">ssl_errnum</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">)</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_owner</tt><tt class="py-op">.</tt><tt class="py-name">ssl_cert_pem</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">dump_certificate</tt><tt class="py-op">(</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-name">OpenSSL</tt><tt class="py-op">.</tt><tt class="py-name">crypto</tt><tt class="py-op">.</tt><tt class="py-name">FILETYPE_PEM</tt><tt class="py-op">,</tt> <tt class="py-name">cert</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"> <tt id="link-96" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1130,10 +1114,10 @@ nbxmpp.roster_nb.log
nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
-nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-97', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Exception caught in _ssl_info_callback:"</tt><tt class="py-op">,</tt> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-comment"># Make sure something is printed, even if log is disabled.</tt> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-name">traceback</tt><tt class="py-op">.</tt><tt class="py-name">print_exc</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> </tt><script type="text/javascript">
+nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-96', 'log', 'link-2');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"Exception caught in _ssl_info_callback:"</tt><tt class="py-op">,</tt> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-comment"># Make sure something is printed, even if log is disabled.</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt class="py-name">traceback</tt><tt class="py-op">.</tt><tt class="py-name">print_exc</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -1171,7 +1155,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.tls_nb.NonBlockingTLS-class.html b/doc/apidocs/nbxmpp.tls_nb.NonBlockingTLS-class.html
index cb694f7..da9307c 100644
--- a/doc/apidocs/nbxmpp.tls_nb.NonBlockingTLS-class.html
+++ b/doc/apidocs/nbxmpp.tls_nb.NonBlockingTLS-class.html
@@ -657,7 +657,7 @@ Returns True if TLS/SSL was established correctly, otherwise False
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.tls_nb.PyOpenSSLWrapper-class.html b/doc/apidocs/nbxmpp.tls_nb.PyOpenSSLWrapper-class.html
index 7c1e25c..16894e5 100644
--- a/doc/apidocs/nbxmpp.tls_nb.PyOpenSSLWrapper-class.html
+++ b/doc/apidocs/nbxmpp.tls_nb.PyOpenSSLWrapper-class.html
@@ -345,7 +345,7 @@ this by returning None.</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.tls_nb.SSLWrapper-class.html b/doc/apidocs/nbxmpp.tls_nb.SSLWrapper-class.html
index ccb3e3c..ff92728 100644
--- a/doc/apidocs/nbxmpp.tls_nb.SSLWrapper-class.html
+++ b/doc/apidocs/nbxmpp.tls_nb.SSLWrapper-class.html
@@ -299,7 +299,7 @@ this by returning None.</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.tls_nb.SSLWrapper.Error-class.html b/doc/apidocs/nbxmpp.tls_nb.SSLWrapper.Error-class.html
index 8af25f7..1e257a9 100644
--- a/doc/apidocs/nbxmpp.tls_nb.SSLWrapper.Error-class.html
+++ b/doc/apidocs/nbxmpp.tls_nb.SSLWrapper.Error-class.html
@@ -65,29 +65,29 @@
<h1 class="epydoc">Class Error</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.tls_nb-pysrc.html#SSLWrapper.Error">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_t_4" name="uml_class_diagram_for_nbxmpp_t_4">
-<area shape="rect" id="node231" href="javascript:void(0);" title="exceptions.IOError.__new__" alt="" coords="213,535,335,553"/>
-<area shape="rect" id="node1" href="javascript:void(0);" title="I/O operation failed." alt="" coords="201,502,345,559"/>
-<area shape="rect" id="node230" href="nbxmpp.tls_nb.SSLWrapper.Error-class.html#__init__" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="17,612,531,631"/>
-<area shape="rect" id="node230" href="nbxmpp.tls_nb.SSLWrapper.Error-class.html#__str__" title="str(x)" alt="" coords="17,631,531,649"/>
+<area shape="rect" id="node231" href="javascript:void(0);" title="exceptions.IOError.__new__" alt="" coords="212,535,333,553"/>
+<area shape="rect" id="node1" href="javascript:void(0);" title="I/O operation failed." alt="" coords="200,502,344,559"/>
+<area shape="rect" id="node230" href="nbxmpp.tls_nb.SSLWrapper.Error-class.html#__init__" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="17,612,529,631"/>
+<area shape="rect" id="node230" href="nbxmpp.tls_nb.SSLWrapper.Error-class.html#__str__" title="str(x)" alt="" coords="17,631,529,649"/>
<area shape="rect" id="node5" href="nbxmpp.tls_nb.SSLWrapper.Error-class.html" title="Generic SSL Error Wrapper" alt="" coords="5,579,541,655"/>
-<area shape="rect" id="node235" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="189,31,359,49"/>
-<area shape="rect" id="node235" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="189,49,359,68"/>
-<area shape="rect" id="node235" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="189,71,359,89"/>
-<area shape="rect" id="node235" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="189,89,359,108"/>
-<area shape="rect" id="node235" href="javascript:void(0);" title="x[y]" alt="" coords="189,108,359,127"/>
-<area shape="rect" id="node235" href="javascript:void(0);" title="x[i:j]" alt="" coords="189,127,359,145"/>
-<area shape="rect" id="node235" href="javascript:void(0);" title="repr(x)" alt="" coords="189,145,359,164"/>
-<area shape="rect" id="node235" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="189,164,359,183"/>
-<area shape="rect" id="node235" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="189,183,359,201"/>
-<area shape="rect" id="node235" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="189,201,359,220"/>
-<area shape="rect" id="node2" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="177,6,369,226"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="193,246,353,290"/>
-<area shape="rect" id="node232" href="javascript:void(0);" title="exception errno" alt="" coords="181,399,368,417"/>
-<area shape="rect" id="node232" href="javascript:void(0);" title="exception filename" alt="" coords="181,417,368,436"/>
-<area shape="rect" id="node232" href="javascript:void(0);" title="exception strerror" alt="" coords="181,436,368,455"/>
-<area shape="rect" id="node232" href="javascript:void(0);" title="helper for pickle" alt="" coords="181,457,368,476"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Base class for I/O related errors." alt="" coords="169,374,380,482"/>
-<area shape="rect" id="node6" href="javascript:void(0);" title="Base class for all standard Python exceptions that do not represent interpreter exiting." alt="" coords="180,310,369,354"/>
+<area shape="rect" id="node2" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="193,246,353,290"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Base class for all standard Python exceptions that do not represent interpreter exiting." alt="" coords="179,310,365,354"/>
+<area shape="rect" id="node232" href="javascript:void(0);" title="exception errno" alt="" coords="180,399,365,417"/>
+<area shape="rect" id="node232" href="javascript:void(0);" title="exception filename" alt="" coords="180,417,365,436"/>
+<area shape="rect" id="node232" href="javascript:void(0);" title="exception strerror" alt="" coords="180,436,365,455"/>
+<area shape="rect" id="node232" href="javascript:void(0);" title="helper for pickle" alt="" coords="180,457,365,476"/>
+<area shape="rect" id="node6" href="javascript:void(0);" title="Base class for I/O related errors." alt="" coords="168,374,376,482"/>
+<area shape="rect" id="node235" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="189,31,357,49"/>
+<area shape="rect" id="node235" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="189,49,357,68"/>
+<area shape="rect" id="node235" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="189,71,357,89"/>
+<area shape="rect" id="node235" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="189,89,357,108"/>
+<area shape="rect" id="node235" href="javascript:void(0);" title="x[y]" alt="" coords="189,108,357,127"/>
+<area shape="rect" id="node235" href="javascript:void(0);" title="x[i:j]" alt="" coords="189,127,357,145"/>
+<area shape="rect" id="node235" href="javascript:void(0);" title="repr(x)" alt="" coords="189,145,357,164"/>
+<area shape="rect" id="node235" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="189,164,357,183"/>
+<area shape="rect" id="node235" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="189,183,357,201"/>
+<area shape="rect" id="node235" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="189,201,357,220"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="177,6,369,226"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_t_4.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_t_4" ismap="ismap" class="graph-without-title" />
</center>
@@ -316,7 +316,7 @@ Generic SSL Error Wrapper
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.tls_nb.StdlibSSLWrapper-class.html b/doc/apidocs/nbxmpp.tls_nb.StdlibSSLWrapper-class.html
index 1a6b87e..5cd20a8 100644
--- a/doc/apidocs/nbxmpp.tls_nb.StdlibSSLWrapper-class.html
+++ b/doc/apidocs/nbxmpp.tls_nb.StdlibSSLWrapper-class.html
@@ -306,7 +306,7 @@ this by returning None.</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.transports_nb-module.html b/doc/apidocs/nbxmpp.transports_nb-module.html
index f924e1a..59880c4 100644
--- a/doc/apidocs/nbxmpp.transports_nb-module.html
+++ b/doc/apidocs/nbxmpp.transports_nb-module.html
@@ -676,7 +676,7 @@ logging.getLogger('nbxmpp.transports_nb')
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:04 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:12 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.transports_nb-pysrc.html b/doc/apidocs/nbxmpp.transports_nb-pysrc.html
index 00906e8..9a0f418 100644
--- a/doc/apidocs/nbxmpp.transports_nb-pysrc.html
+++ b/doc/apidocs/nbxmpp.transports_nb-pysrc.html
@@ -576,31 +576,37 @@ nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onc
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-78', 'disconnect', 'link-43');">disconnect</a></tt> </tt>
-</div><a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: transport should not be aware xmpp</tt> </tt>
-<a name="NonBlockingTCP.start_disconnect"></a><div id="NonBlockingTCP.start_disconnect-def"><a name="L314"></a><tt class="py-lineno">314</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.start_disconnect-toggle" onclick="return toggle('NonBlockingTCP.start_disconnect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#start_disconnect">start_disconnect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP.start_disconnect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.start_disconnect-expanded"><a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt id="link-79" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-79', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.start_disconnect
+<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-comment"># ssl variables</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_fingerprint_sha1</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_certificate</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_errnum</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_cert_pem</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-comment"># FIXME: transport should not be aware xmpp</tt> </tt>
+<a name="NonBlockingTCP.start_disconnect"></a><div id="NonBlockingTCP.start_disconnect-def"><a name="L320"></a><tt class="py-lineno">320</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.start_disconnect-toggle" onclick="return toggle('NonBlockingTCP.start_disconnect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#start_disconnect">start_disconnect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP.start_disconnect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.start_disconnect-expanded"><a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt id="link-79" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-79', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.start_disconnect
nbxmpp.transports_nb.NonBlockingTCP.start_disconnect
nbxmpp.transports_nb.NonBlockingTransport.start_disconnect" class="py-name" href="#" onclick="return doclink('link-80', 'start_disconnect', 'link-42');">start_disconnect</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.send()=nbxmpp.bosh.NonBlockingBOSH-class.html#send,Method nbxmpp.dispatcher_nb.XMPPDispatcher.send()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send,Method nbxmpp.tls_nb.PyOpenSSLWrapper.send()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#send,Method nbxmpp.tls_nb.SSLWrapper.send()=nbxmpp.tls_nb.SSLWrapper-class.html#send,Method nbxmpp.tls_nb.StdlibSSLWrapper.send()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#send,Method nbxmpp.transports_nb.NonBlockingTCP.send()=nbxmpp.transports_nb.NonBlockingTCP-class.html#send,Method nbxmpp.transports_nb.NonBlockingTransport.send()=nbxmpp.transports_nb.NonBlockingTransport-class.html#send"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.send()=nbxmpp.bosh.NonBlockingBOSH-class.html#send,Method nbxmpp.dispatcher_nb.XMPPDispatcher.send()=nbxmpp.dispatcher_nb.XMPPDispatcher-class.html#send,Method nbxmpp.tls_nb.PyOpenSSLWrapper.send()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#send,Method nbxmpp.tls_nb.SSLWrapper.send()=nbxmpp.tls_nb.SSLWrapper-class.html#send,Method nbxmpp.tls_nb.StdlibSSLWrapper.send()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#send,Method nbxmpp.transports_nb.NonBlockingTCP.send()=nbxmpp.transports_nb.NonBlockingTCP-class.html#send,Method nbxmpp.transports_nb.NonBlockingTransport.send()=nbxmpp.transports_nb.NonBlockingTransport-class.html#send"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-81', 'send', 'link-81');">send</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/stream:stream&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">now</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-82', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP.connect"></a><div id="NonBlockingTCP.connect-def"><a name="L319"></a><tt class="py-lineno">319</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.connect-toggle" onclick="return toggle('NonBlockingTCP.connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#connect">connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">conn_5tuple</tt><tt class="py-op">,</tt> <tt class="py-param">on_connect</tt><tt class="py-op">,</tt> <tt class="py-param">on_connect_failure</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP.connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.connect-expanded"><a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt id="link-83" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-83', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-84" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.connect()=nbxmpp.bosh.NonBlockingBOSH-class.html#connect,Method nbxmpp.client_nb.NonBlockingClient.connect()=nbxmpp.client_nb.NonBlockingClient-class.html#connect,Method nbxmpp.transports_nb.NonBlockingTCP.connect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#connect,Method nbxmpp.transports_nb.NonBlockingTransport.connect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#connect"><a title="nbxmpp.bosh.NonBlockingBOSH.connect
+</div><a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP.connect"></a><div id="NonBlockingTCP.connect-def"><a name="L325"></a><tt class="py-lineno">325</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.connect-toggle" onclick="return toggle('NonBlockingTCP.connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#connect">connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">conn_5tuple</tt><tt class="py-op">,</tt> <tt class="py-param">on_connect</tt><tt class="py-op">,</tt> <tt class="py-param">on_connect_failure</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP.connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.connect-expanded"><a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt id="link-83" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-83', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-84" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.connect()=nbxmpp.bosh.NonBlockingBOSH-class.html#connect,Method nbxmpp.client_nb.NonBlockingClient.connect()=nbxmpp.client_nb.NonBlockingClient-class.html#connect,Method nbxmpp.transports_nb.NonBlockingTCP.connect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#connect,Method nbxmpp.transports_nb.NonBlockingTransport.connect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#connect"><a title="nbxmpp.bosh.NonBlockingBOSH.connect
nbxmpp.client_nb.NonBlockingClient.connect
nbxmpp.transports_nb.NonBlockingTCP.connect
nbxmpp.transports_nb.NonBlockingTransport.connect" class="py-name" href="#" onclick="return doclink('link-84', 'connect', 'link-84');">connect</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">conn_5tuple</tt><tt class="py-op">,</tt> <tt class="py-name">on_connect</tt><tt class="py-op">,</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-name">on_connect_failure</tt><tt class="py-op">)</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt id="link-85" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-name">on_connect_failure</tt><tt class="py-op">)</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt id="link-85" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -612,53 +618,57 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-85', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'NonBlockingTCP Connect :: About to connect to %s:%s'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">conn_5tuple</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_on_connect_failure"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-86', '_on_connect_failure', 'link-86');">_on_connect_failure</a></tt><tt class="py-op">(</tt><tt class="py-string">'NonBlockingTCP Connect: Error while creating\</tt> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"><tt class="py-string"> socket: %s %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">socket</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">conn_5tuple</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_on_connect_failure"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-86', '_on_connect_failure', 'link-86');">_on_connect_failure</a></tt><tt class="py-op">(</tt><tt class="py-string">'NonBlockingTCP Connect: Error while creating\</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"><tt class="py-string"> socket: %s %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-87', 'send', 'link-81');">send</a></tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_recv</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name" targets="Method nbxmpp.tls_nb.PyOpenSSLWrapper.recv()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#recv,Method nbxmpp.tls_nb.SSLWrapper.recv()=nbxmpp.tls_nb.SSLWrapper-class.html#recv,Method nbxmpp.tls_nb.StdlibSSLWrapper.recv()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#recv"><a title="nbxmpp.tls_nb.PyOpenSSLWrapper.recv
+<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_recv</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name" targets="Method nbxmpp.tls_nb.PyOpenSSLWrapper.recv()=nbxmpp.tls_nb.PyOpenSSLWrapper-class.html#recv,Method nbxmpp.tls_nb.SSLWrapper.recv()=nbxmpp.tls_nb.SSLWrapper-class.html#recv,Method nbxmpp.tls_nb.StdlibSSLWrapper.recv()=nbxmpp.tls_nb.StdlibSSLWrapper-class.html#recv"><a title="nbxmpp.tls_nb.PyOpenSSLWrapper.recv
nbxmpp.tls_nb.SSLWrapper.recv
nbxmpp.tls_nb.StdlibSSLWrapper.recv" class="py-name" href="#" onclick="return doclink('link-88', 'recv', 'link-88');">recv</a></tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">fileno</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> </tt>
-<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-comment"># we want to be notified when send is possible to connected socket because</tt> </tt>
-<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-comment"># it means the TCP connection is estabilished</tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP._plug_idle()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_plug_idle"><a title="nbxmpp.transports_nb.NonBlockingTCP._plug_idle" class="py-name" href="#" onclick="return doclink('link-89', '_plug_idle', 'link-89');">_plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">writable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">peerhost</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-comment"># variable for errno symbol that will be found from exception raised</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-comment"># from connect()</tt> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-name">errnum</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-name">errstr</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> </tt>
-<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-comment"># set timeout for TCP connecting - if nonblocking connect() fails, pollend</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-comment"># is called. If if succeeds pollout is called.</tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-90', 'idlequeue', 'link-4');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.set_read_timeout" class="py-name" href="#" onclick="return doclink('link-91', 'set_read_timeout', 'link-64');">set_read_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt id="link-92" class="py-name"><a title="nbxmpp.transports_nb.CONNECT_TIMEOUT_SECONDS" class="py-name" href="#" onclick="return doclink('link-92', 'CONNECT_TIMEOUT_SECONDS', 'link-12');">CONNECT_TIMEOUT_SECONDS</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">setblocking</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.connect
+<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">fileno</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-comment"># we want to be notified when send is possible to connected socket because</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-comment"># it means the TCP connection is estabilished</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP._plug_idle()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_plug_idle"><a title="nbxmpp.transports_nb.NonBlockingTCP._plug_idle" class="py-name" href="#" onclick="return doclink('link-89', '_plug_idle', 'link-89');">_plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">writable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">peerhost</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-comment"># variable for errno symbol that will be found from exception raised</tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-comment"># from connect()</tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-name">errnum</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-name">errstr</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-comment"># set timeout for TCP connecting - if nonblocking connect() fails, pollend</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-comment"># is called. If if succeeds pollout is called.</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-90', 'idlequeue', 'link-4');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.set_read_timeout" class="py-name" href="#" onclick="return doclink('link-91', 'set_read_timeout', 'link-64');">set_read_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt id="link-92" class="py-name"><a title="nbxmpp.transports_nb.CONNECT_TIMEOUT_SECONDS" class="py-name" href="#" onclick="return doclink('link-92', 'CONNECT_TIMEOUT_SECONDS', 'link-12');">CONNECT_TIMEOUT_SECONDS</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">setblocking</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.connect
nbxmpp.client_nb.NonBlockingClient.connect
nbxmpp.transports_nb.NonBlockingTCP.connect
nbxmpp.transports_nb.NonBlockingTransport.connect" class="py-name" href="#" onclick="return doclink('link-93', 'connect', 'link-84');">connect</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">exc</tt><tt class="py-op">:</tt> </tt>
-<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt> <tt class="py-op">=</tt> <tt class="py-name">exc</tt><tt class="py-op">.</tt><tt class="py-name">args</tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> </tt>
-<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">errnum</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EINPROGRESS</tt><tt class="py-op">,</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EALREADY</tt><tt class="py-op">,</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EWOULDBLOCK</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-comment"># connecting in progress</tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt id="link-94" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">exc</tt><tt class="py-op">:</tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">exc</tt><tt class="py-op">.</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">tuple</tt><tt class="py-op">:</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt> <tt class="py-op">=</tt> <tt class="py-name">exc</tt><tt class="py-op">.</tt><tt class="py-name">args</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-name">errnum</tt> <tt class="py-op">=</tt> <tt class="py-string">'unknown'</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-name">errstr</tt> <tt class="py-op">=</tt> <tt class="py-name">exc</tt><tt class="py-op">.</tt><tt class="py-name">args</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">errnum</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EINPROGRESS</tt><tt class="py-op">,</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EALREADY</tt><tt class="py-op">,</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EWOULDBLOCK</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-comment"># connecting in progress</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt id="link-94" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -670,84 +680,84 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-94', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'After NB connect() of %s. "%s" raised =&gt; CONNECTING'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTransport._tcp_connecting_started()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_tcp_connecting_started"><a title="nbxmpp.transports_nb.NonBlockingTransport._tcp_connecting_started" class="py-name" href="#" onclick="return doclink('link-95', '_tcp_connecting_started', 'link-95');">_tcp_connecting_started</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-comment"># if there was some other exception, call failure callback and unplug</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-comment"># transport which will also remove read_timeouts for descriptor</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-96', '_on_connect_failure', 'link-86');">_on_connect_failure</a></tt><tt class="py-op">(</tt><tt class="py-string">'Exception while connecting to %s:%s - %s %s'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">port</tt><tt class="py-op">,</tt> <tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP._connect_to_proxy"></a><div id="NonBlockingTCP._connect_to_proxy-def"><a name="L368"></a><tt class="py-lineno">368</tt> <a class="py-toggle" href="#" id="NonBlockingTCP._connect_to_proxy-toggle" onclick="return toggle('NonBlockingTCP._connect_to_proxy');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#_connect_to_proxy">_connect_to_proxy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP._connect_to_proxy-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP._connect_to_proxy-expanded"><a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.set_state" class="py-name" href="#" onclick="return doclink('link-97', 'set_state', 'link-35');">set_state</a></tt><tt class="py-op">(</tt><tt id="link-98" class="py-name"><a title="nbxmpp.transports_nb.PROXY_CONNECTING" class="py-name" href="#" onclick="return doclink('link-98', 'PROXY_CONNECTING', 'link-21');">PROXY_CONNECTING</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'socks5'</tt><tt class="py-op">:</tt> </tt>
-<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">proxyclass</tt> <tt class="py-op">=</tt> <tt id="link-99" class="py-name"><a title="nbxmpp.proxy_connectors" class="py-name" href="#" onclick="return doclink('link-99', 'proxy_connectors', 'link-6');">proxy_connectors</a></tt><tt class="py-op">.</tt><tt id="link-100" class="py-name" targets="Class nbxmpp.proxy_connectors.SOCKS5Connector=nbxmpp.proxy_connectors.SOCKS5Connector-class.html"><a title="nbxmpp.proxy_connectors.SOCKS5Connector" class="py-name" href="#" onclick="return doclink('link-100', 'SOCKS5Connector', 'link-100');">SOCKS5Connector</a></tt> </tt>
-<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'http'</tt> <tt class="py-op">:</tt> </tt>
-<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">proxyclass</tt> <tt class="py-op">=</tt> <tt id="link-101" class="py-name"><a title="nbxmpp.proxy_connectors" class="py-name" href="#" onclick="return doclink('link-101', 'proxy_connectors', 'link-6');">proxy_connectors</a></tt><tt class="py-op">.</tt><tt id="link-102" class="py-name" targets="Class nbxmpp.proxy_connectors.HTTPCONNECTConnector=nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html"><a title="nbxmpp.proxy_connectors.HTTPCONNECTConnector" class="py-name" href="#" onclick="return doclink('link-102', 'HTTPCONNECTConnector', 'link-102');">HTTPCONNECTConnector</a></tt> </tt>
-<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-name">proxyclass</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name" targets="Class Method nbxmpp.dispatcher_nb.Dispatcher.get_instance()=nbxmpp.dispatcher_nb.Dispatcher-class.html#get_instance,Class Method nbxmpp.plugin.PlugIn.get_instance()=nbxmpp.plugin.PlugIn-class.html#get_instance,Class Method nbxmpp.proxy_connectors.ProxyConnector.get_instance()=nbxmpp.proxy_connectors.ProxyConnector-class.html#get_instance"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
+<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTransport._tcp_connecting_started()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_tcp_connecting_started"><a title="nbxmpp.transports_nb.NonBlockingTransport._tcp_connecting_started" class="py-name" href="#" onclick="return doclink('link-95', '_tcp_connecting_started', 'link-95');">_tcp_connecting_started</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-comment"># if there was some other exception, call failure callback and unplug</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-comment"># transport which will also remove read_timeouts for descriptor</tt> </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-96', '_on_connect_failure', 'link-86');">_on_connect_failure</a></tt><tt class="py-op">(</tt><tt class="py-string">'Exception while connecting to %s:%s - %s %s'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">port</tt><tt class="py-op">,</tt> <tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP._connect_to_proxy"></a><div id="NonBlockingTCP._connect_to_proxy-def"><a name="L378"></a><tt class="py-lineno">378</tt> <a class="py-toggle" href="#" id="NonBlockingTCP._connect_to_proxy-toggle" onclick="return toggle('NonBlockingTCP._connect_to_proxy');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#_connect_to_proxy">_connect_to_proxy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP._connect_to_proxy-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP._connect_to_proxy-expanded"><a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.set_state" class="py-name" href="#" onclick="return doclink('link-97', 'set_state', 'link-35');">set_state</a></tt><tt class="py-op">(</tt><tt id="link-98" class="py-name"><a title="nbxmpp.transports_nb.PROXY_CONNECTING" class="py-name" href="#" onclick="return doclink('link-98', 'PROXY_CONNECTING', 'link-21');">PROXY_CONNECTING</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'socks5'</tt><tt class="py-op">:</tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt class="py-name">proxyclass</tt> <tt class="py-op">=</tt> <tt id="link-99" class="py-name"><a title="nbxmpp.proxy_connectors" class="py-name" href="#" onclick="return doclink('link-99', 'proxy_connectors', 'link-6');">proxy_connectors</a></tt><tt class="py-op">.</tt><tt id="link-100" class="py-name" targets="Class nbxmpp.proxy_connectors.SOCKS5Connector=nbxmpp.proxy_connectors.SOCKS5Connector-class.html"><a title="nbxmpp.proxy_connectors.SOCKS5Connector" class="py-name" href="#" onclick="return doclink('link-100', 'SOCKS5Connector', 'link-100');">SOCKS5Connector</a></tt> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'http'</tt> <tt class="py-op">:</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-name">proxyclass</tt> <tt class="py-op">=</tt> <tt id="link-101" class="py-name"><a title="nbxmpp.proxy_connectors" class="py-name" href="#" onclick="return doclink('link-101', 'proxy_connectors', 'link-6');">proxy_connectors</a></tt><tt class="py-op">.</tt><tt id="link-102" class="py-name" targets="Class nbxmpp.proxy_connectors.HTTPCONNECTConnector=nbxmpp.proxy_connectors.HTTPCONNECTConnector-class.html"><a title="nbxmpp.proxy_connectors.HTTPCONNECTConnector" class="py-name" href="#" onclick="return doclink('link-102', 'HTTPCONNECTConnector', 'link-102');">HTTPCONNECTConnector</a></tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-name">proxyclass</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name" targets="Class Method nbxmpp.dispatcher_nb.Dispatcher.get_instance()=nbxmpp.dispatcher_nb.Dispatcher-class.html#get_instance,Class Method nbxmpp.plugin.PlugIn.get_instance()=nbxmpp.plugin.PlugIn-class.html#get_instance,Class Method nbxmpp.proxy_connectors.ProxyConnector.get_instance()=nbxmpp.proxy_connectors.ProxyConnector-class.html#get_instance"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
nbxmpp.plugin.PlugIn.get_instance
nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-103', 'get_instance', 'link-103');">get_instance</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-name">send_method</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-name">send_method</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-104', 'send', 'link-81');">send</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt id="link-105" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
+<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt id="link-105" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-105', 'onreceive', 'link-37');">onreceive</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.onreceive
nbxmpp.transports_nb.NonBlockingTransport.onreceive" class="py-name" href="#" onclick="return doclink('link-106', 'onreceive', 'link-37');">onreceive</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-name">old_on_receive</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_receive</tt><tt class="py-op">,</tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-name">on_success</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH._on_connect()=nbxmpp.bosh.NonBlockingBOSH-class.html#_on_connect,Method nbxmpp.client_nb.NonBlockingClient._on_connect()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_connect,Method nbxmpp.transports_nb.NonBlockingTCP._on_connect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_on_connect,Method nbxmpp.transports_nb.NonBlockingTransport._on_connect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_on_connect"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
+<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-name">old_on_receive</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_receive</tt><tt class="py-op">,</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-name">on_success</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH._on_connect()=nbxmpp.bosh.NonBlockingBOSH-class.html#_on_connect,Method nbxmpp.client_nb.NonBlockingClient._on_connect()=nbxmpp.client_nb.NonBlockingClient-class.html#_on_connect,Method nbxmpp.transports_nb.NonBlockingTCP._on_connect()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_on_connect,Method nbxmpp.transports_nb.NonBlockingTransport._on_connect()=nbxmpp.transports_nb.NonBlockingTransport-class.html#_on_connect"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
nbxmpp.client_nb.NonBlockingClient._on_connect
nbxmpp.transports_nb.NonBlockingTCP._on_connect
nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-107', '_on_connect', 'link-107');">_on_connect</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-name">on_failure</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-108', '_on_connect_failure', 'link-86');">_on_connect_failure</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-name">xmpp_server</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'xmpp_server'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt class="py-name">proxy_creds</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'credentials'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP._on_connect"></a><div id="NonBlockingTCP._on_connect-def"><a name="L383"></a><tt class="py-lineno">383</tt> <a class="py-toggle" href="#" id="NonBlockingTCP._on_connect-toggle" onclick="return toggle('NonBlockingTCP._on_connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#_on_connect">_on_connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP._on_connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP._on_connect-expanded"><a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"><tt class="py-docstring"> Preceed invoking of on_connect callback. TCP connection is already</tt> </tt>
-<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"><tt class="py-docstring"> estabilished by this time</tt> </tt>
-<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">estabilish_tls</tt><tt class="py-op">:</tt> </tt>
-<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP.tls_init()=nbxmpp.transports_nb.NonBlockingTCP-class.html#tls_init"><a title="nbxmpp.transports_nb.NonBlockingTCP.tls_init" class="py-name" href="#" onclick="return doclink('link-109', 'tls_init', 'link-109');">tls_init</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-name">on_succ</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt><tt class="py-op">:</tt> <tt id="link-110" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-110', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
+<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-name">on_failure</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-108', '_on_connect_failure', 'link-86');">_on_connect_failure</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-name">xmpp_server</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'xmpp_server'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">proxy_creds</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">[</tt><tt class="py-string">'credentials'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP._on_connect"></a><div id="NonBlockingTCP._on_connect-def"><a name="L393"></a><tt class="py-lineno">393</tt> <a class="py-toggle" href="#" id="NonBlockingTCP._on_connect-toggle" onclick="return toggle('NonBlockingTCP._on_connect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#_on_connect">_on_connect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP._on_connect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP._on_connect-expanded"><a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"><tt class="py-docstring"> Preceed invoking of on_connect callback. TCP connection is already</tt> </tt>
+<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"><tt class="py-docstring"> estabilished by this time</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">estabilish_tls</tt><tt class="py-op">:</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP.tls_init()=nbxmpp.transports_nb.NonBlockingTCP-class.html#tls_init"><a title="nbxmpp.transports_nb.NonBlockingTCP.tls_init" class="py-name" href="#" onclick="return doclink('link-109', 'tls_init', 'link-109');">tls_init</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-name">on_succ</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt><tt class="py-op">:</tt> <tt id="link-110" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-110', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
nbxmpp.client_nb.NonBlockingClient._on_connect
nbxmpp.transports_nb.NonBlockingTCP._on_connect
nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-111', '_on_connect', 'link-107');">_on_connect</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">on_fail</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-112', '_on_connect_failure', 'link-86');">_on_connect_failure</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-string">'error while estabilishing TLS'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt id="link-113" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-113', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
+<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-name">on_fail</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-112', '_on_connect_failure', 'link-86');">_on_connect_failure</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-string">'error while estabilishing TLS'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt id="link-113" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-113', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
nbxmpp.client_nb.NonBlockingClient._on_connect
nbxmpp.transports_nb.NonBlockingTCP._on_connect
nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-114', '_on_connect', 'link-107');">_on_connect</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP.tls_init"></a><div id="NonBlockingTCP.tls_init-def"><a name="L396"></a><tt class="py-lineno">396</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.tls_init-toggle" onclick="return toggle('NonBlockingTCP.tls_init');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#tls_init">tls_init</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">on_succ</tt><tt class="py-op">,</tt> <tt class="py-param">on_fail</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP.tls_init-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.tls_init-expanded"><a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"><tt class="py-docstring"> Estabilishes TLS/SSL using this TCP connection by plugging a</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"><tt class="py-docstring"> NonBlockingTLS module</tt> </tt>
-<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-name">cacerts</tt><tt class="py-op">,</tt> <tt class="py-name">mycerts</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">certs</tt> </tt>
-<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-115" class="py-name"><a title="nbxmpp.tls_nb" class="py-name" href="#" onclick="return doclink('link-115', 'tls_nb', 'link-7');">tls_nb</a></tt><tt class="py-op">.</tt><tt id="link-116" class="py-name" targets="Class nbxmpp.tls_nb.NonBlockingTLS=nbxmpp.tls_nb.NonBlockingTLS-class.html"><a title="nbxmpp.tls_nb.NonBlockingTLS" class="py-name" href="#" onclick="return doclink('link-116', 'NonBlockingTLS', 'link-116');">NonBlockingTLS</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
+</div><a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP.tls_init"></a><div id="NonBlockingTCP.tls_init-def"><a name="L406"></a><tt class="py-lineno">406</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.tls_init-toggle" onclick="return toggle('NonBlockingTCP.tls_init');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#tls_init">tls_init</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">on_succ</tt><tt class="py-op">,</tt> <tt class="py-param">on_fail</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP.tls_init-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.tls_init-expanded"><a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"><tt class="py-docstring"> Estabilishes TLS/SSL using this TCP connection by plugging a</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"><tt class="py-docstring"> NonBlockingTLS module</tt> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">cacerts</tt><tt class="py-op">,</tt> <tt class="py-name">mycerts</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">certs</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-115" class="py-name"><a title="nbxmpp.tls_nb" class="py-name" href="#" onclick="return doclink('link-115', 'tls_nb', 'link-7');">tls_nb</a></tt><tt class="py-op">.</tt><tt id="link-116" class="py-name" targets="Class nbxmpp.tls_nb.NonBlockingTLS=nbxmpp.tls_nb.NonBlockingTLS-class.html"><a title="nbxmpp.tls_nb.NonBlockingTLS" class="py-name" href="#" onclick="return doclink('link-116', 'NonBlockingTLS', 'link-116');">NonBlockingTLS</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="nbxmpp.dispatcher_nb.Dispatcher.get_instance
nbxmpp.plugin.PlugIn.get_instance
nbxmpp.proxy_connectors.ProxyConnector.get_instance" class="py-name" href="#" onclick="return doclink('link-117', 'get_instance', 'link-103');">get_instance</a></tt><tt class="py-op">(</tt><tt class="py-name">cacerts</tt><tt class="py-op">,</tt> <tt class="py-name">mycerts</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="nbxmpp.dispatcher_nb.BOSHDispatcher.PlugIn
nbxmpp.dispatcher_nb.Dispatcher.PlugIn
nbxmpp.plugin.PlugIn
nbxmpp.plugin.PlugIn.PlugIn" class="py-name" href="#" onclick="return doclink('link-118', 'PlugIn', 'link-3');">PlugIn</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">result</tt><tt class="py-op">:</tt> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-name">on_succ</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-name">on_fail</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP.pollin"></a><div id="NonBlockingTCP.pollin-def"><a name="L408"></a><tt class="py-lineno">408</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.pollin-toggle" onclick="return toggle('NonBlockingTCP.pollin');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#pollin">pollin</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP.pollin-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.pollin-expanded"><a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"><tt class="py-docstring"> Called by idlequeu when receive on plugged socket is possible</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt id="link-119" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">result</tt><tt class="py-op">:</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-name">on_succ</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-name">on_fail</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP.pollin"></a><div id="NonBlockingTCP.pollin-def"><a name="L418"></a><tt class="py-lineno">418</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.pollin-toggle" onclick="return toggle('NonBlockingTCP.pollin');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#pollin">pollin</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP.pollin-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.pollin-expanded"><a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"><tt class="py-docstring"> Called by idlequeu when receive on plugged socket is possible</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt id="link-119" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -759,13 +769,13 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-119', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'pollin called, state == %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-120', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP._do_receive()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_do_receive"><a title="nbxmpp.transports_nb.NonBlockingTCP._do_receive" class="py-name" href="#" onclick="return doclink('link-121', '_do_receive', 'link-121');">_do_receive</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP.pollout"></a><div id="NonBlockingTCP.pollout-def"><a name="L415"></a><tt class="py-lineno">415</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.pollout-toggle" onclick="return toggle('NonBlockingTCP.pollout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#pollout">pollout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP.pollout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.pollout-expanded"><a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"><tt class="py-docstring"> Called by idlequeu when send to plugged socket is possible</tt> </tt>
-<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt id="link-122" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP._do_receive()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_do_receive"><a title="nbxmpp.transports_nb.NonBlockingTCP._do_receive" class="py-name" href="#" onclick="return doclink('link-121', '_do_receive', 'link-121');">_do_receive</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP.pollout"></a><div id="NonBlockingTCP.pollout-def"><a name="L425"></a><tt class="py-lineno">425</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.pollout-toggle" onclick="return toggle('NonBlockingTCP.pollout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#pollout">pollout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP.pollout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.pollout-expanded"><a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"><tt class="py-docstring"> Called by idlequeu when send to plugged socket is possible</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt id="link-122" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -777,9 +787,9 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-122', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'pollout called, state == %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-123', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> </tt>
-<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-124', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-125" class="py-name"><a title="nbxmpp.transports_nb.CONNECTING" class="py-name" href="#" onclick="return doclink('link-125', 'CONNECTING', 'link-20');">CONNECTING</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt id="link-126" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-124', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-125" class="py-name"><a title="nbxmpp.transports_nb.CONNECTING" class="py-name" href="#" onclick="return doclink('link-125', 'CONNECTING', 'link-20');">CONNECTING</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt id="link-126" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -791,27 +801,27 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-126', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'%s socket wrapper connected'</tt> <tt class="py-op">%</tt> <tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-127', 'idlequeue', 'link-4');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
+<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-127', 'idlequeue', 'link-4');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
nbxmpp.transports_nb.NonBlockingTCP.remove_timeout
nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="#" onclick="return doclink('link-128', 'remove_timeout', 'link-41');">remove_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
-<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP._plug_idle" class="py-name" href="#" onclick="return doclink('link-129', '_plug_idle', 'link-89');">_plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">writable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">peerhost</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">getsockname</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">:</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP._connect_to_proxy()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_connect_to_proxy"><a title="nbxmpp.transports_nb.NonBlockingTCP._connect_to_proxy" class="py-name" href="#" onclick="return doclink('link-130', '_connect_to_proxy', 'link-130');">_connect_to_proxy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
+<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP._plug_idle" class="py-name" href="#" onclick="return doclink('link-129', '_plug_idle', 'link-89');">_plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">writable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">peerhost</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">getsockname</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_dict</tt><tt class="py-op">:</tt> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP._connect_to_proxy()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_connect_to_proxy"><a title="nbxmpp.transports_nb.NonBlockingTCP._connect_to_proxy" class="py-name" href="#" onclick="return doclink('link-130', '_connect_to_proxy', 'link-130');">_connect_to_proxy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH._on_connect
nbxmpp.client_nb.NonBlockingClient._on_connect
nbxmpp.transports_nb.NonBlockingTCP._on_connect
nbxmpp.transports_nb.NonBlockingTransport._on_connect" class="py-name" href="#" onclick="return doclink('link-131', '_on_connect', 'link-107');">_on_connect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingHTTPBOSH._do_send()=nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html#_do_send,Method nbxmpp.transports_nb.NonBlockingTCP._do_send()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_do_send"><a title="nbxmpp.transports_nb.NonBlockingHTTPBOSH._do_send
+<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingHTTPBOSH._do_send()=nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html#_do_send,Method nbxmpp.transports_nb.NonBlockingTCP._do_send()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_do_send"><a title="nbxmpp.transports_nb.NonBlockingHTTPBOSH._do_send
nbxmpp.transports_nb.NonBlockingTCP._do_send" class="py-name" href="#" onclick="return doclink('link-132', '_do_send', 'link-132');">_do_send</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP.pollend"></a><div id="NonBlockingTCP.pollend-def"><a name="L433"></a><tt class="py-lineno">433</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.pollend-toggle" onclick="return toggle('NonBlockingTCP.pollend');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#pollend">pollend</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP.pollend-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.pollend-expanded"><a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"><tt class="py-docstring"> Called by idlequeue on TCP connection errors</tt> </tt>
-<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt id="link-133" class="py-name"><a title="nbxmpp.auth_nb.log
+</div><a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP.pollend"></a><div id="NonBlockingTCP.pollend-def"><a name="L443"></a><tt class="py-lineno">443</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.pollend-toggle" onclick="return toggle('NonBlockingTCP.pollend');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#pollend">pollend</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP.pollend-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.pollend-expanded"><a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"><tt class="py-docstring"> Called by idlequeue on TCP connection errors</tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt id="link-133" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -823,28 +833,28 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-133', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'pollend called, state == %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-134', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> </tt>
-<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-135', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-136" class="py-name"><a title="nbxmpp.transports_nb.CONNECTING" class="py-name" href="#" onclick="return doclink('link-136', 'CONNECTING', 'link-20');">CONNECTING</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-137', '_on_connect_failure', 'link-86');">_on_connect_failure</a></tt><tt class="py-op">(</tt><tt class="py-string">'Error during connect to %s:%s'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-135', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-136" class="py-name"><a title="nbxmpp.transports_nb.CONNECTING" class="py-name" href="#" onclick="return doclink('link-136', 'CONNECTING', 'link-20');">CONNECTING</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-137', '_on_connect_failure', 'link-86');">_on_connect_failure</a></tt><tt class="py-op">(</tt><tt class="py-string">'Error during connect to %s:%s'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-138', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP.disconnect"></a><div id="NonBlockingTCP.disconnect-def"><a name="L445"></a><tt class="py-lineno">445</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.disconnect-toggle" onclick="return toggle('NonBlockingTCP.disconnect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#disconnect">disconnect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">do_callback</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP.disconnect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.disconnect-expanded"><a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-139', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-140" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-140', 'DISCONNECTED', 'link-18');">DISCONNECTED</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.set_state" class="py-name" href="#" onclick="return doclink('link-141', 'set_state', 'link-35');">set_state</a></tt><tt class="py-op">(</tt><tt id="link-142" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-142', 'DISCONNECTED', 'link-18');">DISCONNECTED</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-143', 'idlequeue', 'link-4');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-144" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.unplug_idle()=nbxmpp.idlequeue.IdleQueue-class.html#unplug_idle"><a title="nbxmpp.idlequeue.IdleQueue.unplug_idle" class="py-name" href="#" onclick="return doclink('link-144', 'unplug_idle', 'link-144');">unplug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
-<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingTLS'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
-<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="nbxmpp.tls_nb.NonBlockingTLS" class="py-name" href="#" onclick="return doclink('link-145', 'NonBlockingTLS', 'link-116');">NonBlockingTLS</a></tt><tt class="py-op">.</tt><tt id="link-146" class="py-name" targets="Method nbxmpp.plugin.PlugIn.PlugOut()=nbxmpp.plugin.PlugIn-class.html#PlugOut"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-146', 'PlugOut', 'link-146');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">shutdown</tt><tt class="py-op">(</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SHUT_RDWR</tt><tt class="py-op">)</tt> </tt>
-<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt id="link-147" class="py-name"><a title="nbxmpp.auth_nb.log
+</div><a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP.disconnect"></a><div id="NonBlockingTCP.disconnect-def"><a name="L455"></a><tt class="py-lineno">455</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.disconnect-toggle" onclick="return toggle('NonBlockingTCP.disconnect');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#disconnect">disconnect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">do_callback</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP.disconnect-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.disconnect-expanded"><a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-139', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-140" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-140', 'DISCONNECTED', 'link-18');">DISCONNECTED</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.set_state" class="py-name" href="#" onclick="return doclink('link-141', 'set_state', 'link-35');">set_state</a></tt><tt class="py-op">(</tt><tt id="link-142" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-142', 'DISCONNECTED', 'link-18');">DISCONNECTED</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-143', 'idlequeue', 'link-4');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-144" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.unplug_idle()=nbxmpp.idlequeue.IdleQueue-class.html#unplug_idle"><a title="nbxmpp.idlequeue.IdleQueue.unplug_idle" class="py-name" href="#" onclick="return doclink('link-144', 'unplug_idle', 'link-144');">unplug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'NonBlockingTLS'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">:</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="nbxmpp.tls_nb.NonBlockingTLS" class="py-name" href="#" onclick="return doclink('link-145', 'NonBlockingTLS', 'link-116');">NonBlockingTLS</a></tt><tt class="py-op">.</tt><tt id="link-146" class="py-name" targets="Method nbxmpp.plugin.PlugIn.PlugOut()=nbxmpp.plugin.PlugIn-class.html#PlugOut"><a title="nbxmpp.plugin.PlugIn.PlugOut" class="py-name" href="#" onclick="return doclink('link-146', 'PlugOut', 'link-146');">PlugOut</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">shutdown</tt><tt class="py-op">(</tt><tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">SHUT_RDWR</tt><tt class="py-op">)</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sock</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt id="link-147" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -856,14 +866,14 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-147', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Error while disconnecting socket: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt> </tt>
-<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
-<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt id="link-148" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-148', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> <tt id="link-148" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-148', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-149', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">do_callback</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP.read_timeout"></a><div id="NonBlockingTCP.read_timeout-def"><a name="L460"></a><tt class="py-lineno">460</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.read_timeout-toggle" onclick="return toggle('NonBlockingTCP.read_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#read_timeout">read_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP.read_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.read_timeout-expanded"><a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt id="link-150" class="py-name"><a title="nbxmpp.auth_nb.log
+</div><a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP.read_timeout"></a><div id="NonBlockingTCP.read_timeout-def"><a name="L470"></a><tt class="py-lineno">470</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.read_timeout-toggle" onclick="return toggle('NonBlockingTCP.read_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#read_timeout">read_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP.read_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.read_timeout-expanded"><a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt id="link-150" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -875,24 +885,24 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-150', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'read_timeout called, state == %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-151', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-152', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-153" class="py-name"><a title="nbxmpp.transports_nb.CONNECTING" class="py-name" href="#" onclick="return doclink('link-153', 'CONNECTING', 'link-20');">CONNECTING</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-comment"># if read_timeout is called during connecting, connect() didn't end yet</tt> </tt>
-<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-comment"># thus we have to call the tcp failure callback</tt> </tt>
-<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-154', '_on_connect_failure', 'link-86');">_on_connect_failure</a></tt><tt class="py-op">(</tt><tt class="py-string">'Error during connect to %s:%s'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> <tt id="link-155" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-155', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-156" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand.read_timeout()=nbxmpp.idlequeue.IdleCommand-class.html#read_timeout,Method nbxmpp.idlequeue.IdleObject.read_timeout()=nbxmpp.idlequeue.IdleObject-class.html#read_timeout,Method nbxmpp.transports_nb.NonBlockingTCP.read_timeout()=nbxmpp.transports_nb.NonBlockingTCP-class.html#read_timeout,Method nbxmpp.transports_nb.NonBlockingTransport.read_timeout()=nbxmpp.transports_nb.NonBlockingTransport-class.html#read_timeout"><a title="nbxmpp.idlequeue.IdleCommand.read_timeout
+<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-152', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-153" class="py-name"><a title="nbxmpp.transports_nb.CONNECTING" class="py-name" href="#" onclick="return doclink('link-153', 'CONNECTING', 'link-20');">CONNECTING</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-comment"># if read_timeout is called during connecting, connect() didn't end yet</tt> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt class="py-comment"># thus we have to call the tcp failure callback</tt> </tt>
+<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport._on_connect_failure" class="py-name" href="#" onclick="return doclink('link-154', '_on_connect_failure', 'link-86');">_on_connect_failure</a></tt><tt class="py-op">(</tt><tt class="py-string">'Error during connect to %s:%s'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">port</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> <tt id="link-155" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-155', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-156" class="py-name" targets="Method nbxmpp.idlequeue.IdleCommand.read_timeout()=nbxmpp.idlequeue.IdleCommand-class.html#read_timeout,Method nbxmpp.idlequeue.IdleObject.read_timeout()=nbxmpp.idlequeue.IdleObject-class.html#read_timeout,Method nbxmpp.transports_nb.NonBlockingTCP.read_timeout()=nbxmpp.transports_nb.NonBlockingTCP-class.html#read_timeout,Method nbxmpp.transports_nb.NonBlockingTransport.read_timeout()=nbxmpp.transports_nb.NonBlockingTransport-class.html#read_timeout"><a title="nbxmpp.idlequeue.IdleCommand.read_timeout
nbxmpp.idlequeue.IdleObject.read_timeout
nbxmpp.transports_nb.NonBlockingTCP.read_timeout
nbxmpp.transports_nb.NonBlockingTransport.read_timeout" class="py-name" href="#" onclick="return doclink('link-156', 'read_timeout', 'link-156');">read_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP.set_timeout"></a><div id="NonBlockingTCP.set_timeout-def"><a name="L470"></a><tt class="py-lineno">470</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.set_timeout-toggle" onclick="return toggle('NonBlockingTCP.set_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#set_timeout">set_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP.set_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.set_timeout-expanded"><a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-157', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt id="link-158" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-158', 'DISCONNECTED', 'link-18');">DISCONNECTED</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">!=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt id="link-159" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-159', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.set_timeout
+</div><a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP.set_timeout"></a><div id="NonBlockingTCP.set_timeout-def"><a name="L480"></a><tt class="py-lineno">480</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.set_timeout-toggle" onclick="return toggle('NonBlockingTCP.set_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#set_timeout">set_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP.set_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.set_timeout-expanded"><a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-157', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt id="link-158" class="py-name"><a title="nbxmpp.transports_nb.DISCONNECTED" class="py-name" href="#" onclick="return doclink('link-158', 'DISCONNECTED', 'link-18');">DISCONNECTED</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt> <tt class="py-op">!=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt id="link-159" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-159', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.set_timeout
nbxmpp.transports_nb.NonBlockingTCP.set_timeout
nbxmpp.transports_nb.NonBlockingTransport.set_timeout" class="py-name" href="#" onclick="return doclink('link-160', 'set_timeout', 'link-40');">set_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
-<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt id="link-161" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt id="link-161" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -904,15 +914,15 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-161', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'set_timeout: TIMEOUT NOT SET: state is %s, fd is %s'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-162', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP.remove_timeout"></a><div id="NonBlockingTCP.remove_timeout-def"><a name="L477"></a><tt class="py-lineno">477</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.remove_timeout-toggle" onclick="return toggle('NonBlockingTCP.remove_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#remove_timeout">remove_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP.remove_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.remove_timeout-expanded"><a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">:</tt> </tt>
-<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt id="link-163" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-163', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
+<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-162', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP.remove_timeout"></a><div id="NonBlockingTCP.remove_timeout-def"><a name="L487"></a><tt class="py-lineno">487</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.remove_timeout-toggle" onclick="return toggle('NonBlockingTCP.remove_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#remove_timeout">remove_timeout</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP.remove_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.remove_timeout-expanded"><a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">:</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> <tt id="link-163" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-163', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
nbxmpp.transports_nb.NonBlockingTCP.remove_timeout
nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="#" onclick="return doclink('link-164', 'remove_timeout', 'link-41');">remove_timeout</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt id="link-165" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> <tt id="link-165" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -924,53 +934,53 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-165', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'remove_timeout: no self.fd state is %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-166', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP.send"></a><div id="NonBlockingTCP.send-def"><a name="L483"></a><tt class="py-lineno">483</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.send-toggle" onclick="return toggle('NonBlockingTCP.send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#send">send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">raw_data</tt><tt class="py-op">,</tt> <tt class="py-param">now</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP.send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.send-expanded"><a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"><tt class="py-docstring"> Append raw_data to the queue of messages to be send. If supplied data is</tt> </tt>
-<a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"><tt class="py-docstring"> unicode string, encode it to utf-8.</tt> </tt>
-<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt id="link-167" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-167', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+</div><a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP.send"></a><div id="NonBlockingTCP.send-def"><a name="L493"></a><tt class="py-lineno">493</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.send-toggle" onclick="return toggle('NonBlockingTCP.send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#send">send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">raw_data</tt><tt class="py-op">,</tt> <tt class="py-param">now</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP.send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.send-expanded"><a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"><tt class="py-docstring"> Append raw_data to the queue of messages to be send. If supplied data is</tt> </tt>
+<a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"><tt class="py-docstring"> unicode string, encode it to utf-8.</tt> </tt>
+<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt id="link-167" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport" class="py-name" href="#" onclick="return doclink('link-167', 'NonBlockingTransport', 'link-72');">NonBlockingTransport</a></tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-168', 'send', 'link-81');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">raw_data</tt><tt class="py-op">,</tt> <tt class="py-name">now</tt><tt class="py-op">)</tt> </tt>
-<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> </tt>
-<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP.encode_stanza()=nbxmpp.transports_nb.NonBlockingTCP-class.html#encode_stanza"><a title="nbxmpp.transports_nb.NonBlockingTCP.encode_stanza" class="py-name" href="#" onclick="return doclink('link-169', 'encode_stanza', 'link-169');">encode_stanza</a></tt><tt class="py-op">(</tt><tt class="py-name">raw_data</tt><tt class="py-op">)</tt> </tt>
-<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> </tt>
-<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">now</tt><tt class="py-op">:</tt> </tt>
-<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendqueue</tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingHTTPBOSH._do_send
+<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"> <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingTCP.encode_stanza()=nbxmpp.transports_nb.NonBlockingTCP-class.html#encode_stanza"><a title="nbxmpp.transports_nb.NonBlockingTCP.encode_stanza" class="py-name" href="#" onclick="return doclink('link-169', 'encode_stanza', 'link-169');">encode_stanza</a></tt><tt class="py-op">(</tt><tt class="py-name">raw_data</tt><tt class="py-op">)</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">now</tt><tt class="py-op">:</tt> </tt>
+<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendqueue</tt><tt class="py-op">.</tt><tt class="py-name">insert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingHTTPBOSH._do_send
nbxmpp.transports_nb.NonBlockingTCP._do_send" class="py-name" href="#" onclick="return doclink('link-170', '_do_send', 'link-132');">_do_send</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendqueue</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> </tt>
-<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP._plug_idle" class="py-name" href="#" onclick="return doclink('link-171', '_plug_idle', 'link-89');">_plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">writable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP.encode_stanza"></a><div id="NonBlockingTCP.encode_stanza-def"><a name="L500"></a><tt class="py-lineno">500</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.encode_stanza-toggle" onclick="return toggle('NonBlockingTCP.encode_stanza');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#encode_stanza">encode_stanza</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP.encode_stanza-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.encode_stanza-expanded"><a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"><tt class="py-docstring"> Encode str or unicode to utf-8</tt> </tt>
-<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt id="link-172" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-172', 'ustr', 'link-1');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">stanza</tt> </tt>
+<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendqueue</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"> </tt>
+<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP._plug_idle" class="py-name" href="#" onclick="return doclink('link-171', '_plug_idle', 'link-89');">_plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">writable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
</div><a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP._plug_idle"></a><div id="NonBlockingTCP._plug_idle-def"><a name="L510"></a><tt class="py-lineno">510</tt> <a class="py-toggle" href="#" id="NonBlockingTCP._plug_idle-toggle" onclick="return toggle('NonBlockingTCP._plug_idle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#_plug_idle">_plug_idle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">writable</tt><tt class="py-op">,</tt> <tt class="py-param">readable</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP._plug_idle-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP._plug_idle-expanded"><a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"><tt class="py-docstring"> Plug file descriptor of socket to Idlequeue</tt> </tt>
-<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"><tt class="py-docstring"> Plugged socket will be watched for "send possible" or/and "recv possible"</tt> </tt>
-<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"><tt class="py-docstring"> events. pollin() callback is invoked on "recv possible", pollout() on</tt> </tt>
-<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"><tt class="py-docstring"> "send_possible".</tt> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"><tt class="py-docstring"> Plugged socket will always be watched for "error" event - in that case,</tt> </tt>
-<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"><tt class="py-docstring"> pollend() is called.</tt> </tt>
-<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt id="link-173" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="NonBlockingTCP.encode_stanza"></a><div id="NonBlockingTCP.encode_stanza-def"><a name="L510"></a><tt class="py-lineno">510</tt> <a class="py-toggle" href="#" id="NonBlockingTCP.encode_stanza-toggle" onclick="return toggle('NonBlockingTCP.encode_stanza');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#encode_stanza">encode_stanza</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">stanza</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP.encode_stanza-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP.encode_stanza-expanded"><a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"><tt class="py-docstring"> Encode str or unicode to utf-8</tt> </tt>
+<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt id="link-172" class="py-name"><a title="nbxmpp.simplexml.ustr" class="py-name" href="#" onclick="return doclink('link-172', 'ustr', 'link-1');">ustr</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">stanza</tt> </tt>
+</div><a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP._plug_idle"></a><div id="NonBlockingTCP._plug_idle-def"><a name="L520"></a><tt class="py-lineno">520</tt> <a class="py-toggle" href="#" id="NonBlockingTCP._plug_idle-toggle" onclick="return toggle('NonBlockingTCP._plug_idle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#_plug_idle">_plug_idle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">writable</tt><tt class="py-op">,</tt> <tt class="py-param">readable</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP._plug_idle-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP._plug_idle-expanded"><a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"><tt class="py-docstring"> Plug file descriptor of socket to Idlequeue</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"><tt class="py-docstring"> Plugged socket will be watched for "send possible" or/and "recv possible"</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"><tt class="py-docstring"> events. pollin() callback is invoked on "recv possible", pollout() on</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"><tt class="py-docstring"> "send_possible".</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"><tt class="py-docstring"> Plugged socket will always be watched for "error" event - in that case,</tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"><tt class="py-docstring"> pollend() is called.</tt> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> <tt id="link-173" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -982,16 +992,16 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-173', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Plugging fd %d, W:%s, R:%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt class="py-name">writable</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-174', 'idlequeue', 'link-4');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-175" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.plug_idle()=nbxmpp.idlequeue.IdleQueue-class.html#plug_idle"><a title="nbxmpp.idlequeue.IdleQueue.plug_idle" class="py-name" href="#" onclick="return doclink('link-175', 'plug_idle', 'link-175');">plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">writable</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP._do_send"></a><div id="NonBlockingTCP._do_send-def"><a name="L524"></a><tt class="py-lineno">524</tt> <a class="py-toggle" href="#" id="NonBlockingTCP._do_send-toggle" onclick="return toggle('NonBlockingTCP._do_send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#_do_send">_do_send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP._do_send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP._do_send-expanded"><a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"><tt class="py-docstring"> Called when send() to connected socket is possible. First message from</tt> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"><tt class="py-docstring"> sendqueue will be sent</tt> </tt>
-<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt><tt class="py-op">:</tt> </tt>
-<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendqueue</tt><tt class="py-op">:</tt> </tt>
-<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> <tt id="link-176" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-174', 'idlequeue', 'link-4');">idlequeue</a></tt><tt class="py-op">.</tt><tt id="link-175" class="py-name" targets="Method nbxmpp.idlequeue.IdleQueue.plug_idle()=nbxmpp.idlequeue.IdleQueue-class.html#plug_idle"><a title="nbxmpp.idlequeue.IdleQueue.plug_idle" class="py-name" href="#" onclick="return doclink('link-175', 'plug_idle', 'link-175');">plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">writable</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP._do_send"></a><div id="NonBlockingTCP._do_send-def"><a name="L534"></a><tt class="py-lineno">534</tt> <a class="py-toggle" href="#" id="NonBlockingTCP._do_send-toggle" onclick="return toggle('NonBlockingTCP._do_send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#_do_send">_do_send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP._do_send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP._do_send-expanded"><a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"><tt class="py-docstring"> Called when send() to connected socket is possible. First message from</tt> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"><tt class="py-docstring"> sendqueue will be sent</tt> </tt>
+<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt><tt class="py-op">:</tt> </tt>
+<a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendqueue</tt><tt class="py-op">:</tt> </tt>
+<a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"> <tt id="link-176" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1003,21 +1013,21 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-176', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'calling send on empty buffer and queue'</tt><tt class="py-op">)</tt> </tt>
-<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP._plug_idle" class="py-name" href="#" onclick="return doclink('link-177', '_plug_idle', 'link-89');">_plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">writable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendqueue</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> <tt class="py-name">send_count</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt><tt class="py-op">)</tt> </tt>
-<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">send_count</tt><tt class="py-op">:</tt> </tt>
-<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"> <tt class="py-name">sent_data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">send_count</tt><tt class="py-op">]</tt> </tt>
-<a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt><tt class="py-op">[</tt><tt class="py-name">send_count</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP._plug_idle" class="py-name" href="#" onclick="return doclink('link-178', '_plug_idle', 'link-89');">_plug_idle</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"> <tt class="py-name">writable</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendqueue</tt><tt class="py-op">!=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt><tt class="py-op">!=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"> <tt class="py-name">readable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-179', 'raise_event', 'link-31');">raise_event</a></tt><tt class="py-op">(</tt><tt id="link-180" class="py-name"><a title="nbxmpp.transports_nb.DATA_SENT" class="py-name" href="#" onclick="return doclink('link-180', 'DATA_SENT', 'link-16');">DATA_SENT</a></tt><tt class="py-op">,</tt> <tt class="py-name">sent_data</tt><tt class="py-op">)</tt> </tt>
-<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"> </tt>
-<a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
-<a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"> <tt id="link-181" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP._plug_idle" class="py-name" href="#" onclick="return doclink('link-177', '_plug_idle', 'link-89');">_plug_idle</a></tt><tt class="py-op">(</tt><tt class="py-name">writable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">readable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendqueue</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"> <tt class="py-name">send_count</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt><tt class="py-op">)</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">send_count</tt><tt class="py-op">:</tt> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> <tt class="py-name">sent_data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">send_count</tt><tt class="py-op">]</tt> </tt>
+<a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt><tt class="py-op">[</tt><tt class="py-name">send_count</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP._plug_idle" class="py-name" href="#" onclick="return doclink('link-178', '_plug_idle', 'link-89');">_plug_idle</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> <tt class="py-name">writable</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendqueue</tt><tt class="py-op">!=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt><tt class="py-op">!=</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"> <tt class="py-name">readable</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-179', 'raise_event', 'link-31');">raise_event</a></tt><tt class="py-op">(</tt><tt id="link-180" class="py-name"><a title="nbxmpp.transports_nb.DATA_SENT" class="py-name" href="#" onclick="return doclink('link-180', 'DATA_SENT', 'link-16');">DATA_SENT</a></tt><tt class="py-op">,</tt> <tt class="py-name">sent_data</tt><tt class="py-op">)</tt> </tt>
+<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> </tt>
+<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> <tt id="link-181" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1029,26 +1039,26 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-181', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'_do_send:'</tt><tt class="py-op">,</tt> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"> <tt class="py-name">traceback</tt><tt class="py-op">.</tt><tt class="py-name">print_exc</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt class="py-name">traceback</tt><tt class="py-op">.</tt><tt class="py-name">print_exc</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-182', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP._do_receive"></a><div id="NonBlockingTCP._do_receive-def"><a name="L550"></a><tt class="py-lineno">550</tt> <a class="py-toggle" href="#" id="NonBlockingTCP._do_receive-toggle" onclick="return toggle('NonBlockingTCP._do_receive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#_do_receive">_do_receive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP._do_receive-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP._do_receive-expanded"><a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"><tt class="py-docstring"> Reads all pending incoming data. Will call owner's disconnected() method</tt> </tt>
-<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"><tt class="py-docstring"> if appropriate</tt> </tt>
-<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-name">received</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> <tt class="py-name">errnum</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt class="py-name">errstr</tt> <tt class="py-op">=</tt> <tt class="py-string">'No Error Set'</tt> </tt>
-<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> </tt>
-<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-comment"># get as many bites, as possible, but not more than RECV_BUFSIZE</tt> </tt>
-<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-name">received</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_recv</tt><tt class="py-op">(</tt><tt id="link-183" class="py-name"><a title="nbxmpp.transports_nb.RECV_BUFSIZE" class="py-name" href="#" onclick="return doclink('link-183', 'RECV_BUFSIZE', 'link-14');">RECV_BUFSIZE</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"> <tt id="link-184" class="py-name"><a title="nbxmpp.auth_nb.log
+</div><a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP._do_receive"></a><div id="NonBlockingTCP._do_receive-def"><a name="L560"></a><tt class="py-lineno">560</tt> <a class="py-toggle" href="#" id="NonBlockingTCP._do_receive-toggle" onclick="return toggle('NonBlockingTCP._do_receive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#_do_receive">_do_receive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP._do_receive-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP._do_receive-expanded"><a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"><tt class="py-docstring"> Reads all pending incoming data. Will call owner's disconnected() method</tt> </tt>
+<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"><tt class="py-docstring"> if appropriate</tt> </tt>
+<a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"> <tt class="py-name">received</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> <tt class="py-name">errnum</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> <tt class="py-name">errstr</tt> <tt class="py-op">=</tt> <tt class="py-string">'No Error Set'</tt> </tt>
+<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> </tt>
+<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> <tt class="py-comment"># get as many bites, as possible, but not more than RECV_BUFSIZE</tt> </tt>
+<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> <tt class="py-name">received</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_recv</tt><tt class="py-op">(</tt><tt id="link-183" class="py-name"><a title="nbxmpp.transports_nb.RECV_BUFSIZE" class="py-name" href="#" onclick="return doclink('link-183', 'RECV_BUFSIZE', 'link-14');">RECV_BUFSIZE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> <tt id="link-184" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1060,9 +1070,9 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-184', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"_do_receive: got %s:"</tt> <tt class="py-op">%</tt> <tt class="py-name">received</tt><tt class="py-op">,</tt> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-185" class="py-name"><a title="nbxmpp.tls_nb" class="py-name" href="#" onclick="return doclink('link-185', 'tls_nb', 'link-7');">tls_nb</a></tt><tt class="py-op">.</tt><tt id="link-186" class="py-name" targets="Class nbxmpp.tls_nb.SSLWrapper=nbxmpp.tls_nb.SSLWrapper-class.html"><a title="nbxmpp.tls_nb.SSLWrapper" class="py-name" href="#" onclick="return doclink('link-186', 'SSLWrapper', 'link-186');">SSLWrapper</a></tt><tt class="py-op">.</tt><tt id="link-187" class="py-name" targets="Class nbxmpp.protocol.Error=nbxmpp.protocol.Error-class.html,Class nbxmpp.tls_nb.SSLWrapper.Error=nbxmpp.tls_nb.SSLWrapper.Error-class.html"><a title="nbxmpp.protocol.Error
+<a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-185" class="py-name"><a title="nbxmpp.tls_nb" class="py-name" href="#" onclick="return doclink('link-185', 'tls_nb', 'link-7');">tls_nb</a></tt><tt class="py-op">.</tt><tt id="link-186" class="py-name" targets="Class nbxmpp.tls_nb.SSLWrapper=nbxmpp.tls_nb.SSLWrapper-class.html"><a title="nbxmpp.tls_nb.SSLWrapper" class="py-name" href="#" onclick="return doclink('link-186', 'SSLWrapper', 'link-186');">SSLWrapper</a></tt><tt class="py-op">.</tt><tt id="link-187" class="py-name" targets="Class nbxmpp.protocol.Error=nbxmpp.protocol.Error-class.html,Class nbxmpp.tls_nb.SSLWrapper.Error=nbxmpp.tls_nb.SSLWrapper.Error-class.html"><a title="nbxmpp.protocol.Error
nbxmpp.tls_nb.SSLWrapper.Error" class="py-name" href="#" onclick="return doclink('link-187', 'Error', 'link-187');">Error</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"> <tt id="link-188" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"> <tt id="link-188" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1074,18 +1084,18 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-188', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"_do_receive, caught SSL error, got %s:"</tt> <tt class="py-op">%</tt> <tt class="py-name">received</tt><tt class="py-op">,</tt> </tt>
-<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> <tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">errno</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">strerror</tt> </tt>
-<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> </tt>
-<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">received</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
-<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> <tt class="py-name">errstr</tt> <tt class="py-op">=</tt> <tt class="py-string">'zero bytes on recv'</tt> </tt>
-<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> </tt>
-<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">received</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> \ </tt>
-<a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> <tt class="py-op">==</tt> <tt id="link-189" class="py-name"><a title="nbxmpp.tls_nb" class="py-name" href="#" onclick="return doclink('link-189', 'tls_nb', 'link-7');">tls_nb</a></tt><tt class="py-op">.</tt><tt id="link-190" class="py-name" targets="Variable nbxmpp.tls_nb.PYSTDLIB=nbxmpp.tls_nb-module.html#PYSTDLIB"><a title="nbxmpp.tls_nb.PYSTDLIB" class="py-name" href="#" onclick="return doclink('link-190', 'PYSTDLIB', 'link-190');">PYSTDLIB</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">errnum</tt> <tt class="py-op">==</tt> <tt class="py-number">8</tt> <tt class="py-op">)</tt> <tt class="py-keyword">or</tt> \ </tt>
-<a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> <tt class="py-op">==</tt> <tt id="link-191" class="py-name"><a title="nbxmpp.tls_nb" class="py-name" href="#" onclick="return doclink('link-191', 'tls_nb', 'link-7');">tls_nb</a></tt><tt class="py-op">.</tt><tt id="link-192" class="py-name" targets="Variable nbxmpp.tls_nb.PYOPENSSL=nbxmpp.tls_nb-module.html#PYOPENSSL"><a title="nbxmpp.tls_nb.PYOPENSSL" class="py-name" href="#" onclick="return doclink('link-192', 'PYOPENSSL', 'link-192');">PYOPENSSL</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">errnum</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"> <tt class="py-comment"># 8 in stdlib: errstr == EOF occured in violation of protocol</tt> </tt>
-<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"> <tt class="py-comment"># -1 in pyopenssl: errstr == Unexpected EOF</tt> </tt>
-<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt id="link-193" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">errno</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">strerror</tt> </tt>
+<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> </tt>
+<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">received</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
+<a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt class="py-name">errstr</tt> <tt class="py-op">=</tt> <tt class="py-string">'zero bytes on recv'</tt> </tt>
+<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"> </tt>
+<a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">received</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> \ </tt>
+<a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> <tt class="py-op">==</tt> <tt id="link-189" class="py-name"><a title="nbxmpp.tls_nb" class="py-name" href="#" onclick="return doclink('link-189', 'tls_nb', 'link-7');">tls_nb</a></tt><tt class="py-op">.</tt><tt id="link-190" class="py-name" targets="Variable nbxmpp.tls_nb.PYSTDLIB=nbxmpp.tls_nb-module.html#PYSTDLIB"><a title="nbxmpp.tls_nb.PYSTDLIB" class="py-name" href="#" onclick="return doclink('link-190', 'PYSTDLIB', 'link-190');">PYSTDLIB</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">errnum</tt> <tt class="py-op">==</tt> <tt class="py-number">8</tt> <tt class="py-op">)</tt> <tt class="py-keyword">or</tt> \ </tt>
+<a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ssl_lib</tt> <tt class="py-op">==</tt> <tt id="link-191" class="py-name"><a title="nbxmpp.tls_nb" class="py-name" href="#" onclick="return doclink('link-191', 'tls_nb', 'link-7');">tls_nb</a></tt><tt class="py-op">.</tt><tt id="link-192" class="py-name" targets="Variable nbxmpp.tls_nb.PYOPENSSL=nbxmpp.tls_nb-module.html#PYOPENSSL"><a title="nbxmpp.tls_nb.PYOPENSSL" class="py-name" href="#" onclick="return doclink('link-192', 'PYOPENSSL', 'link-192');">PYOPENSSL</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">errnum</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"> <tt class="py-comment"># 8 in stdlib: errstr == EOF occured in violation of protocol</tt> </tt>
+<a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> <tt class="py-comment"># -1 in pyopenssl: errstr == Unexpected EOF</tt> </tt>
+<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"> <tt id="link-193" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1097,11 +1107,11 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-193', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"Disconnected by remote server: #%s, %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_remote_disconnect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> </tt>
-<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">errnum</tt><tt class="py-op">:</tt> </tt>
-<a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"> <tt id="link-194" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_remote_disconnect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"> </tt>
+<a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">errnum</tt><tt class="py-op">:</tt> </tt>
+<a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> <tt id="link-194" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1113,34 +1123,34 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-194', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"Connection to %s:%s lost: %s %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">server</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">port</tt><tt class="py-op">,</tt> </tt>
-<a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"> <tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-195" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"> <tt class="py-name">errnum</tt><tt class="py-op">,</tt> <tt class="py-name">errstr</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-195" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-195', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> </tt>
-<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"> <tt class="py-comment"># this branch is for case of non-fatal SSL errors - None is returned from</tt> </tt>
-<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"> <tt class="py-comment"># recv() but no errnum is set</tt> </tt>
-<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">received</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"> </tt>
-<a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> <tt class="py-comment"># we have received some bytes, stop the timeout!</tt> </tt>
-<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
+<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"> </tt>
+<a name="L597"></a><tt class="py-lineno">597</tt> <tt class="py-line"> <tt class="py-comment"># this branch is for case of non-fatal SSL errors - None is returned from</tt> </tt>
+<a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"> <tt class="py-comment"># recv() but no errnum is set</tt> </tt>
+<a name="L599"></a><tt class="py-lineno">599</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">received</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"> </tt>
+<a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"> <tt class="py-comment"># we have received some bytes, stop the timeout!</tt> </tt>
+<a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="nbxmpp.idlequeue.IdleQueue.remove_timeout
nbxmpp.transports_nb.NonBlockingTCP.remove_timeout
nbxmpp.transports_nb.NonBlockingTransport.remove_timeout" class="py-name" href="#" onclick="return doclink('link-196', 'remove_timeout', 'link-41');">remove_timeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.renew_send_timeout" class="py-name" href="#" onclick="return doclink('link-197', 'renew_send_timeout', 'link-59');">renew_send_timeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.renew_send_timeout2" class="py-name" href="#" onclick="return doclink('link-198', 'renew_send_timeout2', 'link-60');">renew_send_timeout2</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"> <tt class="py-comment"># pass received data to owner</tt> </tt>
-<a name="L597"></a><tt class="py-lineno">597</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_receive</tt><tt class="py-op">:</tt> </tt>
-<a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-199', 'raise_event', 'link-31');">raise_event</a></tt><tt class="py-op">(</tt><tt id="link-200" class="py-name"><a title="nbxmpp.transports_nb.DATA_RECEIVED" class="py-name" href="#" onclick="return doclink('link-200', 'DATA_RECEIVED', 'link-15');">DATA_RECEIVED</a></tt><tt class="py-op">,</tt> <tt class="py-name">received</tt><tt class="py-op">)</tt> </tt>
-<a name="L599"></a><tt class="py-lineno">599</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingHTTP._on_receive()=nbxmpp.transports_nb.NonBlockingHTTP-class.html#_on_receive,Method nbxmpp.transports_nb.NonBlockingTCP._on_receive()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_on_receive"><a title="nbxmpp.transports_nb.NonBlockingHTTP._on_receive
+<a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.renew_send_timeout" class="py-name" href="#" onclick="return doclink('link-197', 'renew_send_timeout', 'link-59');">renew_send_timeout</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.renew_send_timeout2" class="py-name" href="#" onclick="return doclink('link-198', 'renew_send_timeout2', 'link-60');">renew_send_timeout2</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"> <tt class="py-comment"># pass received data to owner</tt> </tt>
+<a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_receive</tt><tt class="py-op">:</tt> </tt>
+<a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-199', 'raise_event', 'link-31');">raise_event</a></tt><tt class="py-op">(</tt><tt id="link-200" class="py-name"><a title="nbxmpp.transports_nb.DATA_RECEIVED" class="py-name" href="#" onclick="return doclink('link-200', 'DATA_RECEIVED', 'link-15');">DATA_RECEIVED</a></tt><tt class="py-op">,</tt> <tt class="py-name">received</tt><tt class="py-op">)</tt> </tt>
+<a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingHTTP._on_receive()=nbxmpp.transports_nb.NonBlockingHTTP-class.html#_on_receive,Method nbxmpp.transports_nb.NonBlockingTCP._on_receive()=nbxmpp.transports_nb.NonBlockingTCP-class.html#_on_receive"><a title="nbxmpp.transports_nb.NonBlockingHTTP._on_receive
nbxmpp.transports_nb.NonBlockingTCP._on_receive" class="py-name" href="#" onclick="return doclink('link-201', '_on_receive', 'link-201');">_on_receive</a></tt><tt class="py-op">(</tt><tt class="py-name">received</tt><tt class="py-op">)</tt> </tt>
-<a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"> <tt class="py-comment"># This should never happen, so we need the debug.</tt> </tt>
-<a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"> <tt class="py-comment"># (If there is no handler on receive specified, data is passed to</tt> </tt>
-<a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"> <tt class="py-comment"># Dispatcher.ProcessNonBlocking)</tt> </tt>
-<a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"> <tt id="link-202" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"> <tt class="py-comment"># This should never happen, so we need the debug.</tt> </tt>
+<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"> <tt class="py-comment"># (If there is no handler on receive specified, data is passed to</tt> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"> <tt class="py-comment"># Dispatcher.ProcessNonBlocking)</tt> </tt>
+<a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"> <tt id="link-202" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1152,37 +1162,37 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-202', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'SOCKET %s Unhandled data received: %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"> <tt class="py-name">received</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-203" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> <tt class="py-name">received</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L616"></a><tt class="py-lineno">616</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-203" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-203', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingTCP._on_receive"></a><div id="NonBlockingTCP._on_receive-def"><a name="L608"></a><tt class="py-lineno">608</tt> <a class="py-toggle" href="#" id="NonBlockingTCP._on_receive-toggle" onclick="return toggle('NonBlockingTCP._on_receive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#_on_receive">_on_receive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingTCP._on_receive-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP._on_receive-expanded"><a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"><tt class="py-docstring"> Preceeds on_receive callback. It peels off and checks HTTP headers in</tt> </tt>
-<a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"><tt class="py-docstring"> HTTP classes, in here it just calls the callback</tt> </tt>
-<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_receive</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"> </tt>
-<a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingHTTP"></a><div id="NonBlockingHTTP-def"><a name="L616"></a><tt class="py-lineno">616</tt> <a class="py-toggle" href="#" id="NonBlockingHTTP-toggle" onclick="return toggle('NonBlockingHTTP');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html">NonBlockingHTTP</a><tt class="py-op">(</tt><tt class="py-base-class">NonBlockingTCP</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingHTTP-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="NonBlockingHTTP-expanded"><a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"><tt class="py-docstring"> Socket wrapper that creates HTTP message out of sent data and peels-off HTTP</tt> </tt>
-<a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"><tt class="py-docstring"> headers from incoming messages</tt> </tt>
-<a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L621"></a><tt class="py-lineno">621</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingHTTP.__init__"></a><div id="NonBlockingHTTP.__init__-def"><a name="L622"></a><tt class="py-lineno">622</tt> <a class="py-toggle" href="#" id="NonBlockingHTTP.__init__-toggle" onclick="return toggle('NonBlockingHTTP.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">raise_event</tt><tt class="py-op">,</tt> <tt class="py-param">on_disconnect</tt><tt class="py-op">,</tt> <tt class="py-param">idlequeue</tt><tt class="py-op">,</tt> <tt class="py-param">estabilish_tls</tt><tt class="py-op">,</tt> </tt>
-<a name="L623"></a><tt class="py-lineno">623</tt> <tt class="py-line"> <tt class="py-param">certs</tt><tt class="py-op">,</tt> <tt class="py-param">on_http_request_possible</tt><tt class="py-op">,</tt> <tt class="py-param">on_persistent_fallback</tt><tt class="py-op">,</tt> <tt class="py-param">http_dict</tt><tt class="py-op">,</tt> </tt>
-<a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"> <tt class="py-param">proxy_dict</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingHTTP.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTP.__init__-expanded"><a name="L625"></a><tt class="py-lineno">625</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L626"></a><tt class="py-lineno">626</tt> <tt class="py-line"><tt class="py-docstring"> :param on_http_request_possible: method to call when HTTP request to</tt> </tt>
-<a name="L627"></a><tt class="py-lineno">627</tt> <tt class="py-line"><tt class="py-docstring"> socket owned by transport is possible.</tt> </tt>
-<a name="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"><tt class="py-docstring"> :param on_persistent_fallback: callback called when server ends TCP</tt> </tt>
-<a name="L629"></a><tt class="py-lineno">629</tt> <tt class="py-line"><tt class="py-docstring"> connection. It doesn't have to be fatal for HTTP session.</tt> </tt>
-<a name="L630"></a><tt class="py-lineno">630</tt> <tt class="py-line"><tt class="py-docstring"> :param http_dict: dictionary with data for HTTP request and headers</tt> </tt>
-<a name="L631"></a><tt class="py-lineno">631</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L632"></a><tt class="py-lineno">632</tt> <tt class="py-line"> <tt id="link-204" class="py-name" targets="Class nbxmpp.transports_nb.NonBlockingTCP=nbxmpp.transports_nb.NonBlockingTCP-class.html"><a title="nbxmpp.transports_nb.NonBlockingTCP" class="py-name" href="#" onclick="return doclink('link-204', 'NonBlockingTCP', 'link-204');">NonBlockingTCP</a></tt><tt class="py-op">.</tt><tt id="link-205" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
+</div><a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingTCP._on_receive"></a><div id="NonBlockingTCP._on_receive-def"><a name="L618"></a><tt class="py-lineno">618</tt> <a class="py-toggle" href="#" id="NonBlockingTCP._on_receive-toggle" onclick="return toggle('NonBlockingTCP._on_receive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#_on_receive">_on_receive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingTCP._on_receive-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingTCP._on_receive-expanded"><a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"><tt class="py-docstring"> Preceeds on_receive callback. It peels off and checks HTTP headers in</tt> </tt>
+<a name="L621"></a><tt class="py-lineno">621</tt> <tt class="py-line"><tt class="py-docstring"> HTTP classes, in here it just calls the callback</tt> </tt>
+<a name="L622"></a><tt class="py-lineno">622</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L623"></a><tt class="py-lineno">623</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_receive</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"> </tt>
+<a name="L625"></a><tt class="py-lineno">625</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingHTTP"></a><div id="NonBlockingHTTP-def"><a name="L626"></a><tt class="py-lineno">626</tt> <a class="py-toggle" href="#" id="NonBlockingHTTP-toggle" onclick="return toggle('NonBlockingHTTP');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html">NonBlockingHTTP</a><tt class="py-op">(</tt><tt class="py-base-class">NonBlockingTCP</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingHTTP-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="NonBlockingHTTP-expanded"><a name="L627"></a><tt class="py-lineno">627</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"><tt class="py-docstring"> Socket wrapper that creates HTTP message out of sent data and peels-off HTTP</tt> </tt>
+<a name="L629"></a><tt class="py-lineno">629</tt> <tt class="py-line"><tt class="py-docstring"> headers from incoming messages</tt> </tt>
+<a name="L630"></a><tt class="py-lineno">630</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L631"></a><tt class="py-lineno">631</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingHTTP.__init__"></a><div id="NonBlockingHTTP.__init__-def"><a name="L632"></a><tt class="py-lineno">632</tt> <a class="py-toggle" href="#" id="NonBlockingHTTP.__init__-toggle" onclick="return toggle('NonBlockingHTTP.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">raise_event</tt><tt class="py-op">,</tt> <tt class="py-param">on_disconnect</tt><tt class="py-op">,</tt> <tt class="py-param">idlequeue</tt><tt class="py-op">,</tt> <tt class="py-param">estabilish_tls</tt><tt class="py-op">,</tt> </tt>
+<a name="L633"></a><tt class="py-lineno">633</tt> <tt class="py-line"> <tt class="py-param">certs</tt><tt class="py-op">,</tt> <tt class="py-param">on_http_request_possible</tt><tt class="py-op">,</tt> <tt class="py-param">on_persistent_fallback</tt><tt class="py-op">,</tt> <tt class="py-param">http_dict</tt><tt class="py-op">,</tt> </tt>
+<a name="L634"></a><tt class="py-lineno">634</tt> <tt class="py-line"> <tt class="py-param">proxy_dict</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingHTTP.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTP.__init__-expanded"><a name="L635"></a><tt class="py-lineno">635</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L636"></a><tt class="py-lineno">636</tt> <tt class="py-line"><tt class="py-docstring"> :param on_http_request_possible: method to call when HTTP request to</tt> </tt>
+<a name="L637"></a><tt class="py-lineno">637</tt> <tt class="py-line"><tt class="py-docstring"> socket owned by transport is possible.</tt> </tt>
+<a name="L638"></a><tt class="py-lineno">638</tt> <tt class="py-line"><tt class="py-docstring"> :param on_persistent_fallback: callback called when server ends TCP</tt> </tt>
+<a name="L639"></a><tt class="py-lineno">639</tt> <tt class="py-line"><tt class="py-docstring"> connection. It doesn't have to be fatal for HTTP session.</tt> </tt>
+<a name="L640"></a><tt class="py-lineno">640</tt> <tt class="py-line"><tt class="py-docstring"> :param http_dict: dictionary with data for HTTP request and headers</tt> </tt>
+<a name="L641"></a><tt class="py-lineno">641</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L642"></a><tt class="py-lineno">642</tt> <tt class="py-line"> <tt id="link-204" class="py-name" targets="Class nbxmpp.transports_nb.NonBlockingTCP=nbxmpp.transports_nb.NonBlockingTCP-class.html"><a title="nbxmpp.transports_nb.NonBlockingTCP" class="py-name" href="#" onclick="return doclink('link-204', 'NonBlockingTCP', 'link-204');">NonBlockingTCP</a></tt><tt class="py-op">.</tt><tt id="link-205" class="py-name"><a title="nbxmpp.auth_nb.NonBlockingBind.__init__
nbxmpp.auth_nb.NonBlockingNonSASL.__init__
nbxmpp.auth_nb.SASL.__init__
nbxmpp.bosh.AckChecker.__init__
@@ -1225,57 +1235,57 @@ nbxmpp.tls_nb.StdlibSSLWrapper.__init__
nbxmpp.transports_nb.NonBlockingHTTP.__init__
nbxmpp.transports_nb.NonBlockingTCP.__init__
nbxmpp.transports_nb.NonBlockingTransport.__init__" class="py-name" href="#" onclick="return doclink('link-205', '__init__', 'link-30');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-206" class="py-name"><a title="nbxmpp.client_nb.NonBlockingClient.raise_event" class="py-name" href="#" onclick="return doclink('link-206', 'raise_event', 'link-31');">raise_event</a></tt><tt class="py-op">,</tt> <tt class="py-name">on_disconnect</tt><tt class="py-op">,</tt> <tt id="link-207" class="py-name"><a title="nbxmpp.idlequeue" class="py-name" href="#" onclick="return doclink('link-207', 'idlequeue', 'link-4');">idlequeue</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L633"></a><tt class="py-lineno">633</tt> <tt class="py-line"> <tt class="py-name">estabilish_tls</tt><tt class="py-op">,</tt> <tt class="py-name">certs</tt><tt class="py-op">,</tt> <tt class="py-name">proxy_dict</tt><tt class="py-op">)</tt> </tt>
-<a name="L634"></a><tt class="py-lineno">634</tt> <tt class="py-line"> </tt>
-<a name="L635"></a><tt class="py-lineno">635</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_protocol</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_host</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_port</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_path</tt> <tt class="py-op">=</tt> \ </tt>
-<a name="L636"></a><tt class="py-lineno">636</tt> <tt class="py-line"> <tt id="link-208" class="py-name"><a title="nbxmpp.transports_nb.urisplit" class="py-name" href="#" onclick="return doclink('link-208', 'urisplit', 'link-10');">urisplit</a></tt><tt class="py-op">(</tt><tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'http_uri'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L637"></a><tt class="py-lineno">637</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_protocol</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_protocol</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'http'</tt> </tt>
-<a name="L638"></a><tt class="py-lineno">638</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_path</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'/'</tt> </tt>
-<a name="L639"></a><tt class="py-lineno">639</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_version</tt> <tt class="py-op">=</tt> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'http_version'</tt><tt class="py-op">]</tt> </tt>
-<a name="L640"></a><tt class="py-lineno">640</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_persistent</tt> <tt class="py-op">=</tt> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'http_persistent'</tt><tt class="py-op">]</tt> </tt>
-<a name="L641"></a><tt class="py-lineno">641</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">add_proxy_headers</tt> <tt class="py-op">=</tt> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'add_proxy_headers'</tt><tt class="py-op">]</tt> </tt>
-<a name="L642"></a><tt class="py-lineno">642</tt> <tt class="py-line"> </tt>
-<a name="L643"></a><tt class="py-lineno">643</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'proxy_user'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">http_dict</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'proxy_pass'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">http_dict</tt><tt class="py-op">:</tt> </tt>
-<a name="L644"></a><tt class="py-lineno">644</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_user</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_pass</tt> <tt class="py-op">=</tt> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'proxy_user'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt> </tt>
-<a name="L645"></a><tt class="py-lineno">645</tt> <tt class="py-line"> <tt class="py-string">'proxy_pass'</tt><tt class="py-op">]</tt> </tt>
-<a name="L646"></a><tt class="py-lineno">646</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L647"></a><tt class="py-lineno">647</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_user</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_pass</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
-<a name="L648"></a><tt class="py-lineno">648</tt> <tt class="py-line"> </tt>
-<a name="L649"></a><tt class="py-lineno">649</tt> <tt class="py-line"> <tt class="py-comment"># buffer for partial responses</tt> </tt>
-<a name="L650"></a><tt class="py-lineno">650</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">recvbuff</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L651"></a><tt class="py-lineno">651</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">expected_length</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L652"></a><tt class="py-lineno">652</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pending_requests</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L653"></a><tt class="py-lineno">653</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible()=nbxmpp.bosh.NonBlockingBOSH-class.html#on_http_request_possible"><a title="nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible" class="py-name" href="#" onclick="return doclink('link-209', 'on_http_request_possible', 'link-209');">on_http_request_possible</a></tt> <tt class="py-op">=</tt> <tt id="link-210" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible" class="py-name" href="#" onclick="return doclink('link-210', 'on_http_request_possible', 'link-209');">on_http_request_possible</a></tt> </tt>
-<a name="L654"></a><tt class="py-lineno">654</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">last_recv_time</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L655"></a><tt class="py-lineno">655</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">close_current_connection</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L656"></a><tt class="py-lineno">656</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_remote_disconnect</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt><tt class="py-op">:</tt> <tt id="link-211" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.on_persistent_fallback()=nbxmpp.bosh.NonBlockingBOSH-class.html#on_persistent_fallback"><a title="nbxmpp.bosh.NonBlockingBOSH.on_persistent_fallback" class="py-name" href="#" onclick="return doclink('link-211', 'on_persistent_fallback', 'link-211');">on_persistent_fallback</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L657"></a><tt class="py-lineno">657</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingHTTP.http_send"></a><div id="NonBlockingHTTP.http_send-def"><a name="L658"></a><tt class="py-lineno">658</tt> <a class="py-toggle" href="#" id="NonBlockingHTTP.http_send-toggle" onclick="return toggle('NonBlockingHTTP.http_send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#http_send">http_send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">raw_data</tt><tt class="py-op">,</tt> <tt class="py-param">now</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingHTTP.http_send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTP.http_send-expanded"><a name="L659"></a><tt class="py-lineno">659</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
+<a name="L643"></a><tt class="py-lineno">643</tt> <tt class="py-line"> <tt class="py-name">estabilish_tls</tt><tt class="py-op">,</tt> <tt class="py-name">certs</tt><tt class="py-op">,</tt> <tt class="py-name">proxy_dict</tt><tt class="py-op">)</tt> </tt>
+<a name="L644"></a><tt class="py-lineno">644</tt> <tt class="py-line"> </tt>
+<a name="L645"></a><tt class="py-lineno">645</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_protocol</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_host</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_port</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_path</tt> <tt class="py-op">=</tt> \ </tt>
+<a name="L646"></a><tt class="py-lineno">646</tt> <tt class="py-line"> <tt id="link-208" class="py-name"><a title="nbxmpp.transports_nb.urisplit" class="py-name" href="#" onclick="return doclink('link-208', 'urisplit', 'link-10');">urisplit</a></tt><tt class="py-op">(</tt><tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'http_uri'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L647"></a><tt class="py-lineno">647</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_protocol</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_protocol</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'http'</tt> </tt>
+<a name="L648"></a><tt class="py-lineno">648</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_path</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_path</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'/'</tt> </tt>
+<a name="L649"></a><tt class="py-lineno">649</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_version</tt> <tt class="py-op">=</tt> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'http_version'</tt><tt class="py-op">]</tt> </tt>
+<a name="L650"></a><tt class="py-lineno">650</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_persistent</tt> <tt class="py-op">=</tt> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'http_persistent'</tt><tt class="py-op">]</tt> </tt>
+<a name="L651"></a><tt class="py-lineno">651</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">add_proxy_headers</tt> <tt class="py-op">=</tt> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'add_proxy_headers'</tt><tt class="py-op">]</tt> </tt>
+<a name="L652"></a><tt class="py-lineno">652</tt> <tt class="py-line"> </tt>
+<a name="L653"></a><tt class="py-lineno">653</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'proxy_user'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">http_dict</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'proxy_pass'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">http_dict</tt><tt class="py-op">:</tt> </tt>
+<a name="L654"></a><tt class="py-lineno">654</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_user</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_pass</tt> <tt class="py-op">=</tt> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt><tt class="py-string">'proxy_user'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">http_dict</tt><tt class="py-op">[</tt> </tt>
+<a name="L655"></a><tt class="py-lineno">655</tt> <tt class="py-line"> <tt class="py-string">'proxy_pass'</tt><tt class="py-op">]</tt> </tt>
+<a name="L656"></a><tt class="py-lineno">656</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L657"></a><tt class="py-lineno">657</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_user</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_pass</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
+<a name="L658"></a><tt class="py-lineno">658</tt> <tt class="py-line"> </tt>
+<a name="L659"></a><tt class="py-lineno">659</tt> <tt class="py-line"> <tt class="py-comment"># buffer for partial responses</tt> </tt>
+<a name="L660"></a><tt class="py-lineno">660</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">recvbuff</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L661"></a><tt class="py-lineno">661</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">expected_length</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L662"></a><tt class="py-lineno">662</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pending_requests</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L663"></a><tt class="py-lineno">663</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible()=nbxmpp.bosh.NonBlockingBOSH-class.html#on_http_request_possible"><a title="nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible" class="py-name" href="#" onclick="return doclink('link-209', 'on_http_request_possible', 'link-209');">on_http_request_possible</a></tt> <tt class="py-op">=</tt> <tt id="link-210" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible" class="py-name" href="#" onclick="return doclink('link-210', 'on_http_request_possible', 'link-209');">on_http_request_possible</a></tt> </tt>
+<a name="L664"></a><tt class="py-lineno">664</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">last_recv_time</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L665"></a><tt class="py-lineno">665</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">close_current_connection</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L666"></a><tt class="py-lineno">666</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_remote_disconnect</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt><tt class="py-op">:</tt> <tt id="link-211" class="py-name" targets="Method nbxmpp.bosh.NonBlockingBOSH.on_persistent_fallback()=nbxmpp.bosh.NonBlockingBOSH-class.html#on_persistent_fallback"><a title="nbxmpp.bosh.NonBlockingBOSH.on_persistent_fallback" class="py-name" href="#" onclick="return doclink('link-211', 'on_persistent_fallback', 'link-211');">on_persistent_fallback</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L667"></a><tt class="py-lineno">667</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingHTTP.http_send"></a><div id="NonBlockingHTTP.http_send-def"><a name="L668"></a><tt class="py-lineno">668</tt> <a class="py-toggle" href="#" id="NonBlockingHTTP.http_send-toggle" onclick="return toggle('NonBlockingHTTP.http_send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#http_send">http_send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">raw_data</tt><tt class="py-op">,</tt> <tt class="py-param">now</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingHTTP.http_send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTP.http_send-expanded"><a name="L669"></a><tt class="py-lineno">669</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.send
nbxmpp.dispatcher_nb.XMPPDispatcher.send
nbxmpp.tls_nb.PyOpenSSLWrapper.send
nbxmpp.tls_nb.SSLWrapper.send
nbxmpp.tls_nb.StdlibSSLWrapper.send
nbxmpp.transports_nb.NonBlockingTCP.send
nbxmpp.transports_nb.NonBlockingTransport.send" class="py-name" href="#" onclick="return doclink('link-212', 'send', 'link-81');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingHTTP.build_http_message()=nbxmpp.transports_nb.NonBlockingHTTP-class.html#build_http_message"><a title="nbxmpp.transports_nb.NonBlockingHTTP.build_http_message" class="py-name" href="#" onclick="return doclink('link-213', 'build_http_message', 'link-213');">build_http_message</a></tt><tt class="py-op">(</tt><tt class="py-name">raw_data</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">now</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L660"></a><tt class="py-lineno">660</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingHTTP._on_receive"></a><div id="NonBlockingHTTP._on_receive-def"><a name="L661"></a><tt class="py-lineno">661</tt> <a class="py-toggle" href="#" id="NonBlockingHTTP._on_receive-toggle" onclick="return toggle('NonBlockingHTTP._on_receive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#_on_receive">_on_receive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingHTTP._on_receive-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTP._on_receive-expanded"><a name="L662"></a><tt class="py-lineno">662</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L663"></a><tt class="py-lineno">663</tt> <tt class="py-line"><tt class="py-docstring"> Preceeds passing received data to owner class. Gets rid of HTTP headers</tt> </tt>
-<a name="L664"></a><tt class="py-lineno">664</tt> <tt class="py-line"><tt class="py-docstring"> and checks them.</tt> </tt>
-<a name="L665"></a><tt class="py-lineno">665</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L666"></a><tt class="py-lineno">666</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-214" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-214', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-215" class="py-name"><a title="nbxmpp.transports_nb.PROXY_CONNECTING" class="py-name" href="#" onclick="return doclink('link-215', 'PROXY_CONNECTING', 'link-21');">PROXY_CONNECTING</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L667"></a><tt class="py-lineno">667</tt> <tt class="py-line"> <tt id="link-216" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP" class="py-name" href="#" onclick="return doclink('link-216', 'NonBlockingTCP', 'link-204');">NonBlockingTCP</a></tt><tt class="py-op">.</tt><tt id="link-217" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingHTTP._on_receive
+</div><a name="L670"></a><tt class="py-lineno">670</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingHTTP._on_receive"></a><div id="NonBlockingHTTP._on_receive-def"><a name="L671"></a><tt class="py-lineno">671</tt> <a class="py-toggle" href="#" id="NonBlockingHTTP._on_receive-toggle" onclick="return toggle('NonBlockingHTTP._on_receive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#_on_receive">_on_receive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingHTTP._on_receive-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTP._on_receive-expanded"><a name="L672"></a><tt class="py-lineno">672</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L673"></a><tt class="py-lineno">673</tt> <tt class="py-line"><tt class="py-docstring"> Preceeds passing received data to owner class. Gets rid of HTTP headers</tt> </tt>
+<a name="L674"></a><tt class="py-lineno">674</tt> <tt class="py-line"><tt class="py-docstring"> and checks them.</tt> </tt>
+<a name="L675"></a><tt class="py-lineno">675</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L676"></a><tt class="py-lineno">676</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-214" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTransport.get_state" class="py-name" href="#" onclick="return doclink('link-214', 'get_state', 'link-48');">get_state</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-215" class="py-name"><a title="nbxmpp.transports_nb.PROXY_CONNECTING" class="py-name" href="#" onclick="return doclink('link-215', 'PROXY_CONNECTING', 'link-21');">PROXY_CONNECTING</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L677"></a><tt class="py-lineno">677</tt> <tt class="py-line"> <tt id="link-216" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP" class="py-name" href="#" onclick="return doclink('link-216', 'NonBlockingTCP', 'link-204');">NonBlockingTCP</a></tt><tt class="py-op">.</tt><tt id="link-217" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingHTTP._on_receive
nbxmpp.transports_nb.NonBlockingTCP._on_receive" class="py-name" href="#" onclick="return doclink('link-217', '_on_receive', 'link-201');">_on_receive</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L668"></a><tt class="py-lineno">668</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L669"></a><tt class="py-lineno">669</tt> <tt class="py-line"> </tt>
-<a name="L670"></a><tt class="py-lineno">670</tt> <tt class="py-line"> <tt class="py-comment"># append currently received data to HTTP msg in buffer</tt> </tt>
-<a name="L671"></a><tt class="py-lineno">671</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">recvbuff</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">recvbuff</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
-<a name="L672"></a><tt class="py-lineno">672</tt> <tt class="py-line"> <tt class="py-name">statusline</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">httpbody</tt><tt class="py-op">,</tt> <tt class="py-name">buffer_rest</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingHTTP.parse_http_message()=nbxmpp.transports_nb.NonBlockingHTTP-class.html#parse_http_message"><a title="nbxmpp.transports_nb.NonBlockingHTTP.parse_http_message" class="py-name" href="#" onclick="return doclink('link-218', 'parse_http_message', 'link-218');">parse_http_message</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L673"></a><tt class="py-lineno">673</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">recvbuff</tt><tt class="py-op">)</tt> </tt>
-<a name="L674"></a><tt class="py-lineno">674</tt> <tt class="py-line"> </tt>
-<a name="L675"></a><tt class="py-lineno">675</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">statusline</tt> <tt class="py-keyword">and</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">and</tt> <tt class="py-name">httpbody</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L676"></a><tt class="py-lineno">676</tt> <tt class="py-line"> <tt id="link-219" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L678"></a><tt class="py-lineno">678</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L679"></a><tt class="py-lineno">679</tt> <tt class="py-line"> </tt>
+<a name="L680"></a><tt class="py-lineno">680</tt> <tt class="py-line"> <tt class="py-comment"># append currently received data to HTTP msg in buffer</tt> </tt>
+<a name="L681"></a><tt class="py-lineno">681</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">recvbuff</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">recvbuff</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L682"></a><tt class="py-lineno">682</tt> <tt class="py-line"> <tt class="py-name">statusline</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">httpbody</tt><tt class="py-op">,</tt> <tt class="py-name">buffer_rest</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name" targets="Method nbxmpp.transports_nb.NonBlockingHTTP.parse_http_message()=nbxmpp.transports_nb.NonBlockingHTTP-class.html#parse_http_message"><a title="nbxmpp.transports_nb.NonBlockingHTTP.parse_http_message" class="py-name" href="#" onclick="return doclink('link-218', 'parse_http_message', 'link-218');">parse_http_message</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L683"></a><tt class="py-lineno">683</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">recvbuff</tt><tt class="py-op">)</tt> </tt>
+<a name="L684"></a><tt class="py-lineno">684</tt> <tt class="py-line"> </tt>
+<a name="L685"></a><tt class="py-lineno">685</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">statusline</tt> <tt class="py-keyword">and</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">and</tt> <tt class="py-name">httpbody</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L686"></a><tt class="py-lineno">686</tt> <tt class="py-line"> <tt id="link-219" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1287,10 +1297,10 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-219', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Received incomplete HTTP response'</tt><tt class="py-op">)</tt> </tt>
-<a name="L677"></a><tt class="py-lineno">677</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L678"></a><tt class="py-lineno">678</tt> <tt class="py-line"> </tt>
-<a name="L679"></a><tt class="py-lineno">679</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">statusline</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'200'</tt><tt class="py-op">:</tt> </tt>
-<a name="L680"></a><tt class="py-lineno">680</tt> <tt class="py-line"> <tt id="link-220" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L687"></a><tt class="py-lineno">687</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L688"></a><tt class="py-lineno">688</tt> <tt class="py-line"> </tt>
+<a name="L689"></a><tt class="py-lineno">689</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">statusline</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'200'</tt><tt class="py-op">:</tt> </tt>
+<a name="L690"></a><tt class="py-lineno">690</tt> <tt class="py-line"> <tt id="link-220" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1302,19 +1312,19 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-220', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'HTTP Error: %s %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">statusline</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">statusline</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L681"></a><tt class="py-lineno">681</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L691"></a><tt class="py-lineno">691</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-221', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L682"></a><tt class="py-lineno">682</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L683"></a><tt class="py-lineno">683</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">expected_length</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Length'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L684"></a><tt class="py-lineno">684</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'Connection'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">and</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'Connection'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt class="py-string">'close'</tt><tt class="py-op">:</tt> </tt>
-<a name="L685"></a><tt class="py-lineno">685</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">close_current_connection</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L686"></a><tt class="py-lineno">686</tt> <tt class="py-line"> </tt>
-<a name="L687"></a><tt class="py-lineno">687</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">expected_length</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">httpbody</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L688"></a><tt class="py-lineno">688</tt> <tt class="py-line"> <tt class="py-comment"># If we haven't received the whole HTTP mess yet, let's end the thread.</tt> </tt>
-<a name="L689"></a><tt class="py-lineno">689</tt> <tt class="py-line"> <tt class="py-comment"># It will be finnished from one of following recvs on plugged socket.</tt> </tt>
-<a name="L690"></a><tt class="py-lineno">690</tt> <tt class="py-line"> <tt id="link-222" class="py-name"><a title="nbxmpp.auth_nb.log
+<a name="L692"></a><tt class="py-lineno">692</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L693"></a><tt class="py-lineno">693</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">expected_length</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Length'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L694"></a><tt class="py-lineno">694</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'Connection'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">and</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'Connection'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">==</tt><tt class="py-string">'close'</tt><tt class="py-op">:</tt> </tt>
+<a name="L695"></a><tt class="py-lineno">695</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">close_current_connection</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L696"></a><tt class="py-lineno">696</tt> <tt class="py-line"> </tt>
+<a name="L697"></a><tt class="py-lineno">697</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">expected_length</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">httpbody</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L698"></a><tt class="py-lineno">698</tt> <tt class="py-line"> <tt class="py-comment"># If we haven't received the whole HTTP mess yet, let's end the thread.</tt> </tt>
+<a name="L699"></a><tt class="py-lineno">699</tt> <tt class="py-line"> <tt class="py-comment"># It will be finnished from one of following recvs on plugged socket.</tt> </tt>
+<a name="L700"></a><tt class="py-lineno">700</tt> <tt class="py-line"> <tt id="link-222" class="py-name"><a title="nbxmpp.auth_nb.log
nbxmpp.bosh.log
nbxmpp.client_nb.log
nbxmpp.dispatcher_nb.log
@@ -1326,107 +1336,107 @@ nbxmpp.simplexml.log
nbxmpp.smacks.log
nbxmpp.tls_nb.log
nbxmpp.transports_nb.log" class="py-name" href="#" onclick="return doclink('link-222', 'log', 'link-8');">log</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'not enough bytes in HTTP response - %d expected, got %d'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L691"></a><tt class="py-lineno">691</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">expected_length</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">httpbody</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L692"></a><tt class="py-lineno">692</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L693"></a><tt class="py-lineno">693</tt> <tt class="py-line"> <tt class="py-comment"># First part of buffer has been extraced and is going to be handled,</tt> </tt>
-<a name="L694"></a><tt class="py-lineno">694</tt> <tt class="py-line"> <tt class="py-comment"># remove it from buffer</tt> </tt>
-<a name="L695"></a><tt class="py-lineno">695</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">recvbuff</tt> <tt class="py-op">=</tt> <tt class="py-name">buffer_rest</tt> </tt>
-<a name="L696"></a><tt class="py-lineno">696</tt> <tt class="py-line"> </tt>
-<a name="L697"></a><tt class="py-lineno">697</tt> <tt class="py-line"> <tt class="py-comment"># everything was received</tt> </tt>
-<a name="L698"></a><tt class="py-lineno">698</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">expected_length</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L699"></a><tt class="py-lineno">699</tt> <tt class="py-line"> </tt>
-<a name="L700"></a><tt class="py-lineno">700</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_persistent</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">close_current_connection</tt><tt class="py-op">:</tt> </tt>
-<a name="L701"></a><tt class="py-lineno">701</tt> <tt class="py-line"> <tt class="py-comment"># not-persistent connections disconnect after response</tt> </tt>
-<a name="L702"></a><tt class="py-lineno">702</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
+<a name="L701"></a><tt class="py-lineno">701</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">expected_length</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">httpbody</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L702"></a><tt class="py-lineno">702</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L703"></a><tt class="py-lineno">703</tt> <tt class="py-line"> <tt class="py-comment"># First part of buffer has been extraced and is going to be handled,</tt> </tt>
+<a name="L704"></a><tt class="py-lineno">704</tt> <tt class="py-line"> <tt class="py-comment"># remove it from buffer</tt> </tt>
+<a name="L705"></a><tt class="py-lineno">705</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">recvbuff</tt> <tt class="py-op">=</tt> <tt class="py-name">buffer_rest</tt> </tt>
+<a name="L706"></a><tt class="py-lineno">706</tt> <tt class="py-line"> </tt>
+<a name="L707"></a><tt class="py-lineno">707</tt> <tt class="py-line"> <tt class="py-comment"># everything was received</tt> </tt>
+<a name="L708"></a><tt class="py-lineno">708</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">expected_length</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L709"></a><tt class="py-lineno">709</tt> <tt class="py-line"> </tt>
+<a name="L710"></a><tt class="py-lineno">710</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_persistent</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">close_current_connection</tt><tt class="py-op">:</tt> </tt>
+<a name="L711"></a><tt class="py-lineno">711</tt> <tt class="py-line"> <tt class="py-comment"># not-persistent connections disconnect after response</tt> </tt>
+<a name="L712"></a><tt class="py-lineno">712</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.disconnect
nbxmpp.client_nb.NonBlockingClient.disconnect
nbxmpp.transports_nb.NonBlockingTCP.disconnect
nbxmpp.transports_nb.NonBlockingTransport.disconnect" class="py-name" href="#" onclick="return doclink('link-223', 'disconnect', 'link-43');">disconnect</a></tt><tt class="py-op">(</tt><tt class="py-name">do_callback</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L703"></a><tt class="py-lineno">703</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">close_current_connection</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L704"></a><tt class="py-lineno">704</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">last_recv_time</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L705"></a><tt class="py-lineno">705</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_receive</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">=</tt><tt class="py-name">httpbody</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L706"></a><tt class="py-lineno">706</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible" class="py-name" href="#" onclick="return doclink('link-224', 'on_http_request_possible', 'link-209');">on_http_request_possible</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L707"></a><tt class="py-lineno">707</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingHTTP.build_http_message"></a><div id="NonBlockingHTTP.build_http_message-def"><a name="L708"></a><tt class="py-lineno">708</tt> <a class="py-toggle" href="#" id="NonBlockingHTTP.build_http_message-toggle" onclick="return toggle('NonBlockingHTTP.build_http_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#build_http_message">build_http_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">httpbody</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'POST'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingHTTP.build_http_message-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTP.build_http_message-expanded"><a name="L709"></a><tt class="py-lineno">709</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L710"></a><tt class="py-lineno">710</tt> <tt class="py-line"><tt class="py-docstring"> Builds http message with given body. Values for headers and status line</tt> </tt>
-<a name="L711"></a><tt class="py-lineno">711</tt> <tt class="py-line"><tt class="py-docstring"> fields are taken from class variables</tt> </tt>
-<a name="L712"></a><tt class="py-lineno">712</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L713"></a><tt class="py-lineno">713</tt> <tt class="py-line"> <tt class="py-name">absolute_uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s://%s:%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_protocol</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_host</tt><tt class="py-op">,</tt> </tt>
-<a name="L714"></a><tt class="py-lineno">714</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_port</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_path</tt><tt class="py-op">)</tt> </tt>
-<a name="L715"></a><tt class="py-lineno">715</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'%s %s %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">absolute_uri</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_version</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L716"></a><tt class="py-lineno">716</tt> <tt class="py-line"> <tt class="py-string">'Host: %s:%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_host</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L717"></a><tt class="py-lineno">717</tt> <tt class="py-line"> <tt class="py-string">'User-Agent: Gajim'</tt><tt class="py-op">,</tt> </tt>
-<a name="L718"></a><tt class="py-lineno">718</tt> <tt class="py-line"> <tt class="py-string">'Content-Type: text/xml; charset=utf-8'</tt><tt class="py-op">,</tt> </tt>
-<a name="L719"></a><tt class="py-lineno">719</tt> <tt class="py-line"> <tt class="py-string">'Content-Length: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">httpbody</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-<a name="L720"></a><tt class="py-lineno">720</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">add_proxy_headers</tt><tt class="py-op">:</tt> </tt>
-<a name="L721"></a><tt class="py-lineno">721</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Proxy-Connection: keep-alive'</tt><tt class="py-op">)</tt> </tt>
-<a name="L722"></a><tt class="py-lineno">722</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Pragma: no-cache'</tt><tt class="py-op">)</tt> </tt>
-<a name="L723"></a><tt class="py-lineno">723</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_user</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_pass</tt><tt class="py-op">:</tt> </tt>
-<a name="L724"></a><tt class="py-lineno">724</tt> <tt class="py-line"> <tt class="py-name">credentials</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s:%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_user</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_pass</tt><tt class="py-op">)</tt> </tt>
-<a name="L725"></a><tt class="py-lineno">725</tt> <tt class="py-line"> <tt class="py-name">credentials</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">encodestring</tt><tt class="py-op">(</tt><tt class="py-name">credentials</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L726"></a><tt class="py-lineno">726</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Proxy-Authorization: Basic %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">credentials</tt><tt class="py-op">)</tt> </tt>
-<a name="L727"></a><tt class="py-lineno">727</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L728"></a><tt class="py-lineno">728</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Connection: Keep-Alive'</tt><tt class="py-op">)</tt> </tt>
-<a name="L729"></a><tt class="py-lineno">729</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'\r\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L730"></a><tt class="py-lineno">730</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-string">'\r\n'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L731"></a><tt class="py-lineno">731</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-string">'%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">httpbody</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L732"></a><tt class="py-lineno">732</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingHTTP.parse_http_message"></a><div id="NonBlockingHTTP.parse_http_message-def"><a name="L733"></a><tt class="py-lineno">733</tt> <a class="py-toggle" href="#" id="NonBlockingHTTP.parse_http_message-toggle" onclick="return toggle('NonBlockingHTTP.parse_http_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#parse_http_message">parse_http_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingHTTP.parse_http_message-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTP.parse_http_message-expanded"><a name="L734"></a><tt class="py-lineno">734</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L735"></a><tt class="py-lineno">735</tt> <tt class="py-line"><tt class="py-docstring"> Split http message into a tuple:</tt> </tt>
-<a name="L736"></a><tt class="py-lineno">736</tt> <tt class="py-line"><tt class="py-docstring"> - (statusline - list of e.g. ['HTTP/1.1', '200', 'OK'],</tt> </tt>
-<a name="L737"></a><tt class="py-lineno">737</tt> <tt class="py-line"><tt class="py-docstring"> - headers - dictionary of headers e.g. {'Content-Length': '604',</tt> </tt>
-<a name="L738"></a><tt class="py-lineno">738</tt> <tt class="py-line"><tt class="py-docstring"> 'Content-Type': 'text/xml; charset=utf-8'},</tt> </tt>
-<a name="L739"></a><tt class="py-lineno">739</tt> <tt class="py-line"><tt class="py-docstring"> - httpbody - string with http body)</tt> </tt>
-<a name="L740"></a><tt class="py-lineno">740</tt> <tt class="py-line"><tt class="py-docstring"> - http_rest - what is left in the message after a full HTTP header + body</tt> </tt>
-<a name="L741"></a><tt class="py-lineno">741</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L742"></a><tt class="py-lineno">742</tt> <tt class="py-line"> <tt class="py-name">splitted</tt> <tt class="py-op">=</tt> <tt class="py-name">message</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\r\n\r\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L743"></a><tt class="py-lineno">743</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">splitted</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
-<a name="L744"></a><tt class="py-lineno">744</tt> <tt class="py-line"> <tt class="py-comment"># no complete http message. Keep filling the buffer until we find one</tt> </tt>
-<a name="L745"></a><tt class="py-lineno">745</tt> <tt class="py-line"> <tt class="py-name">buffer_rest</tt> <tt class="py-op">=</tt> <tt class="py-name">message</tt> </tt>
-<a name="L746"></a><tt class="py-lineno">746</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">buffer_rest</tt><tt class="py-op">)</tt> </tt>
-<a name="L747"></a><tt class="py-lineno">747</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L748"></a><tt class="py-lineno">748</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">header</tt><tt class="py-op">,</tt> <tt class="py-name">httpbody</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">splitted</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L749"></a><tt class="py-lineno">749</tt> <tt class="py-line"> <tt class="py-name">header</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'\r'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L750"></a><tt class="py-lineno">750</tt> <tt class="py-line"> <tt class="py-name">header</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">.</tt><tt class="py-name">lstrip</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L751"></a><tt class="py-lineno">751</tt> <tt class="py-line"> <tt class="py-name">header</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L752"></a><tt class="py-lineno">752</tt> <tt class="py-line"> <tt class="py-name">statusline</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L753"></a><tt class="py-lineno">753</tt> <tt class="py-line"> <tt class="py-name">header</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L754"></a><tt class="py-lineno">754</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L755"></a><tt class="py-lineno">755</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">dummy</tt> <tt class="py-keyword">in</tt> <tt class="py-name">header</tt><tt class="py-op">:</tt> </tt>
-<a name="L756"></a><tt class="py-lineno">756</tt> <tt class="py-line"> <tt class="py-name">row</tt> <tt class="py-op">=</tt> <tt class="py-name">dummy</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L757"></a><tt class="py-lineno">757</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-name">row</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">row</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L758"></a><tt class="py-lineno">758</tt> <tt class="py-line"> <tt class="py-name">body_size</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Length'</tt><tt class="py-op">]</tt> </tt>
-<a name="L759"></a><tt class="py-lineno">759</tt> <tt class="py-line"> <tt class="py-name">rest_splitted</tt> <tt class="py-op">=</tt> <tt class="py-name">splitted</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L760"></a><tt class="py-lineno">760</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">httpbody</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">body_size</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">rest_splitted</tt><tt class="py-op">:</tt> </tt>
-<a name="L761"></a><tt class="py-lineno">761</tt> <tt class="py-line"> <tt class="py-comment"># Complete httpbody until it has the announced size</tt> </tt>
-<a name="L762"></a><tt class="py-lineno">762</tt> <tt class="py-line"> <tt class="py-name">httpbody</tt> <tt class="py-op">=</tt> <tt class="py-string">'\n\n'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">httpbody</tt><tt class="py-op">,</tt> <tt class="py-name">rest_splitted</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L763"></a><tt class="py-lineno">763</tt> <tt class="py-line"> <tt class="py-name">buffer_rest</tt> <tt class="py-op">=</tt> <tt class="py-string">"\n\n"</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">rest_splitted</tt><tt class="py-op">)</tt> </tt>
-<a name="L764"></a><tt class="py-lineno">764</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">statusline</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">httpbody</tt><tt class="py-op">,</tt> <tt class="py-name">buffer_rest</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L765"></a><tt class="py-lineno">765</tt> <tt class="py-line"> </tt>
-<a name="L766"></a><tt class="py-lineno">766</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingHTTPBOSH"></a><div id="NonBlockingHTTPBOSH-def"><a name="L767"></a><tt class="py-lineno">767</tt> <a class="py-toggle" href="#" id="NonBlockingHTTPBOSH-toggle" onclick="return toggle('NonBlockingHTTPBOSH');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html">NonBlockingHTTPBOSH</a><tt class="py-op">(</tt><tt class="py-base-class">NonBlockingHTTP</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingHTTPBOSH-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="NonBlockingHTTPBOSH-expanded"><a name="L768"></a><tt class="py-lineno">768</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L769"></a><tt class="py-lineno">769</tt> <tt class="py-line"><tt class="py-docstring"> Class for BOSH HTTP connections. Slightly redefines HTTP transport by</tt> </tt>
-<a name="L770"></a><tt class="py-lineno">770</tt> <tt class="py-line"><tt class="py-docstring"> calling bosh bodytag generating callback before putting data on wire</tt> </tt>
-<a name="L771"></a><tt class="py-lineno">771</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L772"></a><tt class="py-lineno">772</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingHTTPBOSH.set_stanza_build_cb"></a><div id="NonBlockingHTTPBOSH.set_stanza_build_cb-def"><a name="L773"></a><tt class="py-lineno">773</tt> <a class="py-toggle" href="#" id="NonBlockingHTTPBOSH.set_stanza_build_cb-toggle" onclick="return toggle('NonBlockingHTTPBOSH.set_stanza_build_cb');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html#set_stanza_build_cb">set_stanza_build_cb</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">build_cb</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingHTTPBOSH.set_stanza_build_cb-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTPBOSH.set_stanza_build_cb-expanded"><a name="L774"></a><tt class="py-lineno">774</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">build_cb</tt> <tt class="py-op">=</tt> <tt class="py-name">build_cb</tt> </tt>
-</div><a name="L775"></a><tt class="py-lineno">775</tt> <tt class="py-line"> </tt>
-<a name="NonBlockingHTTPBOSH._do_send"></a><div id="NonBlockingHTTPBOSH._do_send-def"><a name="L776"></a><tt class="py-lineno">776</tt> <a class="py-toggle" href="#" id="NonBlockingHTTPBOSH._do_send-toggle" onclick="return toggle('NonBlockingHTTPBOSH._do_send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html#_do_send">_do_send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="NonBlockingHTTPBOSH._do_send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTPBOSH._do_send-expanded"><a name="L777"></a><tt class="py-lineno">777</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">state</tt> <tt class="py-op">==</tt> <tt id="link-225" class="py-name"><a title="nbxmpp.transports_nb.PROXY_CONNECTING" class="py-name" href="#" onclick="return doclink('link-225', 'PROXY_CONNECTING', 'link-21');">PROXY_CONNECTING</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L778"></a><tt class="py-lineno">778</tt> <tt class="py-line"> <tt id="link-226" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP" class="py-name" href="#" onclick="return doclink('link-226', 'NonBlockingTCP', 'link-204');">NonBlockingTCP</a></tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingHTTPBOSH._do_send
+<a name="L713"></a><tt class="py-lineno">713</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">close_current_connection</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L714"></a><tt class="py-lineno">714</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">last_recv_time</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L715"></a><tt class="py-lineno">715</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">on_receive</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">=</tt><tt class="py-name">httpbody</tt><tt class="py-op">,</tt> <tt class="py-name">socket</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L716"></a><tt class="py-lineno">716</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="nbxmpp.bosh.NonBlockingBOSH.on_http_request_possible" class="py-name" href="#" onclick="return doclink('link-224', 'on_http_request_possible', 'link-209');">on_http_request_possible</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L717"></a><tt class="py-lineno">717</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingHTTP.build_http_message"></a><div id="NonBlockingHTTP.build_http_message-def"><a name="L718"></a><tt class="py-lineno">718</tt> <a class="py-toggle" href="#" id="NonBlockingHTTP.build_http_message-toggle" onclick="return toggle('NonBlockingHTTP.build_http_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#build_http_message">build_http_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">httpbody</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'POST'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingHTTP.build_http_message-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTP.build_http_message-expanded"><a name="L719"></a><tt class="py-lineno">719</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L720"></a><tt class="py-lineno">720</tt> <tt class="py-line"><tt class="py-docstring"> Builds http message with given body. Values for headers and status line</tt> </tt>
+<a name="L721"></a><tt class="py-lineno">721</tt> <tt class="py-line"><tt class="py-docstring"> fields are taken from class variables</tt> </tt>
+<a name="L722"></a><tt class="py-lineno">722</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L723"></a><tt class="py-lineno">723</tt> <tt class="py-line"> <tt class="py-name">absolute_uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s://%s:%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_protocol</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_host</tt><tt class="py-op">,</tt> </tt>
+<a name="L724"></a><tt class="py-lineno">724</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_port</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_path</tt><tt class="py-op">)</tt> </tt>
+<a name="L725"></a><tt class="py-lineno">725</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'%s %s %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">absolute_uri</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_version</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L726"></a><tt class="py-lineno">726</tt> <tt class="py-line"> <tt class="py-string">'Host: %s:%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_host</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">http_port</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L727"></a><tt class="py-lineno">727</tt> <tt class="py-line"> <tt class="py-string">'User-Agent: Gajim'</tt><tt class="py-op">,</tt> </tt>
+<a name="L728"></a><tt class="py-lineno">728</tt> <tt class="py-line"> <tt class="py-string">'Content-Type: text/xml; charset=utf-8'</tt><tt class="py-op">,</tt> </tt>
+<a name="L729"></a><tt class="py-lineno">729</tt> <tt class="py-line"> <tt class="py-string">'Content-Length: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">httpbody</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L730"></a><tt class="py-lineno">730</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">add_proxy_headers</tt><tt class="py-op">:</tt> </tt>
+<a name="L731"></a><tt class="py-lineno">731</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Proxy-Connection: keep-alive'</tt><tt class="py-op">)</tt> </tt>
+<a name="L732"></a><tt class="py-lineno">732</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Pragma: no-cache'</tt><tt class="py-op">)</tt> </tt>
+<a name="L733"></a><tt class="py-lineno">733</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_user</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_pass</tt><tt class="py-op">:</tt> </tt>
+<a name="L734"></a><tt class="py-lineno">734</tt> <tt class="py-line"> <tt class="py-name">credentials</tt> <tt class="py-op">=</tt> <tt class="py-string">'%s:%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_user</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">proxy_pass</tt><tt class="py-op">)</tt> </tt>
+<a name="L735"></a><tt class="py-lineno">735</tt> <tt class="py-line"> <tt class="py-name">credentials</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">encodestring</tt><tt class="py-op">(</tt><tt class="py-name">credentials</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L736"></a><tt class="py-lineno">736</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Proxy-Authorization: Basic %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">credentials</tt><tt class="py-op">)</tt> </tt>
+<a name="L737"></a><tt class="py-lineno">737</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L738"></a><tt class="py-lineno">738</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Connection: Keep-Alive'</tt><tt class="py-op">)</tt> </tt>
+<a name="L739"></a><tt class="py-lineno">739</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'\r\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L740"></a><tt class="py-lineno">740</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-string">'\r\n'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L741"></a><tt class="py-lineno">741</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-string">'%s%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">httpbody</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L742"></a><tt class="py-lineno">742</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingHTTP.parse_http_message"></a><div id="NonBlockingHTTP.parse_http_message-def"><a name="L743"></a><tt class="py-lineno">743</tt> <a class="py-toggle" href="#" id="NonBlockingHTTP.parse_http_message-toggle" onclick="return toggle('NonBlockingHTTP.parse_http_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#parse_http_message">parse_http_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingHTTP.parse_http_message-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTP.parse_http_message-expanded"><a name="L744"></a><tt class="py-lineno">744</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L745"></a><tt class="py-lineno">745</tt> <tt class="py-line"><tt class="py-docstring"> Split http message into a tuple:</tt> </tt>
+<a name="L746"></a><tt class="py-lineno">746</tt> <tt class="py-line"><tt class="py-docstring"> - (statusline - list of e.g. ['HTTP/1.1', '200', 'OK'],</tt> </tt>
+<a name="L747"></a><tt class="py-lineno">747</tt> <tt class="py-line"><tt class="py-docstring"> - headers - dictionary of headers e.g. {'Content-Length': '604',</tt> </tt>
+<a name="L748"></a><tt class="py-lineno">748</tt> <tt class="py-line"><tt class="py-docstring"> 'Content-Type': 'text/xml; charset=utf-8'},</tt> </tt>
+<a name="L749"></a><tt class="py-lineno">749</tt> <tt class="py-line"><tt class="py-docstring"> - httpbody - string with http body)</tt> </tt>
+<a name="L750"></a><tt class="py-lineno">750</tt> <tt class="py-line"><tt class="py-docstring"> - http_rest - what is left in the message after a full HTTP header + body</tt> </tt>
+<a name="L751"></a><tt class="py-lineno">751</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L752"></a><tt class="py-lineno">752</tt> <tt class="py-line"> <tt class="py-name">splitted</tt> <tt class="py-op">=</tt> <tt class="py-name">message</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\r\n\r\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L753"></a><tt class="py-lineno">753</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">splitted</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L754"></a><tt class="py-lineno">754</tt> <tt class="py-line"> <tt class="py-comment"># no complete http message. Keep filling the buffer until we find one</tt> </tt>
+<a name="L755"></a><tt class="py-lineno">755</tt> <tt class="py-line"> <tt class="py-name">buffer_rest</tt> <tt class="py-op">=</tt> <tt class="py-name">message</tt> </tt>
+<a name="L756"></a><tt class="py-lineno">756</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">buffer_rest</tt><tt class="py-op">)</tt> </tt>
+<a name="L757"></a><tt class="py-lineno">757</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L758"></a><tt class="py-lineno">758</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">header</tt><tt class="py-op">,</tt> <tt class="py-name">httpbody</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">splitted</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L759"></a><tt class="py-lineno">759</tt> <tt class="py-line"> <tt class="py-name">header</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'\r'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L760"></a><tt class="py-lineno">760</tt> <tt class="py-line"> <tt class="py-name">header</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">.</tt><tt class="py-name">lstrip</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L761"></a><tt class="py-lineno">761</tt> <tt class="py-line"> <tt class="py-name">header</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L762"></a><tt class="py-lineno">762</tt> <tt class="py-line"> <tt class="py-name">statusline</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L763"></a><tt class="py-lineno">763</tt> <tt class="py-line"> <tt class="py-name">header</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L764"></a><tt class="py-lineno">764</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L765"></a><tt class="py-lineno">765</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">dummy</tt> <tt class="py-keyword">in</tt> <tt class="py-name">header</tt><tt class="py-op">:</tt> </tt>
+<a name="L766"></a><tt class="py-lineno">766</tt> <tt class="py-line"> <tt class="py-name">row</tt> <tt class="py-op">=</tt> <tt class="py-name">dummy</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L767"></a><tt class="py-lineno">767</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-name">row</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">row</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L768"></a><tt class="py-lineno">768</tt> <tt class="py-line"> <tt class="py-name">body_size</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Length'</tt><tt class="py-op">]</tt> </tt>
+<a name="L769"></a><tt class="py-lineno">769</tt> <tt class="py-line"> <tt class="py-name">rest_splitted</tt> <tt class="py-op">=</tt> <tt class="py-name">splitted</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L770"></a><tt class="py-lineno">770</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">httpbody</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">body_size</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">rest_splitted</tt><tt class="py-op">:</tt> </tt>
+<a name="L771"></a><tt class="py-lineno">771</tt> <tt class="py-line"> <tt class="py-comment"># Complete httpbody until it has the announced size</tt> </tt>
+<a name="L772"></a><tt class="py-lineno">772</tt> <tt class="py-line"> <tt class="py-name">httpbody</tt> <tt class="py-op">=</tt> <tt class="py-string">'\n\n'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">httpbody</tt><tt class="py-op">,</tt> <tt class="py-name">rest_splitted</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L773"></a><tt class="py-lineno">773</tt> <tt class="py-line"> <tt class="py-name">buffer_rest</tt> <tt class="py-op">=</tt> <tt class="py-string">"\n\n"</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">rest_splitted</tt><tt class="py-op">)</tt> </tt>
+<a name="L774"></a><tt class="py-lineno">774</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">statusline</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">httpbody</tt><tt class="py-op">,</tt> <tt class="py-name">buffer_rest</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L775"></a><tt class="py-lineno">775</tt> <tt class="py-line"> </tt>
+<a name="L776"></a><tt class="py-lineno">776</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingHTTPBOSH"></a><div id="NonBlockingHTTPBOSH-def"><a name="L777"></a><tt class="py-lineno">777</tt> <a class="py-toggle" href="#" id="NonBlockingHTTPBOSH-toggle" onclick="return toggle('NonBlockingHTTPBOSH');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html">NonBlockingHTTPBOSH</a><tt class="py-op">(</tt><tt class="py-base-class">NonBlockingHTTP</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingHTTPBOSH-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="NonBlockingHTTPBOSH-expanded"><a name="L778"></a><tt class="py-lineno">778</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L779"></a><tt class="py-lineno">779</tt> <tt class="py-line"><tt class="py-docstring"> Class for BOSH HTTP connections. Slightly redefines HTTP transport by</tt> </tt>
+<a name="L780"></a><tt class="py-lineno">780</tt> <tt class="py-line"><tt class="py-docstring"> calling bosh bodytag generating callback before putting data on wire</tt> </tt>
+<a name="L781"></a><tt class="py-lineno">781</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L782"></a><tt class="py-lineno">782</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingHTTPBOSH.set_stanza_build_cb"></a><div id="NonBlockingHTTPBOSH.set_stanza_build_cb-def"><a name="L783"></a><tt class="py-lineno">783</tt> <a class="py-toggle" href="#" id="NonBlockingHTTPBOSH.set_stanza_build_cb-toggle" onclick="return toggle('NonBlockingHTTPBOSH.set_stanza_build_cb');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html#set_stanza_build_cb">set_stanza_build_cb</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">build_cb</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingHTTPBOSH.set_stanza_build_cb-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTPBOSH.set_stanza_build_cb-expanded"><a name="L784"></a><tt class="py-lineno">784</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">build_cb</tt> <tt class="py-op">=</tt> <tt class="py-name">build_cb</tt> </tt>
+</div><a name="L785"></a><tt class="py-lineno">785</tt> <tt class="py-line"> </tt>
+<a name="NonBlockingHTTPBOSH._do_send"></a><div id="NonBlockingHTTPBOSH._do_send-def"><a name="L786"></a><tt class="py-lineno">786</tt> <a class="py-toggle" href="#" id="NonBlockingHTTPBOSH._do_send-toggle" onclick="return toggle('NonBlockingHTTPBOSH._do_send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html#_do_send">_do_send</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="NonBlockingHTTPBOSH._do_send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="NonBlockingHTTPBOSH._do_send-expanded"><a name="L787"></a><tt class="py-lineno">787</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">state</tt> <tt class="py-op">==</tt> <tt id="link-225" class="py-name"><a title="nbxmpp.transports_nb.PROXY_CONNECTING" class="py-name" href="#" onclick="return doclink('link-225', 'PROXY_CONNECTING', 'link-21');">PROXY_CONNECTING</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L788"></a><tt class="py-lineno">788</tt> <tt class="py-line"> <tt id="link-226" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP" class="py-name" href="#" onclick="return doclink('link-226', 'NonBlockingTCP', 'link-204');">NonBlockingTCP</a></tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingHTTPBOSH._do_send
nbxmpp.transports_nb.NonBlockingTCP._do_send" class="py-name" href="#" onclick="return doclink('link-227', '_do_send', 'link-132');">_do_send</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L779"></a><tt class="py-lineno">779</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L780"></a><tt class="py-lineno">780</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt><tt class="py-op">:</tt> </tt>
-<a name="L781"></a><tt class="py-lineno">781</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">build_cb</tt><tt class="py-op">(</tt><tt class="py-name">socket</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L782"></a><tt class="py-lineno">782</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP.encode_stanza" class="py-name" href="#" onclick="return doclink('link-228', 'encode_stanza', 'link-169');">encode_stanza</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
-<a name="L783"></a><tt class="py-lineno">783</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingHTTP.build_http_message" class="py-name" href="#" onclick="return doclink('link-229', 'build_http_message', 'link-213');">build_http_message</a></tt><tt class="py-op">(</tt><tt class="py-name">httpbody</tt><tt class="py-op">=</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
-<a name="L784"></a><tt class="py-lineno">784</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt> </tt>
-<a name="L785"></a><tt class="py-lineno">785</tt> <tt class="py-line"> <tt id="link-230" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP" class="py-name" href="#" onclick="return doclink('link-230', 'NonBlockingTCP', 'link-204');">NonBlockingTCP</a></tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingHTTPBOSH._do_send
+<a name="L789"></a><tt class="py-lineno">789</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L790"></a><tt class="py-lineno">790</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt><tt class="py-op">:</tt> </tt>
+<a name="L791"></a><tt class="py-lineno">791</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">build_cb</tt><tt class="py-op">(</tt><tt class="py-name">socket</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L792"></a><tt class="py-lineno">792</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP.encode_stanza" class="py-name" href="#" onclick="return doclink('link-228', 'encode_stanza', 'link-169');">encode_stanza</a></tt><tt class="py-op">(</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
+<a name="L793"></a><tt class="py-lineno">793</tt> <tt class="py-line"> <tt class="py-name">stanza</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingHTTP.build_http_message" class="py-name" href="#" onclick="return doclink('link-229', 'build_http_message', 'link-213');">build_http_message</a></tt><tt class="py-op">(</tt><tt class="py-name">httpbody</tt><tt class="py-op">=</tt><tt class="py-name">stanza</tt><tt class="py-op">)</tt> </tt>
+<a name="L794"></a><tt class="py-lineno">794</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sendbuff</tt> <tt class="py-op">=</tt> <tt class="py-name">stanza</tt> </tt>
+<a name="L795"></a><tt class="py-lineno">795</tt> <tt class="py-line"> <tt id="link-230" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingTCP" class="py-name" href="#" onclick="return doclink('link-230', 'NonBlockingTCP', 'link-204');">NonBlockingTCP</a></tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="nbxmpp.transports_nb.NonBlockingHTTPBOSH._do_send
nbxmpp.transports_nb.NonBlockingTCP._do_send" class="py-name" href="#" onclick="return doclink('link-231', '_do_send', 'link-132');">_do_send</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L786"></a><tt class="py-lineno">786</tt> <tt class="py-line"> </tt><script type="text/javascript">
+</div></div><a name="L796"></a><tt class="py-lineno">796</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -1464,7 +1474,7 @@ expandto(location.href);
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:09 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:16 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.transports_nb.NonBlockingHTTP-class.html b/doc/apidocs/nbxmpp.transports_nb.NonBlockingHTTP-class.html
index 02cbe35..560b369 100644
--- a/doc/apidocs/nbxmpp.transports_nb.NonBlockingHTTP-class.html
+++ b/doc/apidocs/nbxmpp.transports_nb.NonBlockingHTTP-class.html
@@ -64,8 +64,12 @@
<h1 class="epydoc">Class NonBlockingHTTP</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.transports_nb-pysrc.html#NonBlockingHTTP">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_t_6" name="uml_class_diagram_for_nbxmpp_t_6">
-<area shape="rect" id="node242" href="nbxmpp.idlequeue.IdleObject-class.html#fd" title="filedescriptor, must be unique for each IdleObject" alt="" coords="300,248,431,267"/>
-<area shape="rect" id="node1" href="nbxmpp.idlequeue.IdleObject-class.html" title="Idle listener interface. Listed methods are called by IdleQueue." alt="" coords="288,223,443,281"/>
+<area shape="rect" id="node238" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#__init__" title="Each trasport class can have different constructor but it has to have at least all the arguments of NonBlockingTransport constructor" alt="" coords="17,719,989,737"/>
+<area shape="rect" id="node238" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#http_send" title="nbxmpp.transports_nb.NonBlockingHTTP.http_send" alt="" coords="17,737,989,756"/>
+<area shape="rect" id="node238" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#build_http_message" title="Builds http message with given body. Values for headers and status line fields are taken from class variables" alt="" coords="17,756,989,775"/>
+<area shape="rect" id="node238" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#parse_http_message" title="(statusline &#45; list of e.g. [&#39;HTTP/1.1&#39;, &#39;200&#39;, &#39;OK&#39;]," alt="" coords="17,775,989,793"/>
+<area shape="rect" id="node1" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html" title="Socket wrapper that creates HTTP message out of sent data and peels&#45;off HTTP headers from incoming messages" alt="" coords="5,686,1000,799"/>
+<area shape="rect" id="node6" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html" title="Class for BOSH HTTP connections. Slightly redefines HTTP transport by calling bosh bodytag generating callback before putting data on wire" alt="" coords="412,819,596,858"/>
<area shape="rect" id="node239" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#start_disconnect" title="nbxmpp.transports_nb.NonBlockingTCP.start_disconnect" alt="" coords="311,436,697,455"/>
<area shape="rect" id="node239" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#connect" title="Creates and connects transport to server and port defined in conn_5tuple which should be item from list returned from getaddrinfo" alt="" coords="311,455,697,473"/>
<area shape="rect" id="node239" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#tls_init" title="Estabilishes TLS/SSL using this TCP connection by plugging a NonBlockingTLS module" alt="" coords="311,473,697,492"/>
@@ -79,15 +83,8 @@
<area shape="rect" id="node239" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#send" title="Append raw_data to the queue of messages to be send. If supplied data is unicode string, encode it to utf&#45;8." alt="" coords="311,623,697,641"/>
<area shape="rect" id="node239" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#encode_stanza" title="Encode str or unicode to utf&#45;8" alt="" coords="311,641,697,660"/>
<area shape="rect" id="node2" href="nbxmpp.transports_nb.NonBlockingTCP-class.html" title="Non&#45;blocking TCP socket wrapper" alt="" coords="299,403,709,666"/>
-<area shape="rect" id="node238" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#__init__" title="Each trasport class can have different constructor but it has to have at least all the arguments of NonBlockingTransport constructor" alt="" coords="17,719,989,737"/>
-<area shape="rect" id="node238" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#http_send" title="nbxmpp.transports_nb.NonBlockingHTTP.http_send" alt="" coords="17,737,989,756"/>
-<area shape="rect" id="node238" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#build_http_message" title="Builds http message with given body. Values for headers and status line fields are taken from class variables" alt="" coords="17,756,989,775"/>
-<area shape="rect" id="node238" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#parse_http_message" title="(statusline &#45; list of e.g. [&#39;HTTP/1.1&#39;, &#39;200&#39;, &#39;OK&#39;]," alt="" coords="17,775,989,793"/>
-<area shape="rect" id="node4" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html" title="Socket wrapper that creates HTTP message out of sent data and peels&#45;off HTTP headers from incoming messages" alt="" coords="5,686,1000,799"/>
-<area shape="rect" id="node241" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="529,39,755,57"/>
-<area shape="rect" id="node241" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="529,57,755,76"/>
-<area shape="rect" id="node241" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="529,76,755,95"/>
-<area shape="rect" id="node3" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="517,6,765,101"/>
+<area shape="rect" id="node242" href="nbxmpp.idlequeue.IdleObject-class.html#fd" title="filedescriptor, must be unique for each IdleObject" alt="" coords="300,248,431,267"/>
+<area shape="rect" id="node3" href="nbxmpp.idlequeue.IdleObject-class.html" title="Idle listener interface. Listed methods are called by IdleQueue." alt="" coords="288,223,443,281"/>
<area shape="rect" id="node240" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#plugin" title="nbxmpp.transports_nb.NonBlockingTransport.plugin" alt="" coords="484,153,801,172"/>
<area shape="rect" id="node240" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#plugout" title="nbxmpp.transports_nb.NonBlockingTransport.plugout" alt="" coords="484,172,801,191"/>
<area shape="rect" id="node240" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_state" title="nbxmpp.transports_nb.NonBlockingTransport.set_state" alt="" coords="484,191,801,209"/>
@@ -100,8 +97,11 @@
<area shape="rect" id="node240" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#get_fd" title="nbxmpp.transports_nb.NonBlockingTransport.get_fd" alt="" coords="484,321,801,340"/>
<area shape="rect" id="node240" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_send_timeout" title="nbxmpp.transports_nb.NonBlockingTransport.set_send_timeout" alt="" coords="484,340,801,359"/>
<area shape="rect" id="node240" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_send_timeout2" title="nbxmpp.transports_nb.NonBlockingTransport.set_send_timeout2" alt="" coords="484,359,801,377"/>
-<area shape="rect" id="node5" href="nbxmpp.transports_nb.NonBlockingTransport-class.html" title="Abstract class representing a transport" alt="" coords="472,121,813,383"/>
-<area shape="rect" id="node6" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html" title="Class for BOSH HTTP connections. Slightly redefines HTTP transport by calling bosh bodytag generating callback before putting data on wire" alt="" coords="412,819,596,858"/>
+<area shape="rect" id="node4" href="nbxmpp.transports_nb.NonBlockingTransport-class.html" title="Abstract class representing a transport" alt="" coords="472,121,813,383"/>
+<area shape="rect" id="node241" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="529,39,755,57"/>
+<area shape="rect" id="node241" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="529,57,755,76"/>
+<area shape="rect" id="node241" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="529,76,755,95"/>
+<area shape="rect" id="node5" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="517,6,765,101"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_t_6.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_t_6" ismap="ismap" class="graph-without-title" />
</center>
@@ -522,7 +522,7 @@ fields are taken from class variables
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html b/doc/apidocs/nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html
index 339bd2e..0ddec44 100644
--- a/doc/apidocs/nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html
+++ b/doc/apidocs/nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html
@@ -66,8 +66,13 @@
<center> <map id="uml_class_diagram_for_nbxmpp_t_7" name="uml_class_diagram_for_nbxmpp_t_7">
<area shape="rect" id="node244" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html#set_stanza_build_cb" title="nbxmpp.transports_nb.NonBlockingHTTPBOSH.set_stanza_build_cb" alt="" coords="389,852,617,871"/>
<area shape="rect" id="node1" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html" title="Class for BOSH HTTP connections. Slightly redefines HTTP transport by calling bosh bodytag generating callback before putting data on wire" alt="" coords="377,819,628,877"/>
+<area shape="rect" id="node245" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#__init__" title="Each trasport class can have different constructor but it has to have at least all the arguments of NonBlockingTransport constructor" alt="" coords="17,719,989,737"/>
+<area shape="rect" id="node245" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#http_send" title="nbxmpp.transports_nb.NonBlockingHTTP.http_send" alt="" coords="17,737,989,756"/>
+<area shape="rect" id="node245" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#build_http_message" title="Builds http message with given body. Values for headers and status line fields are taken from class variables" alt="" coords="17,756,989,775"/>
+<area shape="rect" id="node245" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#parse_http_message" title="(statusline &#45; list of e.g. [&#39;HTTP/1.1&#39;, &#39;200&#39;, &#39;OK&#39;]," alt="" coords="17,775,989,793"/>
+<area shape="rect" id="node2" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html" title="Socket wrapper that creates HTTP message out of sent data and peels&#45;off HTTP headers from incoming messages" alt="" coords="5,686,1000,799"/>
<area shape="rect" id="node249" href="nbxmpp.idlequeue.IdleObject-class.html#fd" title="filedescriptor, must be unique for each IdleObject" alt="" coords="300,248,431,267"/>
-<area shape="rect" id="node2" href="nbxmpp.idlequeue.IdleObject-class.html" title="Idle listener interface. Listed methods are called by IdleQueue." alt="" coords="288,223,443,281"/>
+<area shape="rect" id="node3" href="nbxmpp.idlequeue.IdleObject-class.html" title="Idle listener interface. Listed methods are called by IdleQueue." alt="" coords="288,223,443,281"/>
<area shape="rect" id="node246" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#start_disconnect" title="nbxmpp.transports_nb.NonBlockingTCP.start_disconnect" alt="" coords="311,436,697,455"/>
<area shape="rect" id="node246" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#connect" title="Creates and connects transport to server and port defined in conn_5tuple which should be item from list returned from getaddrinfo" alt="" coords="311,455,697,473"/>
<area shape="rect" id="node246" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#tls_init" title="Estabilishes TLS/SSL using this TCP connection by plugging a NonBlockingTLS module" alt="" coords="311,473,697,492"/>
@@ -80,11 +85,7 @@
<area shape="rect" id="node246" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#remove_timeout" title="nbxmpp.transports_nb.NonBlockingTCP.remove_timeout" alt="" coords="311,604,697,623"/>
<area shape="rect" id="node246" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#send" title="Append raw_data to the queue of messages to be send. If supplied data is unicode string, encode it to utf&#45;8." alt="" coords="311,623,697,641"/>
<area shape="rect" id="node246" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#encode_stanza" title="Encode str or unicode to utf&#45;8" alt="" coords="311,641,697,660"/>
-<area shape="rect" id="node6" href="nbxmpp.transports_nb.NonBlockingTCP-class.html" title="Non&#45;blocking TCP socket wrapper" alt="" coords="299,403,709,666"/>
-<area shape="rect" id="node248" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="529,39,755,57"/>
-<area shape="rect" id="node248" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="529,57,755,76"/>
-<area shape="rect" id="node248" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="529,76,755,95"/>
-<area shape="rect" id="node3" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="517,6,765,101"/>
+<area shape="rect" id="node4" href="nbxmpp.transports_nb.NonBlockingTCP-class.html" title="Non&#45;blocking TCP socket wrapper" alt="" coords="299,403,709,666"/>
<area shape="rect" id="node247" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#plugin" title="nbxmpp.transports_nb.NonBlockingTransport.plugin" alt="" coords="484,153,801,172"/>
<area shape="rect" id="node247" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#plugout" title="nbxmpp.transports_nb.NonBlockingTransport.plugout" alt="" coords="484,172,801,191"/>
<area shape="rect" id="node247" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_state" title="nbxmpp.transports_nb.NonBlockingTransport.set_state" alt="" coords="484,191,801,209"/>
@@ -98,11 +99,10 @@
<area shape="rect" id="node247" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_send_timeout" title="nbxmpp.transports_nb.NonBlockingTransport.set_send_timeout" alt="" coords="484,340,801,359"/>
<area shape="rect" id="node247" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_send_timeout2" title="nbxmpp.transports_nb.NonBlockingTransport.set_send_timeout2" alt="" coords="484,359,801,377"/>
<area shape="rect" id="node5" href="nbxmpp.transports_nb.NonBlockingTransport-class.html" title="Abstract class representing a transport" alt="" coords="472,121,813,383"/>
-<area shape="rect" id="node245" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#__init__" title="Each trasport class can have different constructor but it has to have at least all the arguments of NonBlockingTransport constructor" alt="" coords="17,719,989,737"/>
-<area shape="rect" id="node245" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#http_send" title="nbxmpp.transports_nb.NonBlockingHTTP.http_send" alt="" coords="17,737,989,756"/>
-<area shape="rect" id="node245" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#build_http_message" title="Builds http message with given body. Values for headers and status line fields are taken from class variables" alt="" coords="17,756,989,775"/>
-<area shape="rect" id="node245" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html#parse_http_message" title="(statusline &#45; list of e.g. [&#39;HTTP/1.1&#39;, &#39;200&#39;, &#39;OK&#39;]," alt="" coords="17,775,989,793"/>
-<area shape="rect" id="node4" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html" title="Socket wrapper that creates HTTP message out of sent data and peels&#45;off HTTP headers from incoming messages" alt="" coords="5,686,1000,799"/>
+<area shape="rect" id="node248" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="529,39,755,57"/>
+<area shape="rect" id="node248" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="529,57,755,76"/>
+<area shape="rect" id="node248" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="529,76,755,95"/>
+<area shape="rect" id="node6" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="517,6,765,101"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_t_7.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_t_7" ismap="ismap" class="graph-without-title" />
</center>
@@ -363,7 +363,7 @@ sendqueue will be sent
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.transports_nb.NonBlockingTCP-class.html b/doc/apidocs/nbxmpp.transports_nb.NonBlockingTCP-class.html
index 7e4967a..b23ce48 100644
--- a/doc/apidocs/nbxmpp.transports_nb.NonBlockingTCP-class.html
+++ b/doc/apidocs/nbxmpp.transports_nb.NonBlockingTCP-class.html
@@ -64,6 +64,25 @@
<h1 class="epydoc">Class NonBlockingTCP</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.transports_nb-pysrc.html#NonBlockingTCP">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_t_8" name="uml_class_diagram_for_nbxmpp_t_8">
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#__init__" title="Each trasport class can have different constructor but it has to have at least all the arguments of NonBlockingTransport constructor" alt="" coords="17,436,603,455"/>
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#start_disconnect" title="nbxmpp.transports_nb.NonBlockingTCP.start_disconnect" alt="" coords="17,455,603,473"/>
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#connect" title="Creates and connects transport to server and port defined in conn_5tuple which should be item from list returned from getaddrinfo" alt="" coords="17,473,603,492"/>
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#tls_init" title="Estabilishes TLS/SSL using this TCP connection by plugging a NonBlockingTLS module" alt="" coords="17,492,603,511"/>
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#pollin" title="Called by idlequeu when receive on plugged socket is possible" alt="" coords="17,511,603,529"/>
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#pollout" title="Called by idlequeu when send to plugged socket is possible" alt="" coords="17,529,603,548"/>
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#pollend" title="Called by idlequeue on TCP connection errors" alt="" coords="17,548,603,567"/>
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#disconnect" title="nbxmpp.transports_nb.NonBlockingTCP.disconnect" alt="" coords="17,567,603,585"/>
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#read_timeout" title="Called when there&#39;s no response from server in defined timeout" alt="" coords="17,585,603,604"/>
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#set_timeout" title="nbxmpp.transports_nb.NonBlockingTCP.set_timeout" alt="" coords="17,604,603,623"/>
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#remove_timeout" title="nbxmpp.transports_nb.NonBlockingTCP.remove_timeout" alt="" coords="17,623,603,641"/>
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#send" title="Append raw_data to the queue of messages to be send. If supplied data is unicode string, encode it to utf&#45;8." alt="" coords="17,641,603,660"/>
+<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#encode_stanza" title="Encode str or unicode to utf&#45;8" alt="" coords="17,660,603,679"/>
+<area shape="rect" id="node1" href="nbxmpp.transports_nb.NonBlockingTCP-class.html" title="Non&#45;blocking TCP socket wrapper" alt="" coords="5,403,613,685"/>
+<area shape="rect" id="node5" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html" title="Socket wrapper that creates HTTP message out of sent data and peels&#45;off HTTP headers from incoming messages" alt="" coords="237,705,384,743"/>
+<area shape="rect" id="node252" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="336,39,561,57"/>
+<area shape="rect" id="node252" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="336,57,561,76"/>
+<area shape="rect" id="node252" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="336,76,561,95"/>
+<area shape="rect" id="node2" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="324,6,572,101"/>
<area shape="rect" id="node251" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#plugin" title="nbxmpp.transports_nb.NonBlockingTransport.plugin" alt="" coords="291,153,608,172"/>
<area shape="rect" id="node251" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#plugout" title="nbxmpp.transports_nb.NonBlockingTransport.plugout" alt="" coords="291,172,608,191"/>
<area shape="rect" id="node251" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_state" title="nbxmpp.transports_nb.NonBlockingTransport.set_state" alt="" coords="291,191,608,209"/>
@@ -76,29 +95,10 @@
<area shape="rect" id="node251" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#get_fd" title="nbxmpp.transports_nb.NonBlockingTransport.get_fd" alt="" coords="291,321,608,340"/>
<area shape="rect" id="node251" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_send_timeout" title="nbxmpp.transports_nb.NonBlockingTransport.set_send_timeout" alt="" coords="291,340,608,359"/>
<area shape="rect" id="node251" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#set_send_timeout2" title="nbxmpp.transports_nb.NonBlockingTransport.set_send_timeout2" alt="" coords="291,359,608,377"/>
-<area shape="rect" id="node1" href="nbxmpp.transports_nb.NonBlockingTransport-class.html" title="Abstract class representing a transport" alt="" coords="279,121,620,383"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#__init__" title="Each trasport class can have different constructor but it has to have at least all the arguments of NonBlockingTransport constructor" alt="" coords="17,436,604,455"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#start_disconnect" title="nbxmpp.transports_nb.NonBlockingTCP.start_disconnect" alt="" coords="17,455,604,473"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#connect" title="Creates and connects transport to server and port defined in conn_5tuple which should be item from list returned from getaddrinfo" alt="" coords="17,473,604,492"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#tls_init" title="Estabilishes TLS/SSL using this TCP connection by plugging a NonBlockingTLS module" alt="" coords="17,492,604,511"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#pollin" title="Called by idlequeu when receive on plugged socket is possible" alt="" coords="17,511,604,529"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#pollout" title="Called by idlequeu when send to plugged socket is possible" alt="" coords="17,529,604,548"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#pollend" title="Called by idlequeue on TCP connection errors" alt="" coords="17,548,604,567"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#disconnect" title="nbxmpp.transports_nb.NonBlockingTCP.disconnect" alt="" coords="17,567,604,585"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#read_timeout" title="Called when there&#39;s no response from server in defined timeout" alt="" coords="17,585,604,604"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#set_timeout" title="nbxmpp.transports_nb.NonBlockingTCP.set_timeout" alt="" coords="17,604,604,623"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#remove_timeout" title="nbxmpp.transports_nb.NonBlockingTCP.remove_timeout" alt="" coords="17,623,604,641"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#send" title="Append raw_data to the queue of messages to be send. If supplied data is unicode string, encode it to utf&#45;8." alt="" coords="17,641,604,660"/>
-<area shape="rect" id="node250" href="nbxmpp.transports_nb.NonBlockingTCP-class.html#encode_stanza" title="Encode str or unicode to utf&#45;8" alt="" coords="17,660,604,679"/>
-<area shape="rect" id="node6" href="nbxmpp.transports_nb.NonBlockingTCP-class.html" title="Non&#45;blocking TCP socket wrapper" alt="" coords="5,403,616,685"/>
-<area shape="rect" id="node2" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html" title="Class for BOSH HTTP connections. Slightly redefines HTTP transport by calling bosh bodytag generating callback before putting data on wire" alt="" coords="219,763,403,802"/>
-<area shape="rect" id="node252" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="336,39,561,57"/>
-<area shape="rect" id="node252" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="336,57,561,76"/>
-<area shape="rect" id="node252" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="336,76,561,95"/>
-<area shape="rect" id="node3" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="324,6,572,101"/>
-<area shape="rect" id="node4" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html" title="Socket wrapper that creates HTTP message out of sent data and peels&#45;off HTTP headers from incoming messages" alt="" coords="237,705,384,743"/>
+<area shape="rect" id="node4" href="nbxmpp.transports_nb.NonBlockingTransport-class.html" title="Abstract class representing a transport" alt="" coords="279,121,620,383"/>
<area shape="rect" id="node253" href="nbxmpp.idlequeue.IdleObject-class.html#fd" title="filedescriptor, must be unique for each IdleObject" alt="" coords="107,248,237,267"/>
-<area shape="rect" id="node5" href="nbxmpp.idlequeue.IdleObject-class.html" title="Idle listener interface. Listed methods are called by IdleQueue." alt="" coords="95,223,249,281"/>
+<area shape="rect" id="node3" href="nbxmpp.idlequeue.IdleObject-class.html" title="Idle listener interface. Listed methods are called by IdleQueue." alt="" coords="95,223,249,281"/>
+<area shape="rect" id="node6" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html" title="Class for BOSH HTTP connections. Slightly redefines HTTP transport by calling bosh bodytag generating callback before putting data on wire" alt="" coords="219,763,403,802"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_t_8.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_t_8" ismap="ismap" class="graph-without-title" />
</center>
@@ -1039,7 +1039,7 @@ HTTP classes, in here it just calls the callback
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/nbxmpp.transports_nb.NonBlockingTransport-class.html b/doc/apidocs/nbxmpp.transports_nb.NonBlockingTransport-class.html
index 56fed7a..b26a47b 100644
--- a/doc/apidocs/nbxmpp.transports_nb.NonBlockingTransport-class.html
+++ b/doc/apidocs/nbxmpp.transports_nb.NonBlockingTransport-class.html
@@ -64,6 +64,10 @@
<h1 class="epydoc">Class NonBlockingTransport</h1><p class="nomargin-top"><span class="codelink"><a href="nbxmpp.transports_nb-pysrc.html#NonBlockingTransport">source&nbsp;code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_nbxmpp_t_9" name="uml_class_diagram_for_nbxmpp_t_9">
+<area shape="rect" id="node257" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="139,39,364,57"/>
+<area shape="rect" id="node257" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="139,57,364,76"/>
+<area shape="rect" id="node257" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="139,76,364,95"/>
+<area shape="rect" id="node1" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="127,6,375,101"/>
<area shape="rect" id="node256" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#__init__" title="Each trasport class can have different constructor but it has to have at least all the arguments of NonBlockingTransport constructor" alt="" coords="17,153,485,172"/>
<area shape="rect" id="node256" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#plugin" title="nbxmpp.transports_nb.NonBlockingTransport.plugin" alt="" coords="17,172,485,191"/>
<area shape="rect" id="node256" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#plugout" title="nbxmpp.transports_nb.NonBlockingTransport.plugout" alt="" coords="17,191,485,209"/>
@@ -78,15 +82,11 @@
<area shape="rect" id="node256" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#renew_send_timeout" title="nbxmpp.transports_nb.NonBlockingTransport.renew_send_timeout" alt="" coords="17,359,485,377"/>
<area shape="rect" id="node256" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#renew_send_timeout2" title="nbxmpp.transports_nb.NonBlockingTransport.renew_send_timeout2" alt="" coords="17,377,485,396"/>
<area shape="rect" id="node256" href="nbxmpp.transports_nb.NonBlockingTransport-class.html#start_disconnect" title="nbxmpp.transports_nb.NonBlockingTransport.start_disconnect" alt="" coords="17,415,485,433"/>
-<area shape="rect" id="node1" href="nbxmpp.transports_nb.NonBlockingTransport-class.html" title="Abstract class representing a transport" alt="" coords="5,121,496,439"/>
-<area shape="rect" id="node4" href="nbxmpp.bosh.NonBlockingBOSH-class.html" title="nbxmpp.bosh.NonBlockingBOSH" alt="" coords="61,459,251,498"/>
-<area shape="rect" id="node6" href="nbxmpp.transports_nb.NonBlockingTCP-class.html" title="Non&#45;blocking TCP socket wrapper" alt="" coords="280,459,419,498"/>
-<area shape="rect" id="node257" href="nbxmpp.plugin.PlugIn-class.html#PlugIn" title="Attach to owner and register ourself and our _exported_methods in it. If defined by a subclass, call self.plugin(owner) to execute hook code after plugging" alt="" coords="139,39,364,57"/>
-<area shape="rect" id="node257" href="nbxmpp.plugin.PlugIn-class.html#PlugOut" title="Unregister our _exported_methods from owner and detach from it. If defined by a subclass, call self.plugout() after unplugging to execute hook code" alt="" coords="139,57,364,76"/>
-<area shape="rect" id="node257" href="nbxmpp.plugin.PlugIn-class.html#get_instance" title="Factory Method for object creation" alt="" coords="139,76,364,95"/>
-<area shape="rect" id="node2" href="nbxmpp.plugin.PlugIn-class.html" title="Abstract xmpppy plugin infrastructure code, providing plugging in/out and debugging functionality" alt="" coords="127,6,375,101"/>
-<area shape="rect" id="node3" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html" title="Socket wrapper that creates HTTP message out of sent data and peels&#45;off HTTP headers from incoming messages" alt="" coords="276,518,423,557"/>
-<area shape="rect" id="node5" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html" title="Class for BOSH HTTP connections. Slightly redefines HTTP transport by calling bosh bodytag generating callback before putting data on wire" alt="" coords="257,577,441,615"/>
+<area shape="rect" id="node5" href="nbxmpp.transports_nb.NonBlockingTransport-class.html" title="Abstract class representing a transport" alt="" coords="5,121,496,439"/>
+<area shape="rect" id="node2" href="nbxmpp.transports_nb.NonBlockingHTTPBOSH-class.html" title="Class for BOSH HTTP connections. Slightly redefines HTTP transport by calling bosh bodytag generating callback before putting data on wire" alt="" coords="256,577,440,615"/>
+<area shape="rect" id="node3" href="nbxmpp.bosh.NonBlockingBOSH-class.html" title="nbxmpp.bosh.NonBlockingBOSH" alt="" coords="63,459,249,498"/>
+<area shape="rect" id="node4" href="nbxmpp.transports_nb.NonBlockingTCP-class.html" title="Non&#45;blocking TCP socket wrapper" alt="" coords="279,459,417,498"/>
+<area shape="rect" id="node6" href="nbxmpp.transports_nb.NonBlockingHTTP-class.html" title="Socket wrapper that creates HTTP message out of sent data and peels&#45;off HTTP headers from incoming messages" alt="" coords="275,518,421,557"/>
</map>
<img src="uml_class_diagram_for_nbxmpp_t_9.gif" alt='' usemap="#uml_class_diagram_for_nbxmpp_t_9" ismap="ismap" class="graph-without-title" />
</center>
@@ -1080,7 +1080,7 @@ itself.</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue May 8 11:18:08 2012
+ Generated by Epydoc 3.0.1 on Fri Jul 26 11:25:15 2013
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/apidocs/toc-everything.html b/doc/apidocs/toc-everything.html
index 55d622e..a5529be 100644
--- a/doc/apidocs/toc-everything.html
+++ b/doc/apidocs/toc-everything.html
@@ -132,61 +132,7 @@
>nbxmpp.tls_nb.gattr</a><br /> <a target="mainFrame" href="nbxmpp.transports_nb-module.html#get_proxy_data_from_dict"
>nbxmpp.transports_nb.get_proxy_data_from_dict</a><br /> <a target="mainFrame" href="nbxmpp.transports_nb-module.html#urisplit"
>nbxmpp.transports_nb.urisplit</a><br /> <h2 class="toc">All Variables</h2>
- <a target="mainFrame" href="nbxmpp-module.html#ERRORS"
- >nbxmpp.ERRORS</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_BAD_REQUEST"
- >nbxmpp.ERR_BAD_REQUEST</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_CONFLICT"
- >nbxmpp.ERR_CONFLICT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_FEATURE_NOT_IMPLEMENTED"
- >nbxmpp.ERR_FEATURE_NOT_IMPLEMENTED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_FORBIDDEN"
- >nbxmpp.ERR_FORBIDDEN</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_GONE"
- >nbxmpp.ERR_GONE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_INTERNAL_SERVER_ERROR"
- >nbxmpp.ERR_INTERNAL_SERVER_ERROR</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_ITEM_NOT_FOUND"
- >nbxmpp.ERR_ITEM_NOT_FOUND</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_JID_MALFORMED"
- >nbxmpp.ERR_JID_MALFORMED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_NOT_ACCEPTABLE"
- >nbxmpp.ERR_NOT_ACCEPTABLE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_NOT_ALLOWED"
- >nbxmpp.ERR_NOT_ALLOWED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_NOT_AUTHORIZED"
- >nbxmpp.ERR_NOT_AUTHORIZED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_PAYMENT_REQUIRED"
- >nbxmpp.ERR_PAYMENT_REQUIRED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_RECIPIENT_UNAVAILABLE"
- >nbxmpp.ERR_RECIPIENT_UNAVAILABLE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_REDIRECT"
- >nbxmpp.ERR_REDIRECT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_REGISTRATION_REQUIRED"
- >nbxmpp.ERR_REGISTRATION_REQUIRED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_REMOTE_SERVER_NOT_FOUND"
- >nbxmpp.ERR_REMOTE_SERVER_NOT_FOUND</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_REMOTE_SERVER_TIMEOUT"
- >nbxmpp.ERR_REMOTE_SERVER_TIMEOUT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_RESOURCE_CONSTRAINT"
- >nbxmpp.ERR_RESOURCE_CONSTRAINT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_SERVICE_UNAVAILABLE"
- >nbxmpp.ERR_SERVICE_UNAVAILABLE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_SUBSCRIPTION_REQUIRED"
- >nbxmpp.ERR_SUBSCRIPTION_REQUIRED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_UNDEFINED_CONDITION"
- >nbxmpp.ERR_UNDEFINED_CONDITION</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_UNEXPECTED_REQUEST"
- >nbxmpp.ERR_UNEXPECTED_REQUEST</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_ABORTED"
- >nbxmpp.SASL_ABORTED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_INCORRECT_ENCODING"
- >nbxmpp.SASL_INCORRECT_ENCODING</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_INVALID_AUTHZID"
- >nbxmpp.SASL_INVALID_AUTHZID</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_INVALID_MECHANISM"
- >nbxmpp.SASL_INVALID_MECHANISM</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_MECHANISM_TOO_WEAK"
- >nbxmpp.SASL_MECHANISM_TOO_WEAK</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_NOT_AUTHORIZED"
- >nbxmpp.SASL_NOT_AUTHORIZED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_TEMPORARY_AUTH_FAILURE"
- >nbxmpp.SASL_TEMPORARY_AUTH_FAILURE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_BAD_FORMAT"
- >nbxmpp.STREAM_BAD_FORMAT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_BAD_NAMESPACE_PREFIX"
- >nbxmpp.STREAM_BAD_NAMESPACE_PREFIX</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_CONFLICT"
- >nbxmpp.STREAM_CONFLICT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_CONNECTION_TIMEOUT"
- >nbxmpp.STREAM_CONNECTION_TIMEOUT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_HOST_GONE"
- >nbxmpp.STREAM_HOST_GONE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_HOST_UNKNOWN"
- >nbxmpp.STREAM_HOST_UNKNOWN</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_IMPROPER_ADDRESSING"
- >nbxmpp.STREAM_IMPROPER_ADDRESSING</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_INTERNAL_SERVER_ERROR"
- >nbxmpp.STREAM_INTERNAL_SERVER_ERROR</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_INVALID_FROM"
- >nbxmpp.STREAM_INVALID_FROM</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_INVALID_ID"
- >nbxmpp.STREAM_INVALID_ID</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_INVALID_NAMESPACE"
- >nbxmpp.STREAM_INVALID_NAMESPACE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_INVALID_XML"
- >nbxmpp.STREAM_INVALID_XML</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_NOT_AUTHORIZED"
- >nbxmpp.STREAM_NOT_AUTHORIZED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_POLICY_VIOLATION"
- >nbxmpp.STREAM_POLICY_VIOLATION</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_REMOTE_CONNECTION_FAILED"
- >nbxmpp.STREAM_REMOTE_CONNECTION_FAILED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_RESOURCE_CONSTRAINT"
- >nbxmpp.STREAM_RESOURCE_CONSTRAINT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_RESTRICTED_XML"
- >nbxmpp.STREAM_RESTRICTED_XML</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_SEE_OTHER_HOST"
- >nbxmpp.STREAM_SEE_OTHER_HOST</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_SYSTEM_SHUTDOWN"
- >nbxmpp.STREAM_SYSTEM_SHUTDOWN</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_UNDEFINED_CONDITION"
- >nbxmpp.STREAM_UNDEFINED_CONDITION</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_UNSUPPORTED_ENCODING"
- >nbxmpp.STREAM_UNSUPPORTED_ENCODING</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_UNSUPPORTED_STANZA_TYPE"
- >nbxmpp.STREAM_UNSUPPORTED_STANZA_TYPE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_UNSUPPORTED_VERSION"
- >nbxmpp.STREAM_UNSUPPORTED_VERSION</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_XML_NOT_WELL_FORMED"
- >nbxmpp.STREAM_XML_NOT_WELL_FORMED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#__package__"
+ <a target="mainFrame" href="nbxmpp-module.html#__package__"
>nbxmpp.__package__</a><br /> <a target="mainFrame" href="nbxmpp.auth_nb-module.html#GSS_STATE_STEP"
>nbxmpp.auth_nb.GSS_STATE_STEP</a><br /> <a target="mainFrame" href="nbxmpp.auth_nb-module.html#GSS_STATE_WRAP"
>nbxmpp.auth_nb.GSS_STATE_WRAP</a><br /> <a target="mainFrame" href="nbxmpp.auth_nb-module.html#SASL_FAILURE"
@@ -231,8 +177,7 @@
>nbxmpp.idlequeue.PENDING_READ</a><br /> <a target="mainFrame" href="nbxmpp.idlequeue-module.html#PENDING_WRITE"
>nbxmpp.idlequeue.PENDING_WRITE</a><br /> <a target="mainFrame" href="nbxmpp.idlequeue-module.html#__package__"
>nbxmpp.idlequeue.__package__</a><br /> <a target="mainFrame" href="nbxmpp.idlequeue-module.html#log"
- >nbxmpp.idlequeue.log</a><br /> <a target="mainFrame" href="nbxmpp-module.html#name"
- >nbxmpp.name</a><br /> <a target="mainFrame" href="nbxmpp.plugin-module.html#__package__"
+ >nbxmpp.idlequeue.log</a><br /> <a target="mainFrame" href="nbxmpp.plugin-module.html#__package__"
>nbxmpp.plugin.__package__</a><br /> <a target="mainFrame" href="nbxmpp.plugin-module.html#log"
>nbxmpp.plugin.log</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#ERRORS"
>nbxmpp.protocol.ERRORS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#ERR_BAD_REQUEST"
@@ -272,7 +217,8 @@
>nbxmpp.protocol.NS_ATTENTION</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_AUTH"
>nbxmpp.protocol.NS_AUTH</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_AVATAR"
>nbxmpp.protocol.NS_AVATAR</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BIND"
- >nbxmpp.protocol.NS_BIND</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BOB"
+ >nbxmpp.protocol.NS_BIND</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BLOCKING"
+ >nbxmpp.protocol.NS_BLOCKING</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BOB"
>nbxmpp.protocol.NS_BOB</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BOOKMARKS"
>nbxmpp.protocol.NS_BOOKMARKS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BROWSE"
>nbxmpp.protocol.NS_BROWSE</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BROWSING"
@@ -289,7 +235,8 @@
>nbxmpp.protocol.NS_COMPONENT_ACCEPT</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_COMPRESS"
>nbxmpp.protocol.NS_COMPRESS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_CONDITIONS"
>nbxmpp.protocol.NS_CONDITIONS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_CONFERENCE"
- >nbxmpp.protocol.NS_CONFERENCE</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_DATA"
+ >nbxmpp.protocol.NS_CONFERENCE</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_CORRECT"
+ >nbxmpp.protocol.NS_CORRECT</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_DATA"
>nbxmpp.protocol.NS_DATA</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_DATA_LAYOUT"
>nbxmpp.protocol.NS_DATA_LAYOUT</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_DATA_MEDIA"
>nbxmpp.protocol.NS_DATA_MEDIA</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_DATA_VALIDATE"
@@ -335,7 +282,8 @@
>nbxmpp.protocol.NS_JINGLE_RTP_VIDEO</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_JINGLE_XTLS"
>nbxmpp.protocol.NS_JINGLE_XTLS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_LAST"
>nbxmpp.protocol.NS_LAST</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_LOCATION"
- >nbxmpp.protocol.NS_LOCATION</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_MESSAGE"
+ >nbxmpp.protocol.NS_LOCATION</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_MAM"
+ >nbxmpp.protocol.NS_MAM</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_MESSAGE"
>nbxmpp.protocol.NS_MESSAGE</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_MOOD"
>nbxmpp.protocol.NS_MOOD</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_MUC"
>nbxmpp.protocol.NS_MUC</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_MUC_ADMIN"
@@ -394,7 +342,8 @@
>nbxmpp.protocol.NS_WAITINGLIST</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_XHTML"
>nbxmpp.protocol.NS_XHTML</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_XHTML_IM"
>nbxmpp.protocol.NS_XHTML_IM</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_XMPP_STREAMS"
- >nbxmpp.protocol.NS_XMPP_STREAMS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#SASL_ABORTED"
+ >nbxmpp.protocol.NS_XMPP_STREAMS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_X_OOB"
+ >nbxmpp.protocol.NS_X_OOB</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#SASL_ABORTED"
>nbxmpp.protocol.SASL_ABORTED</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#SASL_INCORRECT_ENCODING"
>nbxmpp.protocol.SASL_INCORRECT_ENCODING</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#SASL_INVALID_AUTHZID"
>nbxmpp.protocol.SASL_INVALID_AUTHZID</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#SASL_INVALID_MECHANISM"
@@ -429,12 +378,8 @@
>nbxmpp.protocol.__package__</a><br /> <div class="private">
<a target="mainFrame" href="nbxmpp.protocol-module.html#_errorcodes"
>nbxmpp.protocol._errorcodes</a><br /> </div>
- <a target="mainFrame" href="nbxmpp.protocol-module.html#name"
- >nbxmpp.protocol.name</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#sasl_error_conditions"
- >nbxmpp.protocol.sasl_error_conditions</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#stream_exceptions"
- >nbxmpp.protocol.stream_exceptions</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#xmpp_stanza_error_conditions"
- >nbxmpp.protocol.xmpp_stanza_error_conditions</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#xmpp_stream_error_conditions"
- >nbxmpp.protocol.xmpp_stream_error_conditions</a><br /> <a target="mainFrame" href="nbxmpp.proxy_connectors-module.html#__package__"
+ <a target="mainFrame" href="nbxmpp.protocol-module.html#stream_exceptions"
+ >nbxmpp.protocol.stream_exceptions</a><br /> <a target="mainFrame" href="nbxmpp.proxy_connectors-module.html#__package__"
>nbxmpp.proxy_connectors.__package__</a><br /> <a target="mainFrame" href="nbxmpp.proxy_connectors-module.html#log"
>nbxmpp.proxy_connectors.log</a><br /> <a target="mainFrame" href="nbxmpp.roster_nb-module.html#__package__"
>nbxmpp.roster_nb.__package__</a><br /> <a target="mainFrame" href="nbxmpp.roster_nb-module.html#log"
diff --git a/doc/apidocs/toc-nbxmpp-module.html b/doc/apidocs/toc-nbxmpp-module.html
index 7063434..0c30c08 100644
--- a/doc/apidocs/toc-nbxmpp-module.html
+++ b/doc/apidocs/toc-nbxmpp-module.html
@@ -13,63 +13,8 @@
<h1 class="toc">Module nbxmpp</h1>
<hr />
<h2 class="toc">Variables</h2>
- <a target="mainFrame" href="nbxmpp-module.html#ERRORS"
- >ERRORS</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_BAD_REQUEST"
- >ERR_BAD_REQUEST</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_CONFLICT"
- >ERR_CONFLICT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_FEATURE_NOT_IMPLEMENTED"
- >ERR_FEATURE_NOT_IMPLEMENTED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_FORBIDDEN"
- >ERR_FORBIDDEN</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_GONE"
- >ERR_GONE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_INTERNAL_SERVER_ERROR"
- >ERR_INTERNAL_SERVER_ERROR</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_ITEM_NOT_FOUND"
- >ERR_ITEM_NOT_FOUND</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_JID_MALFORMED"
- >ERR_JID_MALFORMED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_NOT_ACCEPTABLE"
- >ERR_NOT_ACCEPTABLE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_NOT_ALLOWED"
- >ERR_NOT_ALLOWED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_NOT_AUTHORIZED"
- >ERR_NOT_AUTHORIZED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_PAYMENT_REQUIRED"
- >ERR_PAYMENT_REQUIRED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_RECIPIENT_UNAVAILABLE"
- >ERR_RECIPIENT_UNAVAILABLE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_REDIRECT"
- >ERR_REDIRECT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_REGISTRATION_REQUIRED"
- >ERR_REGISTRATION_REQUIRED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_REMOTE_SERVER_NOT_FOUND"
- >ERR_REMOTE_SERVER_NOT_FOUND</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_REMOTE_SERVER_TIMEOUT"
- >ERR_REMOTE_SERVER_TIMEOUT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_RESOURCE_CONSTRAINT"
- >ERR_RESOURCE_CONSTRAINT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_SERVICE_UNAVAILABLE"
- >ERR_SERVICE_UNAVAILABLE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_SUBSCRIPTION_REQUIRED"
- >ERR_SUBSCRIPTION_REQUIRED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_UNDEFINED_CONDITION"
- >ERR_UNDEFINED_CONDITION</a><br /> <a target="mainFrame" href="nbxmpp-module.html#ERR_UNEXPECTED_REQUEST"
- >ERR_UNEXPECTED_REQUEST</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_ABORTED"
- >SASL_ABORTED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_INCORRECT_ENCODING"
- >SASL_INCORRECT_ENCODING</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_INVALID_AUTHZID"
- >SASL_INVALID_AUTHZID</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_INVALID_MECHANISM"
- >SASL_INVALID_MECHANISM</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_MECHANISM_TOO_WEAK"
- >SASL_MECHANISM_TOO_WEAK</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_NOT_AUTHORIZED"
- >SASL_NOT_AUTHORIZED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#SASL_TEMPORARY_AUTH_FAILURE"
- >SASL_TEMPORARY_AUTH_FAILURE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_BAD_FORMAT"
- >STREAM_BAD_FORMAT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_BAD_NAMESPACE_PREFIX"
- >STREAM_BAD_NAMESPACE_PREFIX</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_CONFLICT"
- >STREAM_CONFLICT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_CONNECTION_TIMEOUT"
- >STREAM_CONNECTION_TIMEOUT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_HOST_GONE"
- >STREAM_HOST_GONE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_HOST_UNKNOWN"
- >STREAM_HOST_UNKNOWN</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_IMPROPER_ADDRESSING"
- >STREAM_IMPROPER_ADDRESSING</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_INTERNAL_SERVER_ERROR"
- >STREAM_INTERNAL_SERVER_ERROR</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_INVALID_FROM"
- >STREAM_INVALID_FROM</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_INVALID_ID"
- >STREAM_INVALID_ID</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_INVALID_NAMESPACE"
- >STREAM_INVALID_NAMESPACE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_INVALID_XML"
- >STREAM_INVALID_XML</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_NOT_AUTHORIZED"
- >STREAM_NOT_AUTHORIZED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_POLICY_VIOLATION"
- >STREAM_POLICY_VIOLATION</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_REMOTE_CONNECTION_FAILED"
- >STREAM_REMOTE_CONNECTION_FAILED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_RESOURCE_CONSTRAINT"
- >STREAM_RESOURCE_CONSTRAINT</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_RESTRICTED_XML"
- >STREAM_RESTRICTED_XML</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_SEE_OTHER_HOST"
- >STREAM_SEE_OTHER_HOST</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_SYSTEM_SHUTDOWN"
- >STREAM_SYSTEM_SHUTDOWN</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_UNDEFINED_CONDITION"
- >STREAM_UNDEFINED_CONDITION</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_UNSUPPORTED_ENCODING"
- >STREAM_UNSUPPORTED_ENCODING</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_UNSUPPORTED_STANZA_TYPE"
- >STREAM_UNSUPPORTED_STANZA_TYPE</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_UNSUPPORTED_VERSION"
- >STREAM_UNSUPPORTED_VERSION</a><br /> <a target="mainFrame" href="nbxmpp-module.html#STREAM_XML_NOT_WELL_FORMED"
- >STREAM_XML_NOT_WELL_FORMED</a><br /> <a target="mainFrame" href="nbxmpp-module.html#__package__"
- >__package__</a><br /> <a target="mainFrame" href="nbxmpp-module.html#name"
- >name</a><br /><hr />
+ <a target="mainFrame" href="nbxmpp-module.html#__package__"
+ >__package__</a><br /><hr />
<span class="options">[<a href="javascript:void(0);" class="privatelink"
onclick="toggle_private();">hide&nbsp;private</a>]</span>
diff --git a/doc/apidocs/toc-nbxmpp.protocol-module.html b/doc/apidocs/toc-nbxmpp.protocol-module.html
index 2290cd9..87ce378 100644
--- a/doc/apidocs/toc-nbxmpp.protocol-module.html
+++ b/doc/apidocs/toc-nbxmpp.protocol-module.html
@@ -94,7 +94,8 @@
>NS_ATTENTION</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_AUTH"
>NS_AUTH</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_AVATAR"
>NS_AVATAR</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BIND"
- >NS_BIND</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BOB"
+ >NS_BIND</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BLOCKING"
+ >NS_BLOCKING</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BOB"
>NS_BOB</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BOOKMARKS"
>NS_BOOKMARKS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BROWSE"
>NS_BROWSE</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_BROWSING"
@@ -111,7 +112,8 @@
>NS_COMPONENT_ACCEPT</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_COMPRESS"
>NS_COMPRESS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_CONDITIONS"
>NS_CONDITIONS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_CONFERENCE"
- >NS_CONFERENCE</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_DATA"
+ >NS_CONFERENCE</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_CORRECT"
+ >NS_CORRECT</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_DATA"
>NS_DATA</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_DATA_LAYOUT"
>NS_DATA_LAYOUT</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_DATA_MEDIA"
>NS_DATA_MEDIA</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_DATA_VALIDATE"
@@ -157,7 +159,8 @@
>NS_JINGLE_RTP_VIDEO</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_JINGLE_XTLS"
>NS_JINGLE_XTLS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_LAST"
>NS_LAST</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_LOCATION"
- >NS_LOCATION</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_MESSAGE"
+ >NS_LOCATION</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_MAM"
+ >NS_MAM</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_MESSAGE"
>NS_MESSAGE</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_MOOD"
>NS_MOOD</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_MUC"
>NS_MUC</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_MUC_ADMIN"
@@ -216,7 +219,8 @@
>NS_WAITINGLIST</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_XHTML"
>NS_XHTML</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_XHTML_IM"
>NS_XHTML_IM</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_XMPP_STREAMS"
- >NS_XMPP_STREAMS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#SASL_ABORTED"
+ >NS_XMPP_STREAMS</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#NS_X_OOB"
+ >NS_X_OOB</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#SASL_ABORTED"
>SASL_ABORTED</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#SASL_INCORRECT_ENCODING"
>SASL_INCORRECT_ENCODING</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#SASL_INVALID_AUTHZID"
>SASL_INVALID_AUTHZID</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#SASL_INVALID_MECHANISM"
@@ -251,12 +255,8 @@
>__package__</a><br /> <div class="private">
<a target="mainFrame" href="nbxmpp.protocol-module.html#_errorcodes"
>_errorcodes</a><br /> </div>
- <a target="mainFrame" href="nbxmpp.protocol-module.html#name"
- >name</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#sasl_error_conditions"
- >sasl_error_conditions</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#stream_exceptions"
- >stream_exceptions</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#xmpp_stanza_error_conditions"
- >xmpp_stanza_error_conditions</a><br /> <a target="mainFrame" href="nbxmpp.protocol-module.html#xmpp_stream_error_conditions"
- >xmpp_stream_error_conditions</a><br /><hr />
+ <a target="mainFrame" href="nbxmpp.protocol-module.html#stream_exceptions"
+ >stream_exceptions</a><br /><hr />
<span class="options">[<a href="javascript:void(0);" class="privatelink"
onclick="toggle_private();">hide&nbsp;private</a>]</span>
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_a.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_a.gif
index 6829821..4c79281 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_a.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_a.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_a_2.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_a_2.gif
index 2e11581..9f93014 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_a_2.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_a_2.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_a_3.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_a_3.gif
index 0288c22..13f881a 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_a_3.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_a_3.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_b.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_b.gif
index 726f617..e8a7542 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_b.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_b.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_d.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_d.gif
index daa5035..6ef6553 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_d.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_d.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_d_2.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_d_2.gif
index 36a71f8..1880e05 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_d_2.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_d_2.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_i.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_i.gif
index ec58645..90ceace 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_i.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_i.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_i_3.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_i_3.gif
index e52fced..4cd2ea5 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_i_3.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_i_3.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_i_4.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_i_4.gif
index ba36bf9..5b2e749 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_i_4.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_i_4.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_i_5.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_i_5.gif
index 61d36ae..eda61cd 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_i_5.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_i_5.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p.gif
index d75f6be..a4dfbef 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_10.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_10.gif
index ae75407..4130979 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_10.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_10.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_11.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_11.gif
index 4a1a9ed..f8ba517 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_11.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_11.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_12.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_12.gif
index ab6cca4..c0f9011 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_12.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_12.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_13.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_13.gif
index 9e759de..0f57a86 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_13.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_13.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_14.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_14.gif
index 368d5bc..7ff1e45 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_14.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_14.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_15.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_15.gif
index a68ec36..b90183c 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_15.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_15.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_16.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_16.gif
index 47a8723..6187479 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_16.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_16.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_17.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_17.gif
index 258c512..483ac75 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_17.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_17.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_18.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_18.gif
index 7fdb22f..886a5d0 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_18.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_18.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_19.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_19.gif
index bb71e88..d0ad1bc 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_19.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_19.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_2.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_2.gif
index ae8f529..2b6f421 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_2.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_2.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_20.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_20.gif
index 3ebd77e..29efbd0 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_20.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_20.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_21.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_21.gif
index b376946..fe7f1a7 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_21.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_21.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_22.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_22.gif
index dd3c363..806e18c 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_22.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_22.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_23.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_23.gif
index 9f5cca3..9798f4d 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_23.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_23.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_24.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_24.gif
index b3e0167..1e5dd2f 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_24.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_24.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_25.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_25.gif
index 8714d59..486a7e2 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_25.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_25.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_26.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_26.gif
index 17ac10f..c1af0d0 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_26.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_26.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_27.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_27.gif
index 159f438..36e4c7a 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_27.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_27.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_28.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_28.gif
index 31482b2..1f9bb19 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_28.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_28.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_29.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_29.gif
index e2c7fde..18475f8 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_29.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_29.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_3.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_3.gif
index 6c3c2f4..5f8b0a1 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_3.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_3.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_30.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_30.gif
index 5753aae..d90bdde 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_30.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_30.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_31.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_31.gif
index 4695f4e..efa692c 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_31.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_31.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_32.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_32.gif
index 6e89bc8..c89a59d 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_32.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_32.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_33.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_33.gif
index 7a6c51d..b455e1c 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_33.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_33.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_34.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_34.gif
index 160c180..0811b7c 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_34.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_34.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_35.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_35.gif
index 8c5a93a..5571a4c 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_35.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_35.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_36.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_36.gif
index 1c8ec90..ec0fd66 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_36.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_36.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_37.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_37.gif
index 7906db3..f97a096 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_37.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_37.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_38.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_38.gif
index 3e0ee91..4d33626 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_38.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_38.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_39.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_39.gif
index 41c1650..b8b34e8 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_39.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_39.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_4.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_4.gif
index 0b363d8..726bf13 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_4.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_4.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_40.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_40.gif
index 8b57ba3..9fabadb 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_40.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_40.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_41.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_41.gif
index 796d631..8200bf7 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_41.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_41.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_5.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_5.gif
index 0deba65..160057e 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_5.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_5.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_6.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_6.gif
index 7f92db2..00f2750 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_6.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_6.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_7.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_7.gif
index 84bd463..5abf68f 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_7.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_7.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_8.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_8.gif
index fdfa191..8f15501 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_8.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_8.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_9.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_9.gif
index 1bce560..43cfd7d 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_p_9.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_p_9.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_r.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_r.gif
index b795341..92fa701 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_r.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_r.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_s_2.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_s_2.gif
index b24db74..23b6bb1 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_s_2.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_s_2.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_2.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_2.gif
index 82b95d0..b8f40bb 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_2.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_2.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_3.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_3.gif
index 9748f91..b8da721 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_3.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_3.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_4.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_4.gif
index 5d70cf1..8a087f3 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_4.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_4.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_5.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_5.gif
index af81e7a..990465e 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_5.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_5.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_6.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_6.gif
index 7b70e88..afee36a 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_6.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_6.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_7.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_7.gif
index affbd9b..af71341 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_7.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_7.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_8.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_8.gif
index 321a6ce..a196c25 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_8.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_8.gif
Binary files differ
diff --git a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_9.gif b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_9.gif
index 96c542e..68382f6 100644
--- a/doc/apidocs/uml_class_diagram_for_nbxmpp_t_9.gif
+++ b/doc/apidocs/uml_class_diagram_for_nbxmpp_t_9.gif
Binary files differ