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:
Diffstat (limited to 'doc/apidocs/nbxmpp.transports_nb-pysrc.html')
-rw-r--r--doc/apidocs/nbxmpp.transports_nb-pysrc.html960
1 files changed, 485 insertions, 475 deletions
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"