Package pyxmpp :: Package jabber :: Module clientstream :: Class LegacyClientStream
[hide private]

Class LegacyClientStream

source code

           streamtls.StreamTLSMixIn --+        
                                      |        
      sasl.core.PasswordManager --+   |        
                                  |   |        
         streamsasl.StreamSASLMixIn --+        
                                      |        
stanzaprocessor.StanzaProcessor --+   |        
                                  |   |        
         xmlextra.StreamHandler --+   |        
                                  |   |        
              streambase.StreamBase --+        
                                      |        
                          stream.Stream --+    
                                          |    
                  clientstream.ClientStream --+
                                              |
                                             LegacyClientStream

Handles Jabber (both XMPP and legacy protocol) client connection stream.

Both client and server side of the connection is supported. This class handles client SASL and legacy authentication, authorisation and XMPP resource binding.

Instance Methods [hide private]
 
__init__(self, jid, password=None, server=None, port=5222, auth_methods=('sasl:DIGEST-MD5', 'digest'), tls_settings=None, keepalive=0, owner=None)
Initialize a LegacyClientStream object.
source code
 
_reset(self)
Reset the LegacyClientStream object state, making the object ready to handle new connections.
source code
 
_post_connect(self)
Initialize authentication when the connection is established and we are the initiator.
source code
 
_post_auth(self)
Unregister legacy authentication handlers after successfull authentication.
source code
 
_try_auth(self)
Try to authenticate using the first one of allowed authentication methods left.
source code
 
auth_in_stage1(self, stanza)
Handle the first stage (<iq type='get'/>) of legacy ("plain" or "digest") authentication.
source code
 
auth_in_stage2(self, stanza)
Handle the second stage (<iq type='set'/>) of legacy ("plain" or "digest") authentication.
source code
 
_auth_stage1(self)
Do the first stage (<iq type='get'/>) of legacy ("plain" or "digest") authentication.
source code
 
auth_timeout(self)
Handle legacy authentication timeout.
source code
 
auth_error(self, stanza)
Handle legacy authentication error.
source code
 
auth_stage2(self, stanza)
Handle the first stage authentication response (result of the <iq type="get"/>).
source code
 
_plain_auth_stage2(self, _unused)
Do the second stage (<iq type='set'/>) of legacy "plain" authentication.
source code
 
_plain_auth_in_stage2(self, username, _unused, stanza)
Handle the second stage (<iq type='set'/>) of legacy "plain" authentication.
source code
 
_digest_auth_stage2(self, _unused)
Do the second stage (<iq type='set'/>) of legacy "digest" authentication.
source code
 
_digest_auth_in_stage2(self, username, _unused, stanza)
Handle the second stage (<iq type='set'/>) of legacy "digest" authentication.
source code
 
auth_finish(self, _unused)
Handle success of the legacy authentication.
source code
 
registration_error(self, stanza)
Handle in-band registration error.
source code
 
registration_form_received(self, stanza)
Handle registration form received.
source code
 
submit_registration_form(self, form)
Submit a registration form.
source code
 
registration_success(self, stanza)
Handle registration success.
source code

Inherited from clientstream.ClientStream: accept, check_authzid, choose_realm, connect, do_bind, fix_in_stanza, fix_out_stanza, get_password, get_realms, get_serv_host, get_serv_name, get_serv_type

Inherited from streamtls.StreamTLSMixIn: get_tls_connection, tls_is_certificate_valid

Inherited from sasl.core.PasswordManager: check_password, generate_nonce

Inherited from streambase.StreamBase: __del__, bind, check_to, close, connected, disconnect, error, fileno, generate_id, idle, loop, loop_iter, process, process_stream_error, send, stanza, stanza_start, state_change, stream_end, stream_start, write_raw

Inherited from stanzaprocessor.StanzaProcessor: process_iq, process_message, process_presence, process_response, process_stanza, route_stanza, set_iq_get_handler, set_iq_set_handler, set_message_handler, set_presence_handler, set_response_handlers, unset_iq_get_handler, unset_iq_set_handler

Inherited from xmlextra.StreamHandler: warning

Instance Variables [hide private]

Inherited from clientstream.ClientStream: auth_methods, my_jid, password, port, server

Inherited from stream.Stream: features, initiator, lock, me, peer, process_all_stanzas, tls

Inherited from stream.Stream (private): _reader

Inherited from streambase.StreamBase: owner

Method Details [hide private]

__init__(self, jid, password=None, server=None, port=5222, auth_methods=('sasl:DIGEST-MD5', 'digest'), tls_settings=None, keepalive=0, owner=None)
(Constructor)

source code 
Initialize a LegacyClientStream object.
Parameters:
  • jid (: pyxmpp.JID) - : local JID.
  • password (: unicode) - : user's password.
  • server (: unicode) - : server to use. If not given then address will be derived form the JID.
  • port (: int) - : port number to use. If not given then address will be derived form the JID.
  • auth_methods (: sequence of str) - : sallowed authentication methods. SASL authentication mechanisms in the list should be prefixed with "sasl:" string.
  • tls_settings (: pyxmpp.TLSSettings) - : settings for StartTLS -- TLSSettings instance.
  • keepalive (: int) - : keepalive output interval. 0 to disable.
  • owner - : Client, Component or similar object "owning" this stream.
Overrides: xmlextra.StreamHandler.__init__

_reset(self)

source code 
Reset the LegacyClientStream object state, making the object ready to handle new connections.
Overrides: streambase.StreamBase._reset

_post_connect(self)

source code 
Initialize authentication when the connection is established and we are the initiator.
Overrides: streambase.StreamBase._post_connect

_post_auth(self)

source code 
Unregister legacy authentication handlers after successfull authentication.
Overrides: streambase.StreamBase._post_auth

_try_auth(self)

source code 

Try to authenticate using the first one of allowed authentication methods left.

[client only]

Overrides: clientstream.ClientStream._try_auth

auth_in_stage1(self, stanza)

source code 

Handle the first stage (<iq type='get'/>) of legacy ("plain" or "digest") authentication.

[server only]

auth_in_stage2(self, stanza)

source code 

Handle the second stage (<iq type='set'/>) of legacy ("plain" or "digest") authentication.

[server only]

_auth_stage1(self)

source code 

Do the first stage (<iq type='get'/>) of legacy ("plain" or "digest") authentication.

[client only]

auth_timeout(self)

source code 

Handle legacy authentication timeout.

[client only]

auth_error(self, stanza)

source code 

Handle legacy authentication error.

[client only]

auth_stage2(self, stanza)

source code 

Handle the first stage authentication response (result of the <iq type="get"/>).

[client only]

_plain_auth_stage2(self, _unused)

source code 

Do the second stage (<iq type='set'/>) of legacy "plain" authentication.

[client only]

_plain_auth_in_stage2(self, username, _unused, stanza)

source code 

Handle the second stage (<iq type='set'/>) of legacy "plain" authentication.

[server only]

_digest_auth_stage2(self, _unused)

source code 

Do the second stage (<iq type='set'/>) of legacy "digest" authentication.

[client only]

_digest_auth_in_stage2(self, username, _unused, stanza)

source code 

Handle the second stage (<iq type='set'/>) of legacy "digest" authentication.

[server only]

registration_error(self, stanza)

source code 

Handle in-band registration error.

[client only]

Parameters:

registration_form_received(self, stanza)

source code 

Handle registration form received.

[client only]

Call self.registration_callback with the registration form received as the argument. Use the value returned by the callback will be a filled-in form.

Parameters:

submit_registration_form(self, form)

source code 

Submit a registration form.

[client only]

Parameters:
  • form (: pyxmpp.jabber.dataforms.Form) - : the filled-in form. When form is None or its type is "cancel" the registration is to be canceled.

registration_success(self, stanza)

source code 

Handle registration success.

[client only]

Clean up registration stuff, change state to "registered" and initialize authentication.

Parameters: